midi

MIDI files

These are the MIDI files of some of my favorite songs I’m using to experiment with a Tone.js project. I borrowed these from the YouTube channels that provided free MIDI files. I do not own any of them. With that said, here is the list of sources where these files were collected from.

Sources

Songs

Title Artist Original Source MIDI Sheets
Way Back Home (Sam Feldt Edit) SHAUN
Conor Maynard
Official Lyric Video
WaveMusic (Lyrics)
Converted with MuseScore by Piano Tutorial
Jackpot (Jackpot EP Track 1) TheFatRat Official Audio by tastyFrMusic ✅ Available
Permission to Dance BTS (방탄소년단)
HYBE LABELS
Official Music Video by PIANO MIDI ❌ N/A
Dynamite BTS (방탄소년단)
HYBE LABELS
Official Music Video by Free Piano Tutorials ✅ Available
Memories Maroon 5 Official Music Video by Free Piano Tutorials
by Cosmic PIANO
by Kendrik Kanata
by Misha Kokh
✅ Available
Firefly pt II Jim Yosef
STARLYTE
Official Music Video
Official NCS Release
by BGP Harmony ✅ Available
Where We Started Lost Sky
Jex
Official NCS Release by FMM Music ❌ N/A
Sparkle (from: Your Name) Your Name (album) English Cover by Cosmic PIANO ✅ Available
You Alex Skrindo
Axol
Official Audio
Official NCS Release
by Gluton ❌ N/A
Never Enough (The Greatest Showman) Loren Allred Official Audio
Official Lyric Video
The Greatest Showman OST
by Free Piano Tutorials ✅ Available
A Million Dreams (The Greatest Showman) Ziv Zaifman
Hugh Jackman
Michelle Williams
Official Audio
The Greatest Showman OST
by Free Piano Tutorials ✅ Available
Something Just Like This The Chainsmokers
Coldplay
Official Music Video by Cosmic PIANO ✅ Available
Unity TheFatRat Official Audio by ShinkoNet ❌ N/A
Rogue Jim Yosef Official Audio by Allerlei von Nicolai - No Copyright Music ❌ N/A
Love Yourself Justin Bieber Official Music Video by sakura swann ❌ N/A
Sad Song We The Kings Official Lyric Video
Official Music Video
by Free Piano Tutorials ✅ Available
You Say Lauren Daigle Official Music Video by Free Piano Tutorials ✅ Available
Can’t Wait Jim Yosef
Anna Yvette
Official Audio (Jim Yosef)
Official Audio (Anna Yvette)
Official NCS Release
by Gluton ❌ N/A
Fly Away TheFatRat
Anjulie
Official Audio by AsdKeys
by Cosmic PIANO
❌ N/A
We’ll Meet Again TheFatRat
Laura Brehm
Official Audio
Official Lyric Video
by AsdKeys ❌ N/A
See You Again Wiz Khalifa
Charlie Puth
Official Music Video by Cosmic PIANO ❌ N/A
Melody Cadmium
Jon Becker
Official Audio (Cadmium)
Frequency Music Lyric Video
by FMM Music
by Allerlei von Nicolai - No Copyright Music
❌ N/A
Symphony Clean Bandit Official Music Video by Cosmic PIANO ❌ N/A
Faded Alan Walker Official Music Video by Free Piano Tutorials ✅ Available
Skyline Kovan
Electro-Light
Official NCS Release by AsdKeys ❌ N/A
Roar Katy Perry Official Music Video by Free Piano Tutorials ✅ Available
Calling Tobu Official Audio by AsdKeys ❌ N/A
Summer Breeze Tobu
Jordan Kelvin James
Official Audio by AsdKeys ❌ N/A
Sunburst Tobu
Itro
Official NCS Release by AsdKeys ❌ N/A
Cloud 9 Tobu
Itro
Official NCS Release by AsdKeys ❌ N/A
Make Me Move Culture Code
Karra
Official NCS Release by AsdKeys ❌ N/A
Tropic Love Diviners
Contacreast
Official NCS Release by Neonix ❌ N/A

Contribute

As I mentioned earlier, I am collecting midi files to work with a Tone.js extension. The more diversity we get, the better. This is why I need your help.

If you encounter freeware or shareware midi, you can contribute to this project. Place the .mid file to midi directory.

You also need to put an entry to sources.json file to save the original sources. The JSON file is structured like the one below.

{
  "sources": {
    [key]: [value],
    ...
  },
  "songs": [
    ...
  ]
}

Use the following object shape in the songs key:

{
  "songs": [
    {
      "title": "${song_title}",
      "artists": {
        "${artist_name_1}": "${artist_link_1}",
        ["${artist_name_2}": "${artist_link_2}"],
        ...
      },
      "source": {
        "Official Lyric Video": "${link}",
        ["Official Music Video": "${link}"],
        ["Official Audio": "${link}"],
        ["Official NCS Release": "${link}"],
        ["${provider_or_channel_name}": "${link}"],
        ...
      },
     "midi": {
        "${provider_or_channel_name}": ["${link}", "by"],
        ...
      },
     "sheets": {
        "${provider_or_channel_name}": ["${link}", "by"],
        ...
      }
    }
  ]
}

If the source doesn’t exist in the sources key, you might put an entry after its name:

{
  "sources": {
    "${provider_or_channel_name}": "${link}",
    ...
  }
}

Naming convention

We rename the *.mid files using the following outline…

${source_acronym}_${artists}_${title}.mid

…and it is done so we can skim through the list, knowing where to look for.

License