I am totally new to MIDI editing so I got into trouble here. To make things worse I made the game music using GarageBand which does not have MIDI export functionality.
So I am making this post as a way of helping people with similar problems and to help me in the future, in case I need to edit MIDI files again.
The steps I managed to accomplish were:
- Export a region from Garageband (loop)
- Find the AIF file exported
- Extract the MIDI from the AIF
- Install a sound font since my hardware has no MIDI support
- Install FluidSynth to use this sound font and emulate MIDI hardware
- Install Jack daemon to work with the MIDI editor
- Test everything
- Edit the MIDI files, and here I stopped 😉
Exporting the MIDI & Locating the .AIF
Here is a great link on how to do it. Basically you will have to find where the .AIF is in your home directory tree in MAC OSX. (Yeap it does not work on iOS, I had to save it on the cloud and then on a MAC load the project from the cloud).
Extracting the MIDI
On Windows I found this very nice and simple software to extract the MIDI inside the AIF file.
When I was searching for VLC support for MIDI I bumped into this awesome site. Later on when I needed a sound font I found out that already had it working! By the way Audacity on Linux is playing MIDI files too! That was unexpected but very welcome 😉
Steps 5, 6 and 7 above
This how to will explain everything necessary to achieve those last configuration steps.
I also installed this software to edit the MIDI files, but stopped right here. From now on it is a matter of practicing I guess. Since I am a total newbie on music I will go no further on this post 😉
So I had already made the music on iOS (iPad). Had to save it to the iCloud. Exported every little region as a loop on GarageBand OSX. Extracted the MIDI of each file and finally started editing the whole thing. In case you are wondering why so much trouble? Well, I am no music at all and GarageBand made it possible for me to create a simple music for the game and that is awesome already! 🙂
PS: All this stuff worked flawlessly on @ArchLinux Linux distribution. Give it a try 😉