Making a karaoke app for the iPhone or iPad sounds like a simple project. However, If you look at the iPhone API, you won't find anything about karaoke. That's because the API doesn't support karaoke!
To create this starter kit, everything had to be worked out from scratch because there isn't much information publicly available on the subject. This starter kit provides a fully functional karaoke player with full screen or subtitle modes. If you want to write a karaoke app this starter kit will save you a huge amount of development time.
This component is an objective-C library that wraps around CoreAudio and includes a comprehensive PDF guide of how to work with it to create MIDI based iOS apps.
Loading and parsing a MIDI file using CoreMidi: Showing you how to load a MIDI file using CoreMidi and then access the MIDI events (Note, Tempo, Time Signature, etc...) individually. This puts you in full control and gives you access to all the information the file contains. I also clearly explain how the MIDI file fits together and what the important MIDI messages mean.
Plenty of background information: The tutorial doesn't just explains how the example project works. It also gives lots of background information and useful tips for processing MIDI files. That includes: bitwise operations, hex and binary, general Midi, how the percussion track work and much more! The guide alone is over 5000 words long.
Writing a fully functional MIDI player: Step by step, this guide and code explains how to interpret the sequence of messages you retrieved from the MIDI file. The MIDI player uses multi-threading to play the sequence of MIDI messages in real-time. The MIDI clock class ensures that the MIDI file plays smoothly at the correct tempo. The MIDI player provides easy to use callback functions which give you access to all MIDI events in real-time. If you need events which aren't included, it's easy to extend the framework to support all existing MIDI messages.
Audio Manager provides multi-timbral playback: CoreAudio on the iPhone only comes with a mono-timbral sampler. This means that you can only play your MIDI notes using one instrument sound. The Audio Manager which is included in the tutorial makes it easy to play your MIDI file using up to 10 instruments using a custom SoundFont. Included is a step by step guide to setting up a complex audio graph. It also shows how to set up the instruments based on information provided in the MIDI file. Doing this provides a rich sound as demonstrated in the video.
Karaoke: How to write a karaoke module. This module manually parses the MIDI file to extract all the lyric events. The lyrics are then displayed on the screen and are colored red as the song advances. With a little polish, this starter kit could easily form the karaoke engine of your app saving you a lot of development time.
More than just a tutorial: The sample project, provided with the tutorial, provides a solid framework for your CoreMidi iOS project. You can use this project as a learning exercise to learn CoreAudio and CoreMidi or base your whole project on the code.
This component and included tutorial took over 120 hours to research and write. If you're planning to write a karaoke app for the iPhone it's guaranteed to save you a substantial amount of time.
When you've downloaded the sample project unzip the directory to the desired location.