Opennan

Song to MIDI

Live · free to try

Turn any song, YouTube link or recording into MIDI notes. Read them as a sheet, practise them on a piano in your browser, or call the API.

Free3 songs a day, no keySong → MIDI · YouTube → MIDI · Note sheet · Practice piano

Example runA real song turned into MIDI

A YouTube piano video turned into MIDI. Play it, download it, or practise it below as the default song.

The song that went in

The MIDI that came out

Loading the MIDI…

Download MIDI

Add your own song

Use the exact piano video or MIDI you want to practise. Song-name searches and non-piano links use a piano cover, which can differ from the original recording.

YouTube link or song name

  • ✓ Any YouTube link, normal songs too
  • ✓ Not a piano video? We find a piano version of the same song for you
  • ✓ Or just type a song name
  • MIDI (.mid, .midi): opens instantly, no limit
  • Piano recording (MP3, WAV, M4A, OGG, FLAC, MP4, MOV, WEBM): solo piano only, up to 10 minutes and 200 MB

Free: 3 songs a day (links, song names and recordings count together). Making the notes takes about 1–2× the song length.

Easy

Loading piano sounds…

Progress

0 / 311

Accuracy

100%

Streak

0 (best 0)

Time

0:00

D6D#6D6D#6C6A#5C6D6D#6D6D#6D6
Hold D6 for 0.75 s

Play the glowing keys: tap them, use your computer keyboard, or connect a MIDI keyboard. The song waits for you, and chords need every note. Switch to the Roblox key sheet to see which computer key plays each note. Hold each key for its time; letting go early means playing it again.

Piano sound: Salamander Grand Piano by Alexander Holm, CC BY 3.0

Made for lessons, covers and games

  • LearningPiano lessonsEasy and full arrangements of any song for falling-notes practice.
  • CreatorsCovers and DAWsDrop the MIDI into any DAW and start a cover in minutes.
  • GamesGame key sheetsAn optional Roblox Virtual Piano key sheet, timing and chords included.

Call Song to MIDI from your code

Free, no key needed: call it over REST from your code, and point your AI agent at llms.txt to learn how. Daily limits are per IP address.

POSThttps://api.opennan.com/v1/piano/transcriptions
  • POST/v1/music/midi-transcriptionsThe same endpoint under the music path.
  • GET/v1/piano/transcriptions/{id}Status and files
  • GET/v1/piano/transcriptions/{id}/midiDownload the MIDI file.
  1. No key needed

    This tool is free to call without a key. Daily limits are per IP address.

  2. Send your first request

    Send it from your code or your terminal as is.

    curl https://api.opennan.com/v1/piano/transcriptions \
      -F url="https://www.youtube.com/watch?v=..."
    
    # Then poll until status is "succeeded":
    curl https://api.opennan.com/v1/piano/transcriptions/{id}
    
    # And download the MIDI:
    curl -o song.mid https://api.opennan.com/v1/piano/transcriptions/{id}/midi
  3. Poll the task

    The call answers right away with a task id. Ask for the task until it finishes:

    GEThttps://api.opennan.com/v1/piano/transcriptions/{id}
    queued
    Waiting for a worker
    running
    Being made
    succeeded
    Done: outputs[].url holds the files
    failed
    Failed: you are not charged

Errors and how to fix them

  • 401Missing or wrong key

    Send the header Authorization: Bearer with a key from the console.

  • 402Balance too low

    Add credit in Billing, then send the same call again.

  • 400A value is not accepted

    Read error.message: it names the field. Use a value from the parameter table.

  • 429Too many requests

    Wait a few seconds and try again, waiting longer after each 429.

Song to MIDI: questions

How much does Song to MIDI cost?

It is free: 3 songs a day, no key.

How do I call it from my code?

Send POST https://api.opennan.com/v1/piano/transcriptions. No key is needed. It answers with a task id: ask https://api.opennan.com/v1/piano/transcriptions/{id} until the task succeeds or fails.

Can my AI agent use it?

Yes. Point your agent at https://api.opennan.com/llms.txt: it explains this endpoint and every other one.

We only use the cookies the site needs, such as your language and a referral code. No ads. We count page visits with cookie-free analytics. See our Cookie Policy for details.