Karakan help contents

Topics in this help file:

What is Karakan?

Getting started

Song Text Format

Menu items

Error messages

Use and distribution of Karakan

Karakan is freeware. It may be used and distributed under the terms of this license agreement.

Questions, comments, suggestions, bugs?

If you have questions about Karakan, if you find any bugs in the program, or if you have comments or suggestions for improvements, please contact Edwin van Veldhoven.


Checking for updates

If you click the Help > Check for updates menu option, Karakan will download update information from the Karakan website (note: no information is uploaded). If a new version is available, you can choose to go to the Karakan website or directly download the new version (your default browser will be opened for this). Install the new version by running the downloaded setup program.


File settings

Song Text Format Example

In the File settings box on the Input tab, you specify which MIDI file is used, which track in this MIDI file is the voice track (containing the vocal melody), and what the name of the resulting karaoke (.kar) file must be.

If the names (without the extensions) of the MIDI and karaoke files are the same as the name of the lyrics file, you may leave these fields empty.

If you click on the Info button, you get some information about the selected MIDI file, such as the time signature(s), the number of ticks per beat, and the tempo.

In addition, you can choose to use Unicode characters in the resulting karaoke file (and in the preview), by clicking the Use Unicode characters in preview and karaoke file option. Unicode characters may be necessary when the song text makes use of non-Latin characters (like letters with accents, or Arabic, Chinese, Cyrillic, Greek, or Hebrew characters). If you do not use Unicode characters, some non-Latin characters can be available dependent on your Windows code page (for an explanation, see http://en.wikipedia.org/wiki/Code_page), but may be displayed incorrectly on a (Windows) system using another code page. It must be noted that not all karaoke players can handle karaoke files with Unicode characters.

For right-to-left languages (like Arabic or Hebrew), also select the Use right-to-left karaoke option (this option can only be selected if the Use Unicode characters in preview and karaoke file option has been selected). Note: if the karaoke view shows blocks instead of the expected characters, the selected font for the karaoke view doesn't contain these characters. In this case, you need to select another font (Options > Karaoke view font).

Note 1: not all karaoke players support Unicode characters and right-to-left display yet. See the Karakan website for other karaoke player that can handle Unicode characters.

Note 2: in versions of Karakan prior to 6.0, the items which are now in the File settings box, were specified with \m, \t, and \k in the header of the song text.

See also:
Unicode characters in karaoke files


Getting started

With Karakan, you can create new karaoke files or edit existing karaoke files. To edit an existing karaoke file, click File > Import karaoke in the menu.

To create a new karaoke file, you need the following:

  1. A MIDI file (.mid) which contains the melody on which the lyrics should be sung.
  2. The lyrics of the song.

Having these, you can create a karaoke file. Click the [image] button or click File > New in the menu. A new editor window is opened with an "untitled" lyrics file. This lyrics file combines a number of (karaoke) file settings and the actual lyrics of the song.

Note: you can also open an example of a lyrics file by clicking File > Open example and select either the English or Dutch song text.

In the File settings box on the Input tab, enter the name of the MIDI file you want to use (or click the Browse button, which opens the Select MIDI file dialog window, in which you can select the MIDI file you want to use). Select the track containing the vocal melody. You can do this by clicking the Select button, which opens the Select voice track dialog window, in which you can easily select the track containing the vocal melody.

If your song text makes use of non-Latin characters (like letters with accents, or Arabic, Chinese, Cyrillic, Greek, or Hebrew characters), you may need to select the Use Unicode characters in preview and karaoke file option. If you do not use Unicode characters, some non-Latin characters can be available dependent on your Windows code page (for an explanation, see http://en.wikipedia.org/wiki/Code_page), but may be displayed incorrectly on a (Windows) system using another code page. For right-to-left languages (like Arabic or Hebrew), also select the Use right-to-left karaoke option. It must be noted that not all karaoke players support Unicode characters and right-to-left display yet.

The lyrics of a song must be entered as text in Song Text Format. In the Song Text Format, the actual lyrics may be prededed by a header, containing information about the language, title, and author of the song. In the newly created lyrics file, the header looks as follows:

    @LENGL
    @Tsong title
    @Tartist
    @Tcopyright

Replace ENGL ("English") by the language of the song (if the song text is not in English), replace song title by the title of the song, and replace artist by the artist or author of the song. Replace copyright by a copyright message, or delete the line. After this, save the lyrics file by selecting File > Save as from the menu.

Now the header of the song text is ready. The next step is entering the lyrics of the song. Enter these lyrics after the header, leaving an empty line between the header and the lyrics. Hyphenate the lyrics either manually or with help of the Edit > Hyphenation option. An example is shown below:

    @LENGL
    @TThat Look In Your Eyes
    @TMusic: Edwin van Veldhoven
    @TWords: Han de Bruijn and Henry So, Jr.

    Your love is like- a beam of moon-light
    That slipped right through my fin-gers.

    If I could be with you,
    Would I have the cou-rage,
    Or would it have been the same?
    Could I have said those words?
    Oh, I'm so a-shamed.

When you have entered all lyrics on the Input tab, you can see the resulting karaoke text on the Preview tab. You can test the karaoke file by clicking the play button [image] (or Karaoke > Play), or by clicking the play from cursor button [image] (or Karaoke > Play from cursor). The karaoke file will be played in the Karakan editor window, allowing you to check whether all syllables are highlighted on the correct moments. During playing, the "current" lyric will be shown highlighted on the Input tab and on the Preview tab. On the Karaoke tab, you see the result in karaoke view. You can stop playing by clicking the stop button [image], by clicking Karaoke > Stop from the menu, or by pressing the Esc key.

You might need to remove or add some hyphens. For syllables that are sung on more than one note, place additional hyphens after the syllable (for example, the syllable like- in the example above).

Once a karaoke file (.kar) has been made, it can be played in every MIDI karaoke player that supports the .kar format.

Note: the default name of the created karaoke file is equal to that of your lyrics file (but with the extension .kar instead of .lyr). This karaoke file is created in the same folder as where you have saved your lyrics file.

See also:
Song Text Format
Example of a song text


Karaoke > Increase play tempo, Karaoke > Decrease play tempo

Use the Karaoke > Increase play tempo and Karaoke > Decrease play tempo to change the tempo of playing the karaoke file in Karakan (the tempo in the karaoke file itself is not changed). The tempo can be varied between 10% and 200% of the original tempo.

During playing, the tempo cannot be changed.

By default, the tempo is reset to 100% when creating a new lyrics file or opening an existing lyrics file. If you do not want that the tempo is reset, go to Options > MIDI setup and clear the Reset play tempo to 100% when opening a new file option.


Ciphers as empty syllables

Song Text Format Example

It often occurs that more than one note is associated with just one syllable. Extensive examples of this are found in the Latin music of the catholic church. Looking up the lyrics, one finds that they are printed as follows:

     De _ o  _   _   _   gra _ ti _ as

This brings up the idea of an empty syllable. It is basically simple: everything between two separators is a syllable, even if it is just nothing! Let's make use of such empty syllables, for making the above example more computer minded:

     De____o_________________ gra_ti_as

It is remarked that proper counting of everything between two "_" is necessary, in order to stay in tempo with the music. The above example shows that such is not always simple. It would be of great help if empty syllables, yet, could be visible, but only in the song text on the Input tab! The following convention is used: ciphers may be included in song texts as syllables, but they will never be displayed on a karaoke screen. Definition:

Name | Typed as | ASCII | Displayed
Cipher | 0..9 | 48..57 | no

Let's try on the above example:

     De_2_3_4_o_2_3_4_5_01_2_3_4_5_6_7_01_2_3_4_5_6 gra_ti_as

Which is, indeed, much less sensitive to error making than the preceding one.


Playing karaoke file in a custom karaoke player

Karaoke > Play in karaoke player

The Karaoke > Play in karaoke player command makes a karaoke file from the lyrics file and a MIDI file. After this, the custom karaoke player (specified under Options > Karaoke player) is executed to play the created karaoke file. If you have not specified a custom karaoke player under Options > Karaoke player, this menu item will be disabled.

The default name of the MIDI file used to make the karaoke file from the <name>.lyr file is <name>.mid, and the default name of the created karaoke file is <name>.kar. These default names can be overridden be specifying names in the File settings box on the Input tab.

See also:
Karaoke > Play


Voice track selection

Edit > Voice track selection

The Edit > Voice track selection command displays the Select voice track dialog window. In this dialog window, you can select the voice track, i.e. the track containing the vocal melody. For each track in the MIDI file, the number, MIDI channel (1-16), instrument name, and track name are displayed.

To hear the contents of a selected track, use the Play track button. The selected track will be played, starting from the first note on the track (so any silence at the beginning is automatically skipped).


Contacting the author

Author: Edwin van Veldhoven

Karakan website: http://sites.google.com/site/karakankaraoke/


Error messages

xxx lyric(s) missing. Continue?
The MIDI file contains more vocal notes than there are lyrics in the song text (on the Input tab). If you click OK, the karaoke file will be made, although there will be lyrics missing at the end.

Check the lyrics you have entered, and check the voice track number (in the File settings box on the Input tab).

See also:
File settings
Warnings

Error reading file xxx.
The editor file cannot be loaded.

Error writing file xxx.
The file cannot be saved.

The disk may be full, or the file may be in use by another application.

File xxx already exists. Overwrite?
The file already exists. Click OK if you want to overwrite the existing file, No if you want to save the file under a different name, or Cancel to cancel the operation.

File xxx not found.
The file cannot be found.

Invalid MIDI file type.
Karakan can handle type 0 MIDI files (which contain a single multi-channel track) and type 1 MIDI files (which contain one or more simultaneous tracks). Karakan cannot handle type 2 MIDI files (which contain one or more sequentially independent single-track patterns). You should convert the MIDI file to a type 0 or type 1 MIDI file.

Invalid MIDI time.
A MIDI time code must be of the form $measure:beat:tick$. Measures and beats are numbered from 1 onwards. The number of beats in a measure depends on the numerator of the current time signature. The tick must be in the range [0..32767], dependent on the number of ticks per beat specified in the MIDI file.

See also:
MIDI time codes

Invalid voice track number.
The voice track indicator \t must be followed by a number, specifying the track of the MIDI file that contains the vocal melody.

See also:
Voice track switch code

It is not possible to use Unicode characters in a MIDI file with lyrics. Uncheck the Use Unicode characters in preview and karaoke file check box.
MIDI files with lyrics are usually used by keyboards. There is no standard for incorporating Unicode characters in these files.

Karaoke file not specified.
When exporting a karaoke file, the name of the karaoke file to be made must be specified (in the File settings box on the Input tab).

See also:
File settings

MIDI time xxx falls on or before the time of the previous lyric.
The time of the specified MIDI time code falls before the time of the previous lyric.

See also:
MIDI time codes

MIDI time division is given in frames per second.
Karakan can only handle MIDI files for which the time division is given in ticks per beat.

MIDI time of xxx is xxx.
This message is given when there is a $$ MIDI time code in the song text (on the Input tab).

See also:
MIDI time codes

MIDI time of xxx is unknown (no note events found).
This message is given when there are no notes left on the voice track at the position where you placed a $$ MIDI time code in the song text (on the Input tab).

See also:
MIDI time codes

More lyrics than vocal notes. Continue?
The song text (on the Input tab) contains more lyrics than there are vocal notes in the MIDI file. If you click OK, the karaoke file will be made, although the "superfluous" lyrics will be left away.

Check the lyrics you have entered, and check the voice track number (in the File settings box on the Input tab).

See also:
File settings
Warnings

Not a MIDI file.
The specified file is not a standard MIDI file, or it contains an error. You should correct the error in the MIDI file using, for example, a MIDI sequencer.

Not a karaoke file.
The specified file is not a standard karaoke file.

The voice track number (xxx) is greater than the number of tracks (MIDI file contains xxx tracks).
The voice track number (selected in the File settings box on the Input tab) may be at most the number of tracks in the MIDI file.

See also:
File settings
Voice track selection

The voice track number must be greater than 0.
The voice track number specified with \t must be at least 1.

See also:
Voice track switch code

The voice track number specified with \t (xxx) is greater than the number of tracks (MIDI file contains xxx tracks).
The voice track number specified with \t may be at most the number of tracks in the MIDI file.

See also:
Voice track switch code

Too many lyrics in karaoke file.
The karaoke file contains more than 65536 syllables. Karakan cannot import such a karaoke file.

Unknown code in MIDI file.
The MIDI file contains an unknown MIDI event.

You should correct the error in the MIDI file using, for example, a MIDI sequencer.

Unknown escape code xxx.
An invalid escape code is used. The only valid escape codes are:

  \
  \-
  \_
  \0
  \1
  \2
  \3
  \4
  \5
  \6
  \7
  \8
  \9
  \$

See also:
Escape codes


What is Karakan?

Karakan is a free and easy to use editor for creating MIDI karaoke files. It runs under Windows 7, Windows Vista, Windows XP, and Windows 2000. You can enter the lyrics of a song as text in Song Text Format. From the lyrics and a given MIDI file (.mid), Karakan makes a karaoke file (.kar).

You can test the karaoke file using Karakan's internal playing facilities, or using an external karaoke player, which can be started from Karakan.

Karakan’s features include:

  • Easy entering of song lyrics as text (in Song Text Format).
  • Automatic hyphenation of the song text for several languages.
  • Playing facilities: playing from the beginning of the karaoke file or from the current line in the song text.
  • Creating karaoke files either as Soft Karaoke file (for use with a karaoke player) or as MIDI file with lyrics (for use with keyboards).

Distribution of Karakan

Karakan is freeware. It may be used and distributed under the terms of this license agreement.


Escaping characters

Song Text Format Example

If you want a cipher (0..9), MIDI time code symbol ($), blank (" "), hyphen (-), or underscore (_) to be displayed in the karaoke text, it must be "escaped". The backslash symbol \ is reserved for this purpose. Note that a separator which is preceded by a backslash is not a separator anymore; it must be considered as part of a syllable.

Name | Typed as | ASCII | Displayed
Escape | \ | 92 | no

As an example, take the sentence:

    This text shows
    - as an example -
    how to display a cipher like 12 in the karaoke text

This text might be translated in Song Text Format as follows:

    This text shows
    \-\ as an example\ \-
    how to display a number like \1\2 in the karaoke text


MIDI time code

Song Text Format Example

To put a lyric on a place where there is no melody note, a MIDI time code can be used. A MIDI time code has the following form:

    $measure:beat:tick$

Measures and beats are numbered from 1 onwards. The number of beats in a measure depends on the numerator of the current time signature. For example, if the time signature is 44, the beats in a measure are numbered from 1 up to 4, if the time signature is 34, the beats are numbered from 1 up to 3, and if the time signature is 68, the beats are numbered from 1 up to 6. The tick must be in the range [0..32767], dependent on the number of ticks per beat specified in the MIDI file. Click on the Info button on the Input tab to see the time signature(s) and the number of ticks per beat in the MIDI file.

A MIDI time code must be put in front of the corresponding lyric. For example, to place a lyric in measure 5 on beat 3, use:

     $5:3:0$lyric

If you want to know the real MIDI time of a certain lyric (as read from the corresponding MIDI file), put $$ in front of the lyric and either play or make the karaoke file. An information dialog will come up, showing the MIDI time of the lyric.

Note 1: in versions of Karakan prior to 6.0, the beat always contained 120 ticks for MIDI time codes. Since a MIDI file can use a quite different number of ticks per beat, this could lead to inaccuracies. Therefore, the MIDI time code now uses the same number of ticks per beat as the MIDI file. If you open an old lyrics file, and the corresponding MIDI file does not use 120 ticks per beat, you will get a message stating that the existing midi time codes have been converted.


Menu items

File menu
Import karaoke

Edit menu
Hyphenation
Voice track selection

Karaoke menu
Make
Play
Play from cursor
Stop
Increase play tempo
Decrease play tempo
Play in karaoke player
Export as MIDI file with lyrics

Options menu
Karaoke player
Warnings

Help menu
Check for updates


Hyphenation of text

Edit > Hyphenation

The Edit > Hyphenation command displays the Select language dialog window. In this dialog window, you select the language for the automatic hyphenation of the song text.

After you have chosen the language, the song text is hyphenated. The hyphenation is, however, not perfect; some words may not be hyphenated completely, and some hyphens may be placed incorrectly.


Playing karaoke file

Karaoke > Play

The Karaoke > Play command makes a karaoke file from the lyrics file and a MIDI file. After this, the karaoke file is played in the editor window.

The default name of the MIDI file used to make the karaoke file from the <name>.lyr file is <name>.mid, and the default name of the created karaoke file is <name>.kar. These default names can be overridden be specifying names in the File settings box on the Input tab.

See also:
Karaoke > Make
Karaoke > Play from cursor


Warnings

Options > Warnings

The Options > Warnings command displays the Warnings dialog window. In this dialog window, you can specify whether or not you want to get a warning in case you try to make or play a karaoke file, and the number of syllables in the song text differs from the number of vocal notes in the MIDI file.

When creating a new karaoke file, you might want to switch off the Warn if less lyrics than vocal notes warning.


Making karaoke file

Karaoke > Make

The Karaoke > Make command makes a karaoke file from the lyrics file and a MIDI file.

The default name of the MIDI file used to make the karaoke file from the <name>.lyr file is <name>.mid, and the default name of the created karaoke file is <name>.kar. These default names can be overridden be specifying names in the File settings box on the Input tab.

See also:
Karaoke > Play
Karaoke > Play from cursor
Export as MIDI file with lyrics


Karaoke player

Options > Karaoke player

The Options > Karaoke player command displays the Karaoke player dialog window. In this dialog window, you can specify a custom karaoke player to be used for playing karaoke files.

If you want to use a custom karaoke player, you must specify the path and name of the karaoke player, and the required parameters for the player. Give the full path and the complete name of the karaoke player. You can also use the Browse button for browsing through your folders to select the karaoke player. Put a '%' in the parameters on the place where the name of the karaoke file must be put.

See also:
Karaoke > Make


Stopping playing karaoke file

Karaoke > Stop

The Karaoke > Stop command stops playing a karaoke file.


Import karaoke file

File > Import karaoke

The File > Import karaoke command displays the Import karaoke file dialog window. In this dialog window, you select the karaoke file of which you want the lyrics to be imported.

After you have chosen a karaoke file, the track names of the file are displayed. You can select the voice track. A lyrics file and a MIDI file are created from the karaoke file, and the lyrics file is opened.

Use this option, for example, if you want to modify an existing karaoke file of which you do not have a lyrics file and a MIDI file.


Voice track switch code

Song Text Format Example

A voice track switch code can be used to switch to another voice track in the MIDI file. This is necessary, for example, if the chorus melody of a song is played on a different track than the rest of the melody. A voice track switch code has the following form:

    $\t number$

Here, number denotes the track number. An example of the use of the voice track switch code is shown below:

    But when I'm a-lone--
    There's your face, I can't for-get.

    $\t 8$Oh, when I think of that look in your eyes,
    I can't help but feel that you need me.
    Yes, when I think of that look in your eyes,
    And the moon in your hair,
    I wish I were at your side.

    $\t 7$But I know that it is just a dream.
    Your life must go on; just pass me by...


Separators

Song Text Format Example

The following symbols are used as separator between syllables:

Name | Typed as | ASCII | Displayed
Newline | '' | (13) 10 | yes
Blank | ' ' | 32 | yes
Tab | ' ' | 9 | yes, as blank
Hyphen | - | 45 | no
Underscore | _ | 95 | no

Separators serve as marks for synchronization with the music. To be precise: a "syllable" is triggered by a Note-ON event in the MIDI file, with the purpose of returning a text string. The accompanying procedure is to scan the Song Text, until a separator is found. Everything up to, but not including that separator is then returned, for inclusion in karaoke display. Whereby it is assumed that people can sing only one note at a time: no chords.

Blanks deserve some special attention. What about a series of blanks, a blank preceding a newline or a blank following a newline? The following arrangement about blanks is used:

  • blanks immediately preceding a newline are ignored
  • blanks immediately following a newline are ignored
  • any series of contiguous blanks is conceived as one blank

The above also applies to tabs.

Thus the Song Text

" Ad-di-ti-o-nal blanks  are   ig-nored "

will be found to be entirely equivalent to

"Ad-di-ti-o-nal blanks are ig-nored"

If you insist on displaying additional blanks, the Escape symbol (\) must be used:

"Ad-di-ti-o-nal blanks are NOT \ \ ig-nored here\ ."

This sentence is karaoked as:

"Additional blanks are NOT   ignored here ."

Also if you want to have hyphens or underscores as part of the lyrics, the Escape symbol must be used.

It often occurs that more than one note is associated with just one syllable. See Ciphers as empty syllables for this.


Export as MIDI file with lyrics

Karaoke > Export as MIDI file with lyrics

The Karaoke > Export as MIDI file with lyrics command makes a karaoke file from the lyrics file and a MIDI file. The karaoke file is saved as a MIDI file with lyric events (this karaoke format is used by e.g. keyboards).

The default name of the MIDI file used to make the karaoke file from the <name>.lyr file is <name>.mid. This default name can be overridden be specifying a name in the File settings box on the Input tab. The name of karaoke file must be specified in the File settings box on the Input tab.

See also:
Karaoke > Make


Example of a song text

Song Text Format

Below on the right is an example of a song text, which shows all elements that a song text may contain. Beside the normal elements, such as the header and the separator symbols, it also contains examples of the use of special elements, such as the MIDI time code and the voice track switch code. On the left some explanation is given. Click on an underlined subject for more information.

Header | @LENGL
 | @TThat Look In Your Eyes
 | @TMusic Edwin van Veldhoven
 | @TWords Han de Bruijn and Henry So, Jr.
Separators | Your love is like- a beam of moon-light
(hyphen/space) | That slipped right through my fin-gers.
 | If I could be with you,
 | Would I have the cou-rage,
 | Or would it have been the same?
 | Could I have said those words?
 | Oh, I'm so a-shamed.
MIDI time code | Some $20:3:0$nights I feel I'm all a-lone
 | With that look in your eyes;
 | I've ne-ver told you
 | Just how much I love you.
Escape codes | Ne-ver a care\ \-\-
 | I al-ways thought that we had so much time to share.
 | Your face could scarce-ly hide the pain.
 | I could not de-cide,
 | But now I know that I love you.
 | Now you've left my side.
 | I know that it's my fault
 | That you're so far a-way.
 | Oh the- guilt does con-sume me;
 | It eats me a-way.
Empty syllable | When will it end?--
 | I have tried to just for-get you.
Ciphers | But when I'm a-lone-1-2
 | There's your face, I can't for-get.
Voice track switch code | $\t 8$Oh, when I think of that look in your eyes,
 | I can't help but feel that you need me.
 | Yes, when I think of that look in your eyes,
 | And the moon in your hair,
 | I wish I were at your side.
 | $\t 7$But I know that it is just a dream.
 | Your life must go on; just pass me by...


Playing karaoke file from cursor position

Karaoke > Play from cursor

The Karaoke > Play from cursor command makes a karaoke file from the lyrics file and a MIDI file. After this, the karaoke file is played in the editor window, from the line containing the cursor.

The default name of the MIDI file used to make the karaoke file from the <name>.lyr file is <name>.mid, and the default name of the created karaoke file is <name>.kar. These default names can be overridden be specifying names in the File settings box on the Input tab.

See also:
Karaoke > Make
Karaoke > Play


License agreement for Karakan

Copyright 1995-2014 by E. R. van Veldhoven ("the author"). All rights reserved.

By installing and/or using Karakan ("the software") you agree to the following license agreement. If you do not agree to all of the terms of this license agreement, do not install and/or use the software.

1. License grant

You are granted a non-exclusive license to use the software free of charge, and to make and distribute unlimited copies of the software, provided that the following conditions are met:

  1. Each copy that you make and distribute must contain the setup application for the software, including this license agreement and all copyright notices pertaining to the software.
  2. It is not allowed to charge a price or other compensation for creating and/or distributing copies of the software.
  3. It is not allowed to rent, lease, or sell the software.
  4. It is not allowed to modify, translate, reverse engineer, decompile or disassemble the software, or create derivative works based on the software.

2. Disclaimer of warranty

Since the software is provided free of charge, it is provided "as is", without warranty of any kind, whether express or implied, including, but not limited to, warranties that the software is free of defects, fit for a particular purpose or non-infringing. You bear the entire risk as to selecting the software for your purposes and as to the quality and performance of the software.

3. Limitation of liability

In no event shall the author be liable for any damages arising out of the use or the inability to use the software, including without limitation damages for loss of goodwill, lost profits, loss of data, and computer failure or malfunction, even if the author has been advised of the possibility of such damages, or for any claim by any other party.


Software licenses

Karakan makes use of a number of software components (source code, libraries, and data files) that have been developed by others.

Maximum MIDI Programmer's ToolKit

Developer: Maximum MIDI Programmer's ToolKit Copyright © 1993-1998 by Paul Messick.

License:
You may use the Maximum MIDI ToolKit in the development of any software, whether for personal use, public domain consumption, or commercial use.

TRichEdit98 component for Delphi

Developer: Alexander Obukhov.

License:
The software is absolutely freeware.

Tnt Delphi Unicode Controls 2.1.11

Developer: Copyright (c) 2002-2004, Troy Wolbrink.

License:
Redistribution and use in binary forms, with or without modification, are permitted.

Delphi ZLib 1.2.5

Developer: Brent Sherwood (www.base2ti.com).

License:
Permission is granted to anyone to use this software for any purpose, including commercial applications.

UnicodeData.txt

Developer: The Unicode Consortium (www.unicode.org)

License:
Copyright © 1991-2011 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in www.unicode.org/copyright.html.

Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.

TeX hyphenation pattern files

The hyphenation in Karakan is based on TeX hyphenation pattern files. The original *.tex files have been transformed into another data format (the *.hyp files), using my own software, with as "modification" that my software only interprets the patterns listed in the "\patterns" group. All other groups, including the "\hyphenation" group, are ignored. Some of the original *.tex files are distributed under the LPPL (LaTeX Project Public License). These original *.tex files can be found at www.tug.org. The latest version of the LPPL license can be found at www.latex-project.org/lppl.txt. The full text of the LPPL is also listed below.

Czech hyphenation pattern file

Developer: Lala 8.11.1991.

License:
No restrictions on copying, use, or modification are listed in the TeX file.

Danish hyphenation pattern file (hyph-da.tex)

Developers: Copyright 1994 Frank Jensen. Modifications by Jonathan Kew, Mojca Miklavec, Arthur Reutenauer.

License:
This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license or (at your option) any later version.

Dutch hyphenation pattern file (hyph-nl.tex)

Developers: COPYRIGHT (C) 1996: Piet Tutelaers. Modifications by Jonathan Kew, Mojca Miklavec, Arthur Reutenauer.

License:
This program can be redistributed and/or modified under the terms of the LaTeX Project Public License; either version 1 of the License, or any later version.

English hyphenation pattern file

Developer: unknown.

License:
No restrictions on copying, use, or modification are listed in the TeX file.

Finnish hyphenation pattern file (hyph-fi.tex)

Developers: Kauko Saarinen, Fred Karlsson, Thomas Esser. Modifications by Jonathan Kew, Mojca Miklavec, Arthur Reutenauer.

License:
Patterns may be freely distributed.

French hyphenation pattern file (fr8hyph.tex)

Developers: Michael Ferguson, Yannis Haralambous.

License:
No restrictions on copying, use, or modification are listed in the TeX file.

German hyphenation pattern file (hyph-de-1996.tex)

Developer: Copyright (C) 2007, 2008 Werner Lemberg.

License:
This program can be redistributed and/or modified under the terms of the LaTeX Project Public License; either version 1 of the License, or any later version.

Italian hyphenation pattern file (ithyph.tex)

Developer: Claudio Beccari (1997).

License:
No restrictions on copying, use, or modification are listed in the TeX file.

Norwegian hyphenation pattern file (nohyphen.tex)

Developers: Ivar Aavatsmark, Preben Randhol, Thomas Esser.

License:
No restrictions on copying, use, or modification are listed in the TeX file.

Polish hyphenation pattern file (hyph-pl.tex)

Developers: Hanna Kołodziejska, Bogusław Jackowski, Marek Ryćko. Modifications by Jonathan Kew, Mojca Miklavec, Arthur Reutenauer.

License:
No restrictions on copying, use, or modification are listed in the TeX file.

Portuguese hyphenation pattern file (hyph-pt.tex)

Developers: (C) 1987 by Pedro J. de Rezende. (C) 1994 by Pedro J. de Rezende. (C) 1996 by Pedro J. de Rezende and J.Joao Dias Almeida. Modifications by Jonathan Kew, Mojca Miklavec, Arthur Reutenauer.

License:
This program can be redistributed and/or modified under the terms of the LaTeX Project Public License; either version 1 of the License, or any later version.

Spanish hyphenation pattern file

Developer: Unknown.

License:
No restrictions on copying, use, or modification are listed in the TeX file.

Swedish hyphenation pattern file (hyph-sv.tex)

Developers: Copyright 1994 by Jan Michael Rynning. All rights reserved. Modifications by Jonathan Kew, Mojca Miklavec, Arthur Reutenauer.

License:
This program may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.2 of this license or (at your option) any later version.

The LaTeX Project Public License

The LaTeX Project Public License
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

LPPL Version 1.3c  2008-05-04

Copyright 1999 2002-2008 LaTeX3 Project
    Everyone is allowed to distribute verbatim copies of this
    license document, but modification of it is not allowed.

PREAMBLE
========

The LaTeX Project Public License (LPPL) is the primary license under
which the LaTeX kernel and the base LaTeX packages are distributed.

You may use this license for any work of which you hold the copyright
and which you wish to distribute.  This license may be particularly
suitable if your work is TeX-related (such as a LaTeX package), but
it is written in such a way that you can use it even if your work is
unrelated to TeX.

The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
below, gives instructions, examples, and recommendations for authors
who are considering distributing their works under this license.

This license gives conditions under which a work may be distributed
and modified, as well as conditions under which modified versions of
that work may be distributed.

We, the LaTeX3 Project, believe that the conditions below give you
the freedom to make and distribute modified versions of your work
that conform with whatever technical specifications you wish while
maintaining the availability, integrity, and reliability of
that work.  If you do not see how to achieve your goal while
meeting these conditions, then read the document `cfgguide.tex'
and `modguide.tex' in the base LaTeX distribution for suggestions.

DEFINITIONS
===========

In this license document the following terms are used:

   `Work'
    Any work being distributed under this License.

   `Derived Work'
    Any work that under any applicable law is derived from the Work.

   `Modification'
    Any procedure that produces a Derived Work under any applicable
    law -- for example, the production of a file containing an
    original file associated with the Work or a significant portion of
    such a file, either verbatim or with modifications and/or
    translated into another language.

   `Modify'
    To apply any procedure that produces a Derived Work under any
    applicable law.

   `Distribution'
    Making copies of the Work available from one person to another, in
    whole or in part.  Distribution includes (but is not limited to)
    making any electronic components of the Work accessible by
    file transfer protocols such as FTP or HTTP or by shared file
    systems such as Sun's Network File System (NFS).

   `Compiled Work'
    A version of the Work that has been processed into a form where it
    is directly usable on a computer system.  This processing may
    include using installation facilities provided by the Work,
    transformations of the Work, copying of components of the Work, or
    other activities.  Note that modification of any installation
    facilities provided by the Work constitutes modification of the Work.

   `Current Maintainer'
    A person or persons nominated as such within the Work.  If there is
    no such explicit nomination then it is the `Copyright Holder' under
    any applicable law.

   `Base Interpreter'
    A program or process that is normally needed for running or
    interpreting a part or the whole of the Work.

    A Base Interpreter may depend on external components but these
    are not considered part of the Base Interpreter provided that each
    external component clearly identifies itself whenever it is used
    interactively.  Unless explicitly specified when applying the
    license to the Work, the only applicable Base Interpreter is a
    `LaTeX-Format' or in the case of files belonging to the
    `LaTeX-format' a program implementing the `TeX language'.

CONDITIONS ON DISTRIBUTION AND MODIFICATION
===========================================

1.  Activities other than distribution and/or modification of the Work
are not covered by this license; they are outside its scope.  In
particular, the act of running the Work is not restricted and no
requirements are made concerning any offers of support for the Work.

2.  You may distribute a complete, unmodified copy of the Work as you
received it.  Distribution of only part of the Work is considered
modification of the Work, and no right to distribute such a Derived
Work may be assumed under the terms of this clause.

3.  You may distribute a Compiled Work that has been generated from a
complete, unmodified copy of the Work as distributed under Clause 2
above, as long as that Compiled Work is distributed in such a way that
the recipients may install the Compiled Work on their system exactly
as it would have been installed if they generated a Compiled Work
directly from the Work.

4.  If you are the Current Maintainer of the Work, you may, without
restriction, modify the Work, thus creating a Derived Work.  You may
also distribute the Derived Work without restriction, including
Compiled Works generated from the Derived Work.  Derived Works
distributed in this manner by the Current Maintainer are considered to
be updated versions of the Work.

5.  If you are not the Current Maintainer of the Work, you may modify
your copy of the Work, thus creating a Derived Work based on the Work,
and compile this Derived Work, thus creating a Compiled Work based on
the Derived Work.

6.  If you are not the Current Maintainer of the Work, you may
distribute a Derived Work provided the following conditions are met
for every component of the Work unless that component clearly states
in the copyright notice that it is exempt from that condition.  Only
the Current Maintainer is allowed to add such statements of exemption
to a component of the Work.

  a. If a component of this Derived Work can be a direct replacement
     for a component of the Work when that component is used with the
     Base Interpreter, then, wherever this component of the Work
     identifies itself to the user when used interactively with that
     Base Interpreter, the replacement component of this Derived Work
     clearly and unambiguously identifies itself as a modified version
     of this component to the user when used interactively with that
     Base Interpreter.

  b. Every component of the Derived Work contains prominent notices
     detailing the nature of the changes to that component, or a
     prominent reference to another file that is distributed as part
     of the Derived Work and that contains a complete and accurate log
     of the changes.

  c. No information in the Derived Work implies that any persons,
     including (but not limited to) the authors of the original version
     of the Work, provide any support, including (but not limited to)
     the reporting and handling of errors, to recipients of the
     Derived Work unless those persons have stated explicitly that
     they do provide such support for the Derived Work.

  d. You distribute at least one of the following with the Derived Work:

       1. A complete, unmodified copy of the Work;
          if your distribution of a modified component is made by
          offering access to copy the modified component from a
          designated place, then offering equivalent access to copy
          the Work from the same or some similar place meets this
          condition, even though third parties are not compelled to
          copy the Work along with the modified component;

       2. Information that is sufficient to obtain a complete,
          unmodified copy of the Work.

7.  If you are not the Current Maintainer of the Work, you may
distribute a Compiled Work generated from a Derived Work, as long as
the Derived Work is distributed to all recipients of the Compiled
Work, and as long as the conditions of Clause 6, above, are met with
regard to the Derived Work.

8.  The conditions above are not intended to prohibit, and hence do not
apply to, the modification, by any method, of any component so that it
becomes identical to an updated version of that component of the Work as
it is distributed by the Current Maintainer under Clause 4, above.

9.  Distribution of the Work or any Derived Work in an alternative
format, where the Work or that Derived Work (in whole or in part) is
then produced by applying some process to that format, does not relax or
nullify any sections of this license as they pertain to the results of
applying that process.

10. a. A Derived Work may be distributed under a different license
       provided that license itself honors the conditions listed in
       Clause 6 above, in regard to the Work, though it does not have
       to honor the rest of the conditions in this license.

    b. If a Derived Work is distributed under a different license, that
       Derived Work must provide sufficient documentation as part of
       itself to allow each recipient of that Derived Work to honor the
       restrictions in Clause 6 above, concerning changes from the Work.

11. This license places no restrictions on works that are unrelated to
the Work, nor does this license place any restrictions on aggregating
such works with the Work by any means.

12.  Nothing in this license is intended to, or may be used to, prevent
complete compliance by all parties with all applicable laws.

NO WARRANTY
===========

There is no warranty for the Work.  Except when otherwise stated in
writing, the Copyright Holder provides the Work `as is', without
warranty of any kind, either expressed or implied, including, but not
limited to, the implied warranties of merchantability and fitness for a
particular purpose.  The entire risk as to the quality and performance
of the Work is with you.  Should the Work prove defective, you assume
the cost of all necessary servicing, repair, or correction.

In no event unless required by applicable law or agreed to in writing
will The Copyright Holder, or any author named in the components of the
Work, or any other party who may distribute and/or modify the Work as
permitted above, be liable to you for damages, including any general,
special, incidental or consequential damages arising out of any use of
the Work or out of inability to use the Work (including, but not limited
to, loss of data, data being rendered inaccurate, or losses sustained by
anyone as a result of any failure of the Work to operate with any other
programs), even if the Copyright Holder or said author or said other
party has been advised of the possibility of such damages.

MAINTENANCE OF THE WORK
=======================

The Work has the status `author-maintained' if the Copyright Holder
explicitly and prominently states near the primary copyright notice in
the Work that the Work can only be maintained by the Copyright Holder
or simply that it is `author-maintained'.

The Work has the status `maintained' if there is a Current Maintainer
who has indicated in the Work that they are willing to receive error
reports for the Work (for example, by supplying a valid e-mail
address). It is not required for the Current Maintainer to acknowledge
or act upon these error reports.

The Work changes from status `maintained' to `unmaintained' if there
is no Current Maintainer, or the person stated to be Current
Maintainer of the work cannot be reached through the indicated means
of communication for a period of six months, and there are no other
significant signs of active maintenance.

You can become the Current Maintainer of the Work by agreement with
any existing Current Maintainer to take over this role.

If the Work is unmaintained, you can become the Current Maintainer of
the Work through the following steps:

 1.  Make a reasonable attempt to trace the Current Maintainer (and
     the Copyright Holder, if the two differ) through the means of
     an Internet or similar search.

 2.  If this search is successful, then enquire whether the Work
     is still maintained.

  a. If it is being maintained, then ask the Current Maintainer
     to update their communication data within one month.

  b. If the search is unsuccessful or no action to resume active
     maintenance is taken by the Current Maintainer, then announce
     within the pertinent community your intention to take over
     maintenance.  (If the Work is a LaTeX work, this could be
     done, for example, by posting to comp.text.tex.)

 3a. If the Current Maintainer is reachable and agrees to pass
     maintenance of the Work to you, then this takes effect
     immediately upon announcement.

  b. If the Current Maintainer is not reachable and the Copyright
     Holder agrees that maintenance of the Work be passed to you,
     then this takes effect immediately upon announcement.

 4.  If you make an `intention announcement' as described in 2b. above
     and after three months your intention is challenged neither by
     the Current Maintainer nor by the Copyright Holder nor by other
     people, then you may arrange for the Work to be changed so as
     to name you as the (new) Current Maintainer.

 5.  If the previously unreachable Current Maintainer becomes
     reachable once more within three months of a change completed
     under the terms of 3b) or 4), then that Current Maintainer must
     become or remain the Current Maintainer upon request provided
     they then update their communication data within one month.

A change in the Current Maintainer does not, of itself, alter the fact
that the Work is distributed under the LPPL license.

If you become the Current Maintainer of the Work, you should
immediately provide, within the Work, a prominent and unambiguous
statement of your status as Current Maintainer.  You should also
announce your new status to the same pertinent community as
in 2b) above.

WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
======================================================

This section contains important instructions, examples, and
recommendations for authors who are considering distributing their
works under this license.  These authors are addressed as `you' in
this section.

Choosing This License or Another License
----------------------------------------

If for any part of your work you want or need to use *distribution*
conditions that differ significantly from those in this license, then
do not refer to this license anywhere in your work but, instead,
distribute your work under a different license.  You may use the text
of this license as a model for your own license, but your license
should not refer to the LPPL or otherwise give the impression that
your work is distributed under the LPPL.

The document `modguide.tex' in the base LaTeX distribution explains
the motivation behind the conditions of this license.  It explains,
for example, why distributing LaTeX under the GNU General Public
License (GPL) was considered inappropriate.  Even if your work is
unrelated to LaTeX, the discussion in `modguide.tex' may still be
relevant, and authors intending to distribute their works under any
license are encouraged to read it.

A Recommendation on Modification Without Distribution
-----------------------------------------------------

It is wise never to modify a component of the Work, even for your own
personal use, without also meeting the above conditions for
distributing the modified component.  While you might intend that such
modifications will never be distributed, often this will happen by
accident -- you may forget that you have modified that component; or
it may not occur to you when allowing others to access the modified
version that you are thus distributing it and violating the conditions
of this license in ways that could have legal implications and, worse,
cause problems for the community.  It is therefore usually in your
best interest to keep your copy of the Work identical with the public
one.  Many works provide ways to control the behavior of that work
without altering any of its licensed components.

How to Use This License
-----------------------

To use this license, place in each of the components of your work both
an explicit copyright notice including your name and the year the work
was authored and/or last substantially modified.  Include also a
statement that the distribution and/or modification of that
component is constrained by the conditions in this license.

Here is an example of such a notice and statement:

  %% pig.dtx
  %% Copyright 2005 M. Y. Name
  %
  % This work may be distributed and/or modified under the
  % conditions of the LaTeX Project Public License, either version 1.3
  % of this license or (at your option) any later version.
  % The latest version of this license is in
  %   http://www.latex-project.org/lppl.txt
  % and version 1.3 or later is part of all distributions of LaTeX
  % version 2005/12/01 or later.
  %
  % This work has the LPPL maintenance status `maintained'.
  %
  % The Current Maintainer of this work is M. Y. Name.
  %
  % This work consists of the files pig.dtx and pig.ins
  % and the derived file pig.sty.

Given such a notice and statement in a file, the conditions
given in this license document would apply, with the `Work' referring
to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
referring to any `LaTeX-Format', and both `Copyright Holder' and
`Current Maintainer' referring to the person `M. Y. Name'.

If you do not want the Maintenance section of LPPL to apply to your
Work, change `maintained' above into `author-maintained'.
However, we recommend that you use `maintained', as the Maintenance
section was added in order to ensure that your Work remains useful to
the community even when you can no longer maintain and support it
yourself.

Derived Works That Are Not Replacements
---------------------------------------

Several clauses of the LPPL specify means to provide reliability and
stability for the user community. They therefore concern themselves
with the case that a Derived Work is intended to be used as a
(compatible or incompatible) replacement of the original Work. If
this is not the case (e.g., if a few lines of code are reused for a
completely different task), then clauses 6b and 6d shall not apply.

Important Recommendations
-------------------------

 Defining What Constitutes the Work

   The LPPL requires that distributions of the Work contain all the
   files of the Work.  It is therefore important that you provide a
   way for the licensee to determine which files constitute the Work.
   This could, for example, be achieved by explicitly listing all the
   files of the Work near the copyright notice of each file or by
   using a line such as:

    % This work consists of all files listed in manifest.txt.

   in that place.  In the absence of an unequivocal list it might be
   impossible for the licensee to determine what is considered by you
   to comprise the Work and, in such a case, the licensee would be
   entitled to make reasonable conjectures as to which files comprise
   the Work.


Song Text Format

The Song Text Format

Example

The lyrics of a song must be entered as text in Song Text Format. In the Song Text Format, the actual lyrics may be prededed by a header, containing information about the language, title, and author of the song.

The header, containing the language and title lines of the song, is built up in a manner which has become a standard for Soft Karaoke files. The first line beginning with @ must be @L<language>. It identifies the language the words are in, which in many cases will be English: @LENGL. The next few lines will start with @T. They identify the title lines, containing the title and authors of the song. You can have up to three of these. An example with 2 title lines is given below. Lines which have no meaning will be simply ignored, i.e. treated as comment, such as the second line in this example:

    @LENGL
    No empty lines in between
    @TSilent Night
    @TWords and Music by Joseph Mohr & Franz Gruber

The lyrics of the song are separated from the header by one or more empty lines. Empty lines are lines consisting of nothing else but a carriage return (and possible blanks). Within the lyric part, empty lines also mark the boundaries between verses. Depending on which karaoke player is used, a new verse is visualized by a clear screen, two empty lines, or one empty line.

Within the verses, the following special symbols/codes are used:

  • Separators between syllables (e.g. hyphens and spaces)
  • Escape symbol (\)
  • Ciphers as empty syllables
  • MIDI time code
  • Track switch code

The structure of a song text in Song Text Format is shown in this example.


Unicode characters in karaoke files

Song Text Format Example

If you want to create a karaoke file in a language that makes use of non-Latin characters (like letters with accents, or Arabic, Chinese, Cyrillic, Greek, or Hebrew characters) you may need to use Unicode characters (see File settings). If you do not use Unicode characters, some non-Latin characters can be available dependent on your Windows code page (for an explanation, see http://en.wikipedia.org/wiki/Code_page), but may be displayed incorrectly on a (Windows) system using another code page. For right-to-left languages (like Arabic or Hebrew), also select the Use right-to-left karaoke option (see File settings).

For easier entering of lyrics in a language that makes use of non-Latin characters, you may want to install a keyboard mapping for that language in Windows, instead of using the Edit > Special Letters option in Karakan. In Windows XP, you can do this under: Control Panel > Regional and Language Options > Languages > Details > Settings > Add. In Windows 7, you can do this under: Control Panel > Region and Language > Keyboards and Languages > Change keyboards > General > Add.

It is, however, important to note that not all karaoke players support Unicode characters and right-to-left display yet. See the Karakan website for other karaoke player that can handle Unicode characters.

It not yet possible to use Unicode characters in a MIDI file with lyrics. MIDI files with lyrics are usually used by keyboards. There is no standard for incorporating Unicode characters in these files.

Notes for karaoke player developers:
Karakan uses the additional @C marker on the "Soft Karaoke" track to indicate the type of encoding used on the "Words" track. The full format of this marker is @C[track name]encoding. For encoding, only UTF-16LE (UTF-16 little-endian, which is used by Microsoft Windows) has been defined yet. Karakan therefore inserts the marker @C[Words]UTF-16LE on the "Soft Karaoke" track if the Use Unicode characters in preview and karaoke file option is checked.

The right-to-left option is a display option only. No information about right-to-left is stored in the karaoke file. Karakan uses Uniscribe, which contains Microsoft's implementation of the Unicode bidirectional algorithm, for displaying all text lines (if the right-to-left option has been selected).