<?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: Robert</title>
    <description>The latest articles on DEV Community by Robert (@robert_053e1d7054bda7d838).</description>
    <link>https://dev.to/robert_053e1d7054bda7d838</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4206071%2F94b2d319-15c2-4a6b-8cd3-3d3667c91815.png</url>
      <title>DEV Community: Robert</title>
      <link>https://dev.to/robert_053e1d7054bda7d838</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/robert_053e1d7054bda7d838"/>
    <language>en</language>
    <item>
      <title>Turning a hummed melody into MIDI in the browser: a step-by-step walkthrough</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Sun, 25 Oct 2026 09:56:06 +0000</pubDate>
      <link>https://dev.to/robert_053e1d7054bda7d838/turning-a-hummed-melody-into-midi-in-the-browser-a-step-by-step-walkthrough-4i69</link>
      <guid>https://dev.to/robert_053e1d7054bda7d838/turning-a-hummed-melody-into-midi-in-the-browser-a-step-by-step-walkthrough-4i69</guid>
      <description>&lt;p&gt;You have a melody in your head, a voice memo on your phone, and a DAW waiting for notes. Typing those notes into a piano roll by hand is slow. This walkthrough shows how to get a first MIDI draft from a short recording using a free &lt;a href="https://musicfx.net/audio-to-midi" rel="noopener noreferrer"&gt;audio to MIDI converter&lt;/a&gt; that runs entirely in the browser, and how to clean up the result afterwards.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I work on MusicFX, the site that hosts this tool.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What the tool does (and what it does not)
&lt;/h2&gt;

&lt;p&gt;The converter estimates pitched notes from a recording and writes a standard &lt;code&gt;.mid&lt;/code&gt; file. Each note carries pitch, start time, duration and velocity. It does not keep the sound of your voice or guitar: MIDI is note data, so you assign an instrument after import.&lt;/p&gt;

&lt;p&gt;A few practical facts before you start:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It runs locally. The page loads its model files on first use, and your recording stays on your device; nothing is uploaded to a server.&lt;/li&gt;
&lt;li&gt;No account is needed.&lt;/li&gt;
&lt;li&gt;Input: a browser-decodable MP3, WAV, FLAC, OGG, AAC or M4A file (MP4 and WEBM are also accepted), up to 80MB and 2 minutes.&lt;/li&gt;
&lt;li&gt;It can miss notes or add false ones, so plan on a short editing pass.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Record something the model can read
&lt;/h2&gt;

&lt;p&gt;Short and clean beats long and busy. A solo voice, a single guitar line or a few piano chords work far better than a full mix with drums. If you hum, keep a steady volume and avoid room noise. Trim silence at the start so the first note lands near zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Pick a detection mode
&lt;/h2&gt;

&lt;p&gt;There are two modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clean Melody&lt;/strong&gt; – for one voice or one lead instrument. Use this for hums, whistles, sung toplines and solo lines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chords&lt;/strong&gt; – for harmony, such as guitar strums or piano chords, where several notes sound at once.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 3: Tune the two sliders
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Note Sensitivity&lt;/strong&gt; (default 50) decides how eagerly the model reports notes. Higher values catch quiet notes but may add false ones. Lower values give a sparser, cleaner file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minimum Note Length&lt;/strong&gt; ranges from 40 to 400 ms (default 120 ms). Raise it to drop short fragments and flutter; lower it if fast passages are disappearing.&lt;/p&gt;

&lt;p&gt;A sensible first pass: Clean Melody, sensitivity 50, minimum length 120 ms. Convert, listen, then adjust one slider at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Decide on the three options
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Write Estimated Tempo&lt;/strong&gt; adds a tempo estimate to the file so notes line up sensibly with your DAW grid.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Snap Notes to Grid (beta)&lt;/strong&gt; quantizes timing. It makes editing easier but removes expressive timing, so leave it off if you want the feel of the performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Include Pitch Bends&lt;/strong&gt; keeps slides and vibrato. Useful for vocals and bends on guitar; turn it off if you want plain, stepped notes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5: Convert and download
&lt;/h2&gt;

&lt;p&gt;Click &lt;strong&gt;Convert to MIDI&lt;/strong&gt;, then download the &lt;code&gt;.mid&lt;/code&gt; file. It opens in Ableton, FL Studio, Logic and other DAWs or notation apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Clean up in your DAW
&lt;/h2&gt;

&lt;p&gt;Expect to do three small jobs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Delete ghost notes.&lt;/strong&gt; Very short, quiet notes are usually false positives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix octave slips.&lt;/strong&gt; Hummed notes sometimes land an octave off; select and transpose them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assign an instrument.&lt;/strong&gt; Pick a synth, piano or bass and play it back against the original recording to check timing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If too many notes are missing, go back and raise sensitivity. If there is too much clutter, raise the minimum note length instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this fits in a workflow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Producers re-voice a sampled riff or turn a hummed idea into a bassline.&lt;/li&gt;
&lt;li&gt;Songwriters turn a voice memo into a melody before it is forgotten.&lt;/li&gt;
&lt;li&gt;Students check an ear-training guess by viewing a solo on a piano roll.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related free tools
&lt;/h2&gt;

&lt;p&gt;If you also need the tempo or key of the same recording, the same site has a key and BPM finder and a BPM detector that also run locally. You can browse them from the &lt;a href="https://musicfx.net/" rel="noopener noreferrer"&gt;MusicFX&lt;/a&gt; home page.&lt;/p&gt;

&lt;p&gt;MusicFX is an independent music platform and is not affiliated with any DAW or plugin maker mentioned here.&lt;/p&gt;

</description>
      <category>music</category>
      <category>audio</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Capturing a browser face swap window in OBS: a step-by-step setup</title>
      <dc:creator>Robert</dc:creator>
      <pubDate>Sun, 25 Oct 2026 06:42:24 +0000</pubDate>
      <link>https://dev.to/robert_053e1d7054bda7d838/capturing-a-browser-face-swap-window-in-obs-a-step-by-step-setup-202c</link>
      <guid>https://dev.to/robert_053e1d7054bda7d838/capturing-a-browser-face-swap-window-in-obs-a-step-by-step-setup-202c</guid>
      <description>&lt;p&gt;Most browser camera effects live inside a tab, and a tab is an awkward thing to put on stream. You get the address bar, the page chrome and whatever else the site draws around the video. This walkthrough shows a cleaner pattern: a separate output window that contains only the processed picture, captured in OBS like any other window.&lt;/p&gt;

&lt;p&gt;I'm using &lt;a href="https://livefaceswap.io/" rel="noopener noreferrer"&gt;LiveFaceSwap.io&lt;/a&gt; as the example source, because its studio was built around exactly this pattern.&lt;/p&gt;

&lt;p&gt;A quick status note first: at the time of writing (October 2026) the live studio on the site is not connected yet, so you can open the camera preview but not run a live session. Everything below is the setup you can prepare today, so the scene is ready when sessions open.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the source window gives you
&lt;/h2&gt;

&lt;p&gt;The studio redraws your webcam picture in the cloud with a new face, an outfit or one of six art styles, using one model called Live X2.0. For OBS, the useful part is the pop-out output window:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is &lt;strong&gt;960×540&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;It shows &lt;strong&gt;only the AI picture&lt;/strong&gt;, with no buttons or page layout around it.&lt;/li&gt;
&lt;li&gt;It stays a normal desktop window, so OBS can capture it with &lt;strong&gt;Window Capture&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the redrawing happens on cloud servers, the graphics card in your PC does not do the heavy work. There is no client app and no camera driver to install. Opening the camera is free and needs no login.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Open the camera and pick a reference
&lt;/h2&gt;

&lt;p&gt;Open the site in Chrome on a Windows or Mac computer and allow camera access. If you have more than one camera (a built-in one and a USB webcam, say), you can switch between them inside the studio.&lt;/p&gt;

&lt;p&gt;Then choose what the picture should become. The library has 46 original images with no real people: 30 characters, 10 outfits and 6 styles. You can also upload your own PNG, JPEG or WebP, which is used once it passes a content check.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Pop out the clean output window
&lt;/h2&gt;

&lt;p&gt;Open the clean output window from the studio. Leave it at its 960×540 size for now; you will scale it inside OBS rather than by dragging the window, which keeps the capture predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Add a Window Capture source
&lt;/h2&gt;

&lt;p&gt;In OBS Studio:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select (or create) the scene you want, for example &lt;code&gt;Face cam&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Sources&lt;/strong&gt; dock, click &lt;strong&gt;+&lt;/strong&gt; and choose &lt;strong&gt;Window Capture&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Name the source something you will recognize later, such as &lt;code&gt;Swap output&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In the properties dialog, open the &lt;strong&gt;Window&lt;/strong&gt; dropdown and pick the browser window that holds the output. The window title helps you tell it apart from your main browser window.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On a Mac, recent OBS versions provide window capture through the &lt;strong&gt;macOS Screen Capture&lt;/strong&gt; source with the method set to a single window. The idea is identical: one source, one window.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Crop and scale to your canvas
&lt;/h2&gt;

&lt;p&gt;The output is 960×540, a 16:9 shape, so it scales cleanly onto a 1920×1080 or 1280×720 canvas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full-screen character:&lt;/strong&gt; right-click the source, choose &lt;strong&gt;Transform&lt;/strong&gt;, then &lt;strong&gt;Fit to screen&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Face-cam corner:&lt;/strong&gt; drag the red handles to size it, then position it in a corner of your gameplay or slides scene.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trim edges:&lt;/strong&gt; if the capture picks up a thin border, hold &lt;strong&gt;Alt&lt;/strong&gt; (Option on Mac) while dragging an edge to crop instead of scale, or set exact numbers in &lt;strong&gt;Transform &amp;gt; Edit Transform&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now mix it with the rest of your scene: overlays, alerts, a chat box, a webcam frame graphic. The output is just another layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Record or stream
&lt;/h2&gt;

&lt;p&gt;With the source in place, OBS treats it like any other camera layer. Stream to Twitch or YouTube with your usual settings, or record locally.&lt;/p&gt;

&lt;p&gt;If you only need a clip and not a full OBS scene, the studio has its own recorder. Downloads are WebM or MP4 depending on your browser, and every download carries an AI generated mark in the lower-right corner. Recordings stay on your device; camera frames are not saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6 (optional): Send the scene into a call
&lt;/h2&gt;

&lt;p&gt;Turn on &lt;strong&gt;Start Virtual Camera&lt;/strong&gt; in the OBS Controls dock and the whole scene becomes a camera that call apps can pick. In Zoom it is Settings &amp;gt; Video; in Google Meet, Settings &amp;gt; Video; in Discord, User Settings &amp;gt; Voice &amp;amp; Video. Choose &lt;strong&gt;OBS Virtual Camera&lt;/strong&gt; in each. Keep the studio output window open while you are on the call, because it is the start of the chain: browser studio, clean window, OBS, call app.&lt;/p&gt;

&lt;h2&gt;
  
  
  When the picture does not show up
&lt;/h2&gt;

&lt;p&gt;The studio names the problem instead of showing a blank frame. The messages cover a camera that is busy (close other apps using it), access denied or blocked (check the browser's site permissions), no camera found, and no picture for 60 seconds. A dropped connection reconnects once on its own.&lt;/p&gt;

&lt;p&gt;On the OBS side, the usual suspects are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The source points at the wrong window after a browser restart. Reopen the source properties and pick the window again.&lt;/li&gt;
&lt;li&gt;The window is minimized. Restore it; minimized windows usually capture as black.&lt;/li&gt;
&lt;li&gt;The canvas shows a stretched picture. Reset with &lt;strong&gt;Transform &amp;gt; Reset Transform&lt;/strong&gt;, then fit again.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A few house rules
&lt;/h2&gt;

&lt;p&gt;Every session starts with four checks: you are 18 or older, you have rights to every face you use, and two misuse rules from the Terms. If you bring the swap into a call, let the other people know. Client demos and paid presentations count as commercial use, which is covered by the Business plan.&lt;/p&gt;

&lt;p&gt;More details on the webcam side are on the &lt;a href="https://livefaceswap.io/face-swap-webcam" rel="noopener noreferrer"&gt;face swap webcam page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For adults 18+; use only your own face or one you have consent to use.&lt;/p&gt;

</description>
      <category>obs</category>
      <category>streaming</category>
      <category>webcam</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
