<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sergi Miral</title>
    <description>The latest articles on DEV Community by Sergi Miral (@sergimiral).</description>
    <link>https://dev.to/sergimiral</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F388789%2F5fc963eb-9c2d-4167-87f5-523795432791.png</url>
      <title>DEV Community: Sergi Miral</title>
      <link>https://dev.to/sergimiral</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sergimiral"/>
    <language>en</language>
    <item>
      <title>One Byte Explainer: Web MIDI API 🎹</title>
      <dc:creator>Sergi Miral</dc:creator>
      <pubDate>Tue, 26 Mar 2024 13:38:25 +0000</pubDate>
      <link>https://dev.to/sergimiral/one-byte-explainer-web-midi-api-4e1c</link>
      <guid>https://dev.to/sergimiral/one-byte-explainer-web-midi-api-4e1c</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for DEV Challenge v24.03.20, One Byte Explainer: Browser API or Feature.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Explainer
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The Web MIDI API connects browsers to MIDI devices, enabling interactive music creation and control directly in web apps. With user permission, it turns your browser into a versatile musical instrument or controller hub.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Additional Context
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.landr.com/what-is-midi/"&gt;What is MIDI?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/TR/webmidi/"&gt;W3C Working Draft&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://caniuse.com/?search=Web%20MIDI%20API"&gt;Browser support ⚠️&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few years ago I built &lt;a href="https://allthemidi.com"&gt;allthemidi&lt;/a&gt;, a suite of WYSIWYG apps to build custom MIDI controllers, leveraging the Web MIDI API for its core functionality.&lt;/p&gt;

&lt;p&gt;My goal was to make it available as an iOS app for my iPad. However, due to Safari's lack of support for this API at the time, I had to engineer a workaround that facilitated communication between the browser and the native client. &lt;/p&gt;

&lt;p&gt;Building the the bridge between JS to Obj-C/Swift bridge was challenging but once I figured it out it was music to my ears  🎹🎶🥳 I ended up publishing different apps for each controller type (knobs, faders, pads &amp;amp; toggles).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz51tccfxpbh0wnuvn6f9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz51tccfxpbh0wnuvn6f9.png" alt="allthemidi_iPad_apps" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The iOS apps are not available in the AppStore anymore simply to avoid the yearly developer's license. For now you can enjoy the &lt;a href="https://allthemidi.com/#/allthemidi"&gt;web version&lt;/a&gt; ✨ &lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>CSS Art: Favorite Snack 🍫</title>
      <dc:creator>Sergi Miral</dc:creator>
      <pubDate>Tue, 26 Mar 2024 13:06:13 +0000</pubDate>
      <link>https://dev.to/sergimiral/css-art-favorite-snack-5e1p</link>
      <guid>https://dev.to/sergimiral/css-art-favorite-snack-5e1p</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for DEV Challenge v24.03.20, CSS Art: Favorite Snack.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Smores, CSS &amp;amp; more… (but no JS!⚡️)&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Click to assemble! ✨&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/sergimiral/embed/BaEZZvG?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;I didn't have much time to put this together and I've only tested in on Chrome so far. I might still do some tweaks before the deadline ;)&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
    </item>
    <item>
      <title>Glam Up My Markup: Camp Activities 🔥</title>
      <dc:creator>Sergi Miral</dc:creator>
      <pubDate>Sat, 23 Mar 2024 13:24:46 +0000</pubDate>
      <link>https://dev.to/sergimiral/dev-challenge-v240320-glam-up-my-markup-camp-activities-1e83</link>
      <guid>https://dev.to/sergimiral/dev-challenge-v240320-glam-up-my-markup-camp-activities-1e83</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for DEV Challenge v24.03.20, Glam Up My Markup: Camp Activities&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;A lively and colourful form experience, enhancing the given markup just with CSS and JS, without touching a line of HTML 💅✨&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/sergimiral/embed/QWPvdMR?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;Just for reference here's the provided markup:&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0d9c9gypxlxvsbgnhcp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0d9c9gypxlxvsbgnhcp.png" alt="Original markup" width="800" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I got started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Style the form (yay, easy)&lt;/li&gt;
&lt;li&gt;Spent too much time styling a select box (argh, again…)&lt;/li&gt;
&lt;li&gt;Realised that the dropdown was boring…&lt;/li&gt;
&lt;li&gt;Realised that the whole form was boring…&lt;/li&gt;
&lt;li&gt;At this point I didn't want to go to the camp anymore…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I thought:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is there a nice piece of content in this form?&lt;/li&gt;
&lt;li&gt;Maybe we should give more importance to the activities?&lt;/li&gt;
&lt;li&gt;How can we make them more visible?&lt;/li&gt;
&lt;li&gt;What if they were radio buttons?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then I did this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add custom UI to fill the original form.&lt;/li&gt;
&lt;li&gt;Use css variables for easy customisation.&lt;/li&gt;
&lt;li&gt;Add generative landscape background by &lt;a href="https://codepen.io/qub3r-001"&gt;@qub3r-001&lt;/a&gt;🏆🙏&lt;/li&gt;
&lt;li&gt;Add icons from &lt;a href="https://thenounproject.com"&gt;The Noun Project&lt;/a&gt; by Estudio Poncho, Katie Watson, Michael Finney, Thanga Vignesh &amp;amp; Grégory Montigny. 🏆🙏&lt;/li&gt;
&lt;li&gt;Change global color based on selected activity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oh, btw:&lt;br&gt;
I couldn't use the mask-image approach for the SVG icons in the textarea fields. Doing so would also mask the background and the border of the input box… Thoughts?&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
