Karaoke Starter Kit for iPhone

Karaoke Starter Kit for iPhone

Released 6 years ago , Last update 3 years ago

An iOS starter kit for playing multi-instrument MIDI files and displaying karaoke lyrics that are synced to the progress of the song. Includes a PDF tutorial on loading, parsing and playing MIDI files on iOS.

An iOS karaoke player with full screen or subtitle modes

This starter-kit provides a working app base for Karaoke like functionality, including play-along subtitles.

Making a karaoke app for the iPhone or iPad sounds like a simple project. However, If you look at the iPhone API, you will find very little native support for making that happen. Everything in this library had to be worked out from scratch, as there isn't much information publicly available on the subject.

This component is an objective-C library that wraps around CoreAudio and includes a comprehensive PDF guide about how to create MIDI based iOS apps.

What's included

  • 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. It also clearly explains 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, the 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.


14 day 14-day money-back guarantee


Application License

  • Perpetual license

  • 1 application

  • Can distribute binary products only

  • Commercial use

Need custom services for this product? Get a quote

Installation Instructions

When you've downloaded the sample project unzip the directory to the desired location.

  • The directory contains the Xcode sample project and a PDF document containing a detailed explanation of the code.
  • In order for the MIDI file to be played it's necessary to download a SoundFont file. The SoundFont provides the instrument sounds for the MIDI file. Due to it's size, the SoundFont file is not included with the sample project.
  • The SoundFont can be downloaded here. Once downloaded, place the SoundFont file in the "Resources" directory of the Xcode project and you're ready to go!
2 licenses, starting from From » $69.99 View Licenses

Get A Quote

What do you need?
  • Custom development
  • Integration
  • Customization / Reskinning
  • Consultation
When do you need it?
  • Soon
  • Next week
  • Next month
  • Anytime

Thanks for getting in touch!

Your quote details have been received and we'll get back to you soon.

or Get a quote

for customization or integration services

Or enter your name and Email
  • SJ Steve Johns 7 months ago
    Hey Ben, Can I customize the lyrical content to whatever I want while using any backing track I want?
  • K Ko License holderApplication License
    Purchased on Jun 26, 2015
    3 years ago
    I have a question on the MIDI player. Is it just a simple MusicPlayer class playing back the midi files? Or is it a custom MIDI player class that uses its own timers, etc.? You state that "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." Does this mean it is customizable in terms of the PPQ? What is the PPQ of the MIDI Clock? What class are you using for a timer? Are the ticks measured in microseconds? I'd gladly buy this starter kit if it doesn't already cover what I know. Please let me know and thank you!
    • Ben Smiley Publisher 3 years ago
      The MIDI player is a custom class. It has it's own timers and gives you access to all the internals. The PPQN has a default value of 96 but if possible it is taken form the MIDI file. The MIDI clock runs on a separate thread. All the technical details of tick intervals are included in the accompanying instruction PDF. Feel free to get the kit and test it out. There's a 14 money back guarantee so if you don't like it you can get a refund. Thanks, Ben
    • K Ko 3 years ago
      Thank you!
  • EG Eli Garfinkel 3 years ago
    Will the karaoke function support right-to-left languages like Hebrew and Arabic?
    • Ben Smiley Publisher 3 years ago
      It may be possible to modify the code to support right-to-left languages but it's not natively supported. Thanks, Ben