BitMidi
πΉ Listen to free MIDI songs, download the best MIDI files, and share the
best MIDIs on the web.
bitmidi.com
Usage
Visit the live site at bitmidi.com, the wayback machine for old-school MIDI files! Check out some examples here:
- Backstreet Boys - I Want It That Way MIDI
- Beethoven Moonlight Sonata MIDI
- Camptown Races MIDI
- Golden Sun - Overworld MIDI
- Kingdom Hearts - Dearly Beloved MIDI
- Legend of Zelda - Overworld MIDI
- Michael Jackson - Billie Jean MIDI
- Michael Jackson - Don't Stop Till You Get Enough MIDI
- Passenger - Let Her Go MIDI
- Pokemon - Pokemon Center Theme MIDI
- Pokemon Red Blue Yellow - Opening MIDI
- Pokemon Red Blue Yellow - Wild Pokemon Battle MIDI
- Red Hot Chili Peppers - Californication MIDI
- Red Hot Chili Peppers - Otherside MIDI
Contributing
It's easy to run the code!
Clone the project and install the dependencies
git clone [email protected]:feross/bitmidi.com.git
cd bitmidi.com
npm install
System Dependencies
- GraphicsMagick
- Ubuntu:
sudo apt install graphicsmagick
- MacOS:
brew install graphicsmagick
- Ubuntu:
imagemin-webp > cwebp-bin
- Ubuntu:
sudo apt install libxi6 libglu1
- MacOS: n/a
- Ubuntu:
Setup Database
First, copy the sample secret file to a new file:
cp secret/index-sample.js secret/index.js
Second, run a local MySQL Server on port 3306 and create a database called bitmidi.com
.
Don't forget to change the credentials in secret/index.js
to match what you
configured! If you use a different MySQL version than what is specified, then
remember to change that, too. If you're running an older version of MySQL, you
may need to add a insecureAuth: true
option under db.connection
.
Run Database Migrations
Once you complete the database setup, run the migrations:
npm run knex -- migrate:latest
Mock local MIDI files
To load the site with MIDI files, you need to have a folder with MIDI files in it. You can get a large collection here or some smaller ones here.
Then, in the project root, run this:
node -r @babel/register tools/import.js <path-to-folder-with-midis>
Run the server
npm run build
npm start
Watch and restart automatically:
npm run watch
License
Copyright (c) Feross Aboukhadijeh