What is EnzAnKara?

EnzAnKara is an open and free software that turns your Desktop/Notebook into a KaraOkey machine: you can play/edit your music lyrics/notes and sing along with a mic with your computer.

It is based on Pure Java -- so you can have it on Windows/Linux/MacOS(Apples)/FreeBSD/...

Below are some screen shots of EnzAnKara in action:

(1) The main control window:

(2) An english song in play (sample song en-hereiam.snt):

(3) A chinese song in play (see sample song jingsi.snt):

(4) Fine progression (see sample song wildnopa.snt):

(5) Editing Lyrics (wildnopa.txt):

(6) Editing simple notes:



Where to download EnzAnKara?

Goto the url below. Current version is 1.5.0:



How to install EnzAnKara?

Software and hardware requirement:
Software: have JDK 5.0 or up, to run on any supported systems.
Make sure you uninstalled any earlier versions, including
JRE (J2SE Runtime Environment).

NOTE: The Java Development Kit (JDK) allows
end users to run/develop java applications. It is FREE.
You can download JDK 5.0 from here:

Due to a known bug with JRE 5.0, no music can be heard with it.

Hardware: sound card with midi (Most will have this).
To test if your computer supports midi, download
a midi file and play it (by winamp or other players).
http://www.mididb.com/ is a good site for this purpose.

Install the EnzAnKara
There is no need to install -- just unzip everything under
a folder and double click the jar file (enzan*.jar), you
should bring up the main window if JDK 5.0 or up is installed.


How to play EnzAnKara?

To load sample songs, use the file menu to open any of
the *.snt files under samples folder. Some are chinese songs,
some are english songs (en-*.snt), some only
have melody (springofnorth.snt). Use the "play"
button to start playing them.

If you want to sing along with it, just plug in your mic and enable it through the main menu.

Using external player (to play mp3, wav, ... etc)
You can also use external player to play the music,
while EnzAnKara displays the lyrics. Use the option menu
or button to choose the executive of the external player.
To synchronize the external player and EnzAnKara,
anchors can be inserted to help with the timing of the lyric.
Also, you can use the train menu or button to help set the time
of the anchors.

How to Make/Edit your own KaraOkey?

To make your own KaraOKey, you should have
your simple notes ready ( like: 2 1 5 - | 4 0 3 ).
Use menu [Edit|Note] to bring out the
Music Editor, and from there you can use (ctrl-N)
to start a new file. Once you have selected a cell,
use the piano below to play your simple notes, which shall be inserted
by the selected cell in the editor, then use mouse to addjust
the length/duration of each cell (left click to shorten,
right click to lengthen).
Save your simple notes with file extension ".snt".
NOTE: In Multi-Char mode, simultaneous notes
will be added to highlighted cells. In Mono-Char
mode, no two note will share a single cell. For an
example of simultaneous notes, see "silent.snt".

Then you can use (ctrl-N) to start a new file for your
lyrics. This time you can simply use key board
to input your lyrics first. Then again use mouse
to adjust your cell length/duration. This time
save in the same file name as before, but with
extension ".txt".
NOTE: In Multi-Char mode, characters are added
to the same cell (except for ' ', '-', '_', they will
start a new cell). In Mono-Char mode, each
character will have a single cell (for East Asian
Lyrics, such as Chinese lyrics).

When you are editing, you can run a test play from
the Music Editor's menu. Once you are satisfied,
you can go to the main window and open your
"*.snt" file to start playing.

When you are editing the note/lyric file, you can do many
interesting things. One is to add marks. Marks are
shown as "{#markname}". Marks should appear in
pairs, so that everything between the paired marks
are considered belong to that mark. Once you have
defined a mark, you can then use a caller to revoke
it, which means everything belongs to the called mark
should be put in place of the caller. A caller is shown as
"{@markname}". You can use menu to insert them.

You can also insert "commands". Commands are formatted
as "{!command=parameter}". The following commands are suported.

The following commands are good for ".txt" (lyrics) files:
{!page}: this means the start of a new page, only good for ".txt" file.
{!bgcolor=#ab3464}: background color, can also use menu to add it.
{!fgcolor=...}: foreground color, can also use menu to add it.
{!pgcolor=...}: progression color, can also use menu to add it.
{!image=...}: background image, can also use menu to add it.
{!font=...}: lyric font, can also use menu to add it.
{!shadow=...}: makes shadow, an integer (may be < 0),
the offset of shadow in pixels. Open "en-FathersWorld.snt"
or "FathersWorld.snt" for an example (since version 1.3).

The following commands are good for ".snt" (simple notes) files:
{!channel=2}: which midi channel to play the simple notes.
You can use integers between (0-15), and channel 9 is percussion.

{!instrument=23}: what instrument to use. Values between (0-127).
You can figure it out by playing with the instrument table in the
main window: start from the first cell in the table as 0, count from
up to down, left to right.

{!fork=filename.snt}: simultaneously play another note file,
the other file could be playing in different channel with different
instrument, that can be cool -- make your own symphony!
For an example, see "lordGod.snt".

{!1=G}: this sets the the value for "1" (doe). Values can be:
A, B, C, D, E, F, G; Half step up (#) or down (b) can be used,
e.g.: "{!1=D#}" or "{!1=Ab}".

{!volume=...}: sets the volume, value in [0,127], inclusive. (since version 1.3)

Commands are executed when they are met.

Finally, anchors can also be inserted to help with timing. An
anchor enforces that the time to pass that point must be
the time specified by the anchor, where the time at the very
beginning is 0. Time is in milliseconds, that is,
1000ms = one second.


Contact Me:

You can reach me through email: lanyjie@yahoo.com



Many thanks to Chenchen Yuan, who helped translate this webpage into Chinese.