Riff Boi
"I play a riff and the tabs just show up."
I've played guitar for six years, mostly technical metal and instrumental stuff. When I improvise I find riffs I want to keep, but stopping to write them down by hand kills the flow. Riff Boi listens while I play, writes the tab as I go, and saves the riff so I don't lose it.
I made it for the Beginner's Paradise – FirstCommit hackathon (2026).
Try it: https://riffboi.com (allow the mic when your browser asks)
What it does
- Writes tab live while you play single notes.
- Hears string bends and writes them like real tab:
7b9 for a bend, 7b9r7 for a bend and release, 7pb9r7 for a pre-bend.
- Draws the tab like a tab site (Songsterr style): string lines with the fret numbers on them, bar lines, and the rhythm underneath, at the tempo you set, in the time signature you pick (2/4 to 12/8). It can also work out the tempo from how you played (Auto detect tempo), even when your timing drifts a little, and says when it isn't sure. On a saved riff, typing a new tempo plays it faster or slower, and Detect tempo reads the rhythm again if the tempo was wrong. You can turn off Show note lengths to just see the notes.
- Saves each riff to a Latest Riffs list that's still there next time you open it. You can rename or delete riffs there, or delete them all (it asks first).
- Shows how sure it is about the tab, with a hint when something's off, like background noise or an out-of-tune guitar, and fades the notes it wasn't sure about, so you know which ones to check.
- Lets you write a tab by hand too (Write a tab): pick a string, a fret and a note value for each note.
- Keeps the real sound of each riff (your recording, or the file you uploaded), so you can listen to how you actually played it or download it. It's kept in your browser and never uploaded.
- Plays a riff back with a plucked-string sound, so you can hear what the tab says. For practice it can slow down (75% or 50%), loop, and click on the beat.
- Lets you fix a saved riff's tab: drag a note to another string (the string is a best guess), or tap it to change its fret, mark a hammer-on, pull-off or slide, mark a natural harmonic (written
<12>), or delete it.
- Copies a riff as text tab (with bar lines), to paste into a message or a forum, or saves it as a .txt file (Save .txt).
- Says which key and scale a riff sounds like, like E minor pentatonic.
- Shares a riff with a link: the riff is packed into the link itself, so nothing is uploaded anywhere.
- Gets the tab of a recording too: upload an mp3, wav or m4a.
- Turns sheet music into tab: upload a MusicXML file (.musicxml, .xml or .mxl) and it picks strings and frets for the melody the same way, keeping the tempo and time signature. To start from a photo of sheet music, open it in Audiveris (free) and save it as MusicXML. It reads one melody, one note at a time; rests make the note before them longer for now.
- Camera (beta): watches your fretting hand to pick the right string. A 5-second setup shows it where your frets are: open Settings, turn on Camera (beta), tap Set up camera, play the 3rd fret and then the 12th fret on the low E, and it draws your frets on the video. The hand tracking is Google's MediaPipe, running in your browser; the video never leaves your device.
- Has a tuner built in.
- Tells you when it can't hear your guitar. It listens to your computer's default input, so to use an audio interface, pick it as the input in your computer's sound settings.
Run it
The quickest way is the live version at https://riffboi.com. To run it on your own computer instead, you'll need Chrome (other modern browsers should work too), Python 3 for a small local server (Macs usually have it already), a mic or an audio interface, and internet the first time the page loads, because it downloads the pitch detection library.
git clone https://github.com/riff-boi/riff-boi.git
cd riff-boi
python3 -m http.server 8000
On Windows, try py -m http.server 8000 if python3 doesn't work. No git? Click Code, then Download ZIP on GitHub, unzip it and open a terminal in that folder.
Then open http://localhost:8000 in Chrome, click New Riff, allow the mic and play some single notes. Click Stop to save the riff. On a computer, Space starts and stops recording too.
The server is needed because browsers block the mic and JavaScript modules on a page opened straight from a file. On localhost they're allowed.
No guitar around? A piano or keyboard app playing single notes should work too, or upload a recording of single notes.
If it can't hear your guitar, add ?debug to the address (like https://riffboi.com/?debug). The Recording and Tuner screens then show what the mic is picking up: how loud and how clear the sound is, its pitch, and whether the browser's sound is running. After a recording, ?debug can also save its readings (JSON) and its raw sound (WAV), for testing.
This is the beginning of the README. Read the rest at the original. Read the full README ↗