A KAR file is an ordinary Standard MIDI File whose text events carry lyrics and song information. The convention, Soft Karaoke, came from Tune 1000 Corp in 1993. No formal specification has been published, and Tune 1000 has abandoned the format. This page gives the conventions described in player documentation, chiefly Mixage Software’s; real files often differ, and a reader should be tolerant.
Track layout
Soft Karaoke uses MIDI format 1. Each event is a text meta event,
FF 01 len text, at the tick where it applies.
| Track | Holds |
|---|---|
| First | @KMIDI KARAOKE FILE, then @V0100 and any @I information. |
| Second | @LENGL, up to three @T events, and then the lyrics. |
Files disagree on whether “first track” means the first MTrk or the first after a
tempo track, and some put the tags in another track. Some files use lyric meta events
(FF 05) instead of, or as well as, text events. Reading the events from every
track is safer.
Lyrics
Each text event in the lyrics is one syllable, sung at that event’s tick, so a melody sung over several notes is split across several events. Two characters at the start of an event mark a break:
| First character | Meaning |
|---|---|
\ | Clear the screen and show this text at the top: a new paragraph. |
/ | Move to the next line. |
The format allows at most four lines per paragraph.
@KMIDI KARAOKE FILE
@V0100
@LENGL
@TMy Song
@TAn Artist
\Hel
lo
/world
Tune 1000 format 0
Tune 1000 later created a form for keyboards that do not play MIDI format 1 files. It is a single-track MIDI format 0 file, using lyric meta events instead of text events.
| Event | Meaning |
|---|---|
FF 05 len text | A syllable. A space follows the last syllable of each word, after any punctuation. |
FF 05 01 0D | Carriage return: a new line. |
FF 05 01 0A | Line feed: a new paragraph, clearing the screen. |
Text event starting % | A chord, as in %Gbsus4. |
Other karaoke conventions
| Name | Rule |
|---|---|
| Solton | < marks a lyrics line and % a chord. Controller 31 (B0 1F) highlights a number of characters; 0 clears the highlighting. |
| MidiSoft | Lyrics and chords in system exclusive messages with manufacturer ID 00 20 24. Tags 00 04 to 00 07 are lines 1 to 4, sent in groups of four; 00 08 is the sync message for highlighting and 00 01 is for chords. |
| Yamaha XF | Chords in Yamaha “Chord Control Code” system exclusive messages, as a note, an accidental and a chord type (maj7, m7b5, 7sus4 and so on). The files can also contain the XFIH and XFKM chunks. |