What you upload, and what you get back
You upload an audio file of a song you wrote or have the rights to — an mp3, wav, or m4a up to 20 MB. Chords.fm runs that audio through four stages and renders the result as a chord chart: chord names placed over time-aligned lyrics, with tempo, key, and beat information attached so you can transpose, capo, or export to PDF later.
Typical turnaround is about 2 minutes per 4 minutes of audio. A full-length song takes longer than a short demo, but not by much — most of the wall-clock time is the source-separation stage, which is dominated by compute rather than audio length. If it takes longer than that, you can navigate away and come back later; the chart will be waiting in your library when it’s ready.
We delete the source audio from our servers as soon as the pipeline finishes. What stays in your library is the chord chart JSON plus the metadata needed to re-render it (key, tempo, song title, timing grid). If you want the audio back, keep a copy locally. Guitar-tab uploads are the one exception: because that mode is experimental, the tab upload form has an off-by-default checkbox that lets you keep the audio to help us improve tab accuracy, and you can purge any retained audio at any time from /account. Chord-chart uploads have no retention option and are always deleted.
Stage 1: source separation
Before any chord detection can happen, we have to split the mix. A full-band recording carries vocals, bass, drums, and a fused wash of chord-bearing instruments (piano, guitar, synths) on the same waveform. A chord detector that sees all of that at once makes worse calls: the bass line biases it toward incorrect inversions, the drums contribute noise in the low-mid band, vocal pitch smearing interferes with harmonic analysis.
The source-separation stage emits separate stems for vocals, bass, drums, and “other” (the harmonic instruments). Each downstream stage reads the stem most relevant to it: the vocal stem drives lyric transcription, the “other” stem drives chord detection, and the drum stem drives beat tracking.
Separation quality is the first accuracy ceiling on everything else. A sparse acoustic recording splits cleanly and downstream accuracy stays high. A dense mix with heavy sidechain compression or saturated bus processing bleeds stems into each other, and every downstream stage inherits that bleed. That’s the biggest reason Chords.fm works well on voice memos and rough demos but gets rougher on finished masters with aggressive production.
Stage 2: chord detection
The chord detector reads the harmonic stem and emits a time-aligned sequence of chord labels. Roughly: “from 0.0 to 2.1 seconds the chord is C major; from 2.1 to 4.0 it’s G major,” and so on.
Under the hood this is a chromagram-plus-classifier pipeline. The audio is transformed into a chroma representation, a running fingerprint of how much energy is present at each of the twelve pitch classes. A classifier trained on hand-annotated songs maps chroma patterns to chord labels, including triads, seventh chords, minors, and a subset of altered voicings.
What the detector does well: triads and seventh chords in common keys, in moderately produced mixes, at standard Western tunings. Where it gets worse: jazz voicings, quartal harmony, heavily altered extensions, and anything recorded significantly below A=440. Modulations are handled, but a detected modulation sometimes shows up a measure late because the detector wants a stable run of evidence before switching key.
Pro customers can editany detected chord directly in the viewer. Most chords land right on their own; the edit affordance is there so the ones that don’t don’t leave you with a chart that doesn’t match what you played.
Stage 3: lyric transcription and alignment
The vocal stem goes through speech recognition tuned for sung vocals. It emits lyrics plus per-word timestamps — where each word starts and ends in the audio, down to the millisecond.
Per-word timing is what makes a chord chart feel right. A chord placed over the first word of a line is useful; a chord floating somewhere over a whole line is ambiguous. Chords.fm uses the per-word timestamps to position each detected chord change over the word it actually lands on.
Lyric accuracy is strongest on clearly enunciated lead vocals in English. Harmony stacks, heavy reverb or delay, mumbled vocals, very low signal-to-noise recordings, and non-English vocals all hurt the output. When the lyric stage isn’t sure about a word it leaves a short placeholder rather than guessing.
Stage 4: rendering the chart
The final stage fuses the outputs from the earlier stages into a single chord chart: per-line lyrics on one row, chord labels positioned at the right horizontal column above each line, with a key signature and tempo attached.
The renderer also computes a beat grid so transpose, capo, and future tab export have consistent temporal information. The grid comes from the drum stem rather than a simple BPM estimate, which is why Chords.fm handles tempo changes and tempo-rubato passages reasonably well.
Final chord labels are normalized to a canonical form before being written to your library, so enharmonic duplicates (F# vs Gb), Harte-style intermediate labels (C:maj vs C), and slash-chord bass notes all end up in a consistent spelling. That canonical form is what makes transpose and capo math work, PDF export render cleanly, and any future search or filter feature behave.
Guitar tab mode (Pro, experimental)
Tab mode is a second output for Pro customers. Instead of a chord chart, Chords.fm emits a note-level guitar tab with fret numbers, timing, and a first pass at bends and slides. Pick “Tab mode” on the upload page, choose your tuning and capo, and the pipeline runs two extra stages on top of source separation and beat tracking: polyphonic note transcription, then a technique pass that flags bends and slides from the guitar stem’s pitch contour.
The output is dash-spacing ASCII tab with duration-proportional column widths (a whole note takes more horizontal space than an eighth). Bends render as 5b7, slides as 5/7 or 7\5. Every note is editable in the viewer: fret number, string assignment, and technique flag. When a note lands on the wrong string or a bend gets missed, you fix it in place without re-transcribing.
Tab mode is labelled experimentalon purpose. Polyphonic guitar transcription is an open research problem. Accuracy drops sharply on distorted electric, dense layered tracks, or anything recorded off A=440. It works best on clean acoustic or lightly-overdriven electric, a single guitar track, and standard tuning with the capo set correctly on upload. What you get today is a starting point that’s faster to edit than transcribing by hand, not a production-ready tab. See tab accuracy notes for the detailed what-works-and-what-doesn’t.
What’s accurate, what isn’t
Chords.fm is a tool, not a replacement for a human transcriber. Two things are worth being explicit about.
Things it generally gets right
- Triads and seventh chords in common keys
- Songs with clean or lightly produced instrumentation: voice memos, acoustic demos, small-combo live recordings
- Key detection and tempo for songs that don’t modulate aggressively
- Lyric transcription for clearly enunciated lead vocals in English
- Per-word alignment accurate to a few hundred milliseconds
Things it struggles with
- Dense, heavily compressed full-band mixes. Harmonic stem separation is the bottleneck.
- Distorted or “wall of sound” electric guitar textures, which smear the chroma representation
- Jazz voicings, altered dominants, and quartal harmony
- Songs recorded significantly off A=440 tuning
- Harmony stacks and heavy vocal effects, for lyric accuracy
- Non-English vocals. The lyric stage is English-first.
If your result is rough in a specific spot, the fastest fix is usually a Pro chord edit on that section. If an entire song comes out wrong, the root cause is almost always stage 1: the mix was too dense for source separation to cleanly split the stems.
Why this is different from manual transcription
You can always transcribe a song by ear. A good musician with a pair of headphones will outperform any current software on an unusual song. What Chords.fm buys you is speed on songs that don’t need a specialist. Most songwriters don’t need ear-training practice on every voice memo they make. They need a fast way to turn a demo into a readable chart they can share with a bandmate, rehearse from, or file away.
A chord chart that’s 90% right in 90 seconds is more useful than one that’s 100% right after an afternoon with a guitar, ifediting the last 10% takes less time than doing the whole thing by hand. That’s the bet. For simple songs the bet pays off immediately. For complex songs it pays off less, and you may prefer to transcribe by hand.
File formats and limits
- Formats: mp3, wav, m4a.
- Max size: 20 MB per upload.
- Typical processing time: around 2 minutes per 4 minutes of audio.
- Source audio is deleted from Chords.fm’s servers once the pipeline finishes. Guitar-tab uploads have an off-by-default checkbox that opts in to retention for improvement work; retained audio is purgeable from /account at any time.
- Quotas: 3 tabs your first month on Free, then 1/month; 10/month on Pro.
A note on copyright
Chords.fm is a tool for your own material or material you have the rights to process. It is not a way to publish or distribute chord charts of other people’s songs. Full details — including the per-upload rights attestation — are in the Terms of Service.
For a chord chart of a published song you don’t own, a licensed chord-catalog site is the right tool. Chords.fm is the wrong one for that job.