Five Line Skink
Five Line Skink is a desktop application which is used to create music staff
notation using the abc standard described at
Skink is available for the Macintosh, Windows and Linux platforms (early versions were
also tested on Solaris), but requires
that Java be installed - at least Java 1.4 for Skink version 1.x and Java 5 for
Skink version 2.x. If you are running on a Macintosh, Java is installed for you.
Skink version 2.0j0 (public beta) 16 June 2009
This version is still under construction - please send any feedback (positive or negative!) to
wil_dot_macaulay_at_gmail_dot_com . If you really like it, feel free to donate through PayPal below.
For Mac OS 10.7:
For Mac OS 10.4.x to 10.6.x:
for Windows with Java 5 or better:
for Linux with Sun Java 5 or better:
- Linux and Windows version also available as a tar file if you have no file unzipper:
This is a prerelease version of Five Line Skink. Major differences between Skink 2.0 and Skink 1.x include:
Some other enhancements include:
- Skink 2.0 supports multi-voice abc, as well as related features such as alto, tenor and bass clefs
- Skink 2.0 can invoke abcm2ps directly.
- Support for multiple open files in separate windows
- window menu
- support for abcm2ps format files
- preferences menu can be used to update abcm2ps path and format file
- sample format file (skink.fmt) to produce abcm2ps output similar to Skink output
- tested on Mac OSX 10.5.7 with Java 5, Windows XP with Java 6 and Ubuntu 9.04 with Sun Java 6
Note that in this version there are a number of restrictions, some of which are documented here:
- improvements to layout
- more consistent handling of the interaction between continuous layout mode and playback - in continuous mode, Skink will now only display the tune in which data is being entered, and will play that tune when play is invoked from the menu
- the abc file directory is now 'sticky' - Skink will remember the last directory from which abc files were opened after restart.
- Skink 2.0 requires Java 1.5 or better, and thus must run on Mac OS X 10.4.x or better
- In order for Skink to invoke abcm2ps, it must be installed separately, and must appear in the path. The pre-built abcm2ps that is available at http://abcplus.sourceforge.net/#abcm2ps installs in /usr/bin/ which satisfies these requirements. Future versions of Skink will support configuration of the location and options of abcm2ps. In the current version, this is controlled by the environment variable "ca.celticmusic.skink.abctool",which defaults to the string "abcm2ps". This can also be changed from the preferences menu.
- Merging voices on a single staff is not yet supported.
- Playback of multi-voice music is not fully supported. Specifically, in cases where one voice has tuplets (for example triplets) while another does not, roundoff error can cause the voices to become unsynchronized.
- The interaction between parts (P:xxx) and voices (V:xxx) is not fully resolved.
- Selecting 'New' from the file menu when you have changed a file will prompt you to save the file
- It is possible to open the same file multiple times. If you change the file in different buffers, the last one saved will win.
- When canceling out of quit, the Window menu can be momentarily corrupted.
- Multiple windows can cover each other.
Skink version 1.2a3 20 September 2004
Skink is a java application which supports the abc 1.6 standard with
some extensions. It can open, edit, save, play and display abc files. My
goal was to have a lightweight abc editor that can be used as a
portable tunebook on a laptop to display tunes so that I can practice
when I travel, as well as a basic abc display program that I can run
under Solaris or Windows NT to look at abc files that arrive in my
mailbox. As a result, I focused on creating a legible staff display that
is small enough to be usable on a laptop with an 800 by 600 screen.
Playback is (at least for now) focused on 'proof-hearing'; that is,
playing back the bare bones of the tune so I can tell if it sounds
Skink is freeware. If you would like to make a donation for it, you can
do so through the PayPal button below (use the address above). I may make it open-source, depending
on whether I get it to the point of wanting to show the world my
mistakes... I still have lots to do before that time, however, so don't ask!
This version of Skink has been developed and tested mostly under
Mac OS X 10.3.5. This or previous versions have been run successfully by
myself or others under Mac OS X 10.1.5, 10.2.6 and
10.3 with Java 1.3.2, and Java 1.4.2,Ê Windows NT
workstation version 4 with Java 1.3.1, and 1.4.1, Windows 2000 with Java
1.4.1, Windows XP with Java 1.4.2, Solaris 2.7 under Java 1.2.2, Solaris 2.8 with Java 1.3.1 and
1.4.0, and Linux under Java 1.3.1.
I strongly suggest Java 1.3.1 or Java 1.4.2 as the Java platform.
Skink relies on some
pieces of Java which are not trivial to install under previous versions.
Mac OS X comes with Java installed, and you can get Java 1.3 for
Windows, Solaris and Linux at
The Windows/Unix version of Skink is at
Note that the files are stuffed into a gzipped archive. If you are running
on Windows and need a utility to unstuff them, the free utility Stuffit
is available at
The Mac OS X version is at
I _strongly_ recommend at least Mac OS X 10.2.8 for Skink to run
properly. Under 10.2.3 or better, you can start Skink by simply doubleclicking on
an abc file.
If you are running a previous version of java (1.1.6 or better) you
will need the Swing classes to run Skink. Upgrade if you can (Solaris
or WinXX) to at least 1.3.1. If you are using 1.2 you will need the
Java Media Framework to play tunes.
There is a Macintosh OS 9 version (still version 0.9c, without tune
play and with primitive graphics) available at
I am not going to continue to update the Mac OS 9 version, because
anybody still on OS 9 should be using BarFly instead.
NOTE: Skink is an application, not an applet - it needs to be
because it manipulates files. It will not run under your browser, you
need the JRE.
Basic installation instructions (Mac OS X)
- Unstuff the DMG and mount it by double-clicking. Drag Skink to
the Applications folder
Basic installation instructions (Macintosh OS 9)
- Ensure you have MRJ 2.2 (comes with MacOS 9.04, can be
downloaded for MacOS 8.0 and higher).
- note that Stuffit Expander may unstuff the skink.jar file into
individual class files - these can be safely ignored or deleted.
Basic installation instructions (Windows, Linux and Unix):
- Install JRE 1.2 or better (1.3.1 recommended, see above)
- Unpack the gzipped tar file into a new directory using WinZIP
(Windows) or gunzip.
- cd to the directory, enter Skink at the command line, or double
click on Skink.bat from the windows file explorer. Skink.jar is an
executable jar file - if you have Java 1.2 or later then double-clicking
on Skink.jar will start it up.
under Unix or Linux (java 1.2 or greater, Java 1.3 recommended) cd
to the directory,
- java -jar Skink.jar <abcfile>
The abc notation is described at http://www.gre.ac.uk/~c.walshaw/abc/
Steve Mansfield has an excellent tutorial and FAQ at http://www.lesession.co.uk/abc/abc_notation.htm
John Chambers has a large set of abc resources at http://trillian.mit.edu/~jc/music/abc/,
including his abc Tune Finder and a FAQ, as well as a primer at http://trillian.mit.edu/~jc/music/abc/doc/ABCprimer.html
Some example abc files are found in the Samples subdirectory.
When skink first starts up, you will see three window panes and a
The rightmost pane is the 'tune tree pane', the top left
pane is the 'staff pane' and the bottom left pane is the 'abc pane'
abc notation is entered in the abc pane in one of the following ways:
- open an existing abc file using Open from the file menu
- type it in yourself by clicking in the abc pane and using the
standard text-editor type actions - cut, copy, paste, etc.
- fetch an existing file using the URL from the internet
Displaying staff notation
Once the abc notation is in the abc pane, select "Show Tunes" from the
Abc menu (note that if you have opened an existing abc file from the
menu, this step is unnecessary). In the tune tree pane you will now
see a folder icon with the name of the file, with all the tunes in the
file below it. Click on a tune to display the notation in the staff
pane. Control-click on several tunes to display them all at once, or
click on the folder icon to show all tunes (this may be slow if you have
a large number of tunes in the file). You can scroll the staff pane to
show more tunes, or resize the window or the pane.
You can also use the arrow keys in the tune tree pane to scroll
through the file a tune at a time. As you do this, the abc pane will
also scroll to show you the abc notation of the tune you are looking at.
If Skink detects an error on a tune, the tune's title will be highlighted in red, with the word '**ERROR**'. Clicking on the title will expand it to reveal an error message. Clicking on the error message will scroll the abc to the offending line and position the cursor on the error.
If you are entering tunes, you can choose "continuous" from the Display
menu (previously known as the Tools menu). Now, as soon as you
enter characters the staff will be automatically updated. Note
that sometimes when you type you will enter something that is invalid
abc on your way to entering valid abc. A good example of this is
with aligned lyrics. Once you enter the w on a line by itself, the
tune is not valid anymore, but it will be as soon as you enter the next
: to get w:. Skink will turn the tune name red in the tune tree
pane to show you there is an error, but will let you continue to correct
Skink's normal display mode is designed to fit one staff and the tune tree onto
the screen of a laptop with a 1024-pixel wide display. If you have more
screen real estate to work with, choose "Wide Music" from the Display menu.
Choosing "Zoom in" from the display menu will enlarge the music on the staff panel.
"Zoom out" will shrink the music. Note that zooming will have no effect on the printed size of the music.
Skink will print the tunes that are selected in the tune tree pane; if
you have selected the entire file by clicking on the the folder icon it
will print all the tunes. Choose 'print' from the file menu. Note that
Skink will scale the screen display to fit on the page, so that if you have
chosen "Wide Music" you will actually get more on the page.
Skink doesn't have a way of forcing a page break, but if you want to add blank lines to the end of a tune to persuade Skink to print the next tune on a new page, you can do so by adding W: lines at the end.
Skink will play the tunes that are selected in the tune tree pane; if
you have selected the entire file by clicking on the folder icon it will
play all the tunes. Choose 'play tunes' from the abc menu to start
playing. Choose Stop playing to stop, or play a different tune.
Displaying/printing/playing multiple tunes
If you want to display, print or play multiple tunes in a particular
order, select the first and then use (mac) cmd-click or (windows)
ctrl-click to select the next tune. Tunes will be displayed in the
order you click, and printed and played in the order they are displayed.
Exporting to MIDI (new with 1.0e2)
Skink supports basic MIDI export - select the tune you want to export
and select Export MIDI from the abc menu. You will be asked to
supply a file name, and Skink will write a MIDI type 1 file. This
can be used to import into programs that can read MIDI - you may have to
move barlines around and re-add slurs and gracenotes.
If an error is detected when you choose "Show Tunes" from the Abc menu,
Skink will turn the tune title red in the tune tree pane. If you click
on that entry, you will be able to see an error message. Clicking on the
message will position the insertion point just after the point at which
the error was detected. Fix the error and then "Show Tunes" again, or
let Skink redisplay continuously. Note that with 1.0b2, any tunes
that contain errors will not prevent Skink from trying to process as
many tunes as possible.
Some abc packages support multiple voices in abc files; Skink does not
Wait for it...
Wil Macaulay, May 2004
Version 1.2a3 Sept 4 2003
New Features and Bugfixes
- zoom in and out on the staff pane
- parsing improvements, especially in the interaction of gracenotes and slurs.
- support for the following extended decorations:
H or !fermata!
I or !invertedfermata!
J or !slide!
L or !>! or !emphasis! or !accent!
M or !mordent! or !uppermordent!
O or !coda!
P or !pralltriller! or !lowermordent!
Q or !longphrase!
R or !mediumphrase!
S or !shortphrase!
T or !trill!
W or !segno!
- improved rendering of note tails
- improved slur rendering
- improved tuplet rendering
- improved barline rendering
- allow decorations on barlines, repeats and invisible rests
- accidentals on gracenotes
- decorations on chords
- line up leger lines and notes better
- fix cancel window closing
Limitations and known problems
- Multi voice (V:) is still not supported
- on the Mac under OS X 10.1 and below, if you drag an abc file onto Skink
when it is not yet running, it will start up but not open the file.
If you drag the file on when Skink is running the file will be opened.
This is a known bug in early versions of OS X, and is fixed by Apple in Jaguar...
- ties within chords don't work properly
- ornaments and gracenotes don't get played