Some traditional music I play or used to play, mainly in the Kazimodal band.
The tunes are written in ABC notation
ABC notation standard v2.2
and a Makefile-based build system generates sheet music (PDF, PostScript),
MIDI files, audio and HTML catalogs.
The repository is organized by dance/tune type, each in its own directory:
andro-- an drohanter-dro-- hanter-drogavottes-- gavottes (glazik, montagne...)dans_fisel-- danse fiseldans_leon-- danse Leonkaz-a-barh-- kas-a-barzkost_ar_c_hoad-- kost ar c'hoadlarides_6-- laridé 6 tempslarides_8-- laridé 8 tempsplin-- plinnrond_saint-vincent-- rond de Saint-Vincentcercles_circassiens-- cercle circassien
bourrees_2-- bourrées 2 tempsbourrees_3-- bourrées 3 tempsmazurka-- mazurkascottish-- scottishscottish_valse-- scottish-valsevalses-- valsesvalse_5-- valse 5 temps
divers-- miscellaneous tunes (galop nantais, cochinchine...)catholique-- religious musicNeketa-- collection from Neketa bandSkol_Al_Louarn-- collection from the Skol Al Louarn band from the Breton dance teaching association in PlouzanéPassages-- transition/modulation pieces
Each tune lives in its own sub-directory containing:
an ABC source file (e.g.
tune.abc)a local
Makefilethat setsABCandHTML_TITLEthen includes the top-levelMakefile:ABC = tune.abc HTML_TITLE = Tune Title include ../../Makefile
generated files: PDF, PostScript, MIDI (one per voice), HTML
an
all/directory with a merged MIDI of all voices
The build system runs on Linux (tested on Debian). Required packages and tools:
- abcm2ps -- ABC to PostScript (with UTF-8 support)
- abc2midi -- ABC to MIDI
- abccat -- concatenate ABC files into a single multi-voice file
abc2abc-- transpose and manipulate ABC files (part of abcmidi)ps2pdf(Ghostscript) -- PostScript to PDFtimidity-- MIDI playback and audio renderingsox-- audio format conversion (for CD creation)
On Debian/Ubuntu most of these are available as packages:
sudo apt install abcmidi abcm2ps timidity ghostscript sox
All make commands are run from a tune's own directory.
Build everything (PDF, PS, MIDI, audio, HTML):
make world
Play each voice individually (ALSA / JACK):
make play # ALSA backend make jplay # JACK backend
Play the full merged tune:
make playall # ALSA make jplayall # JACK
Transpose up or down by 2 semitones:
make tune+2.pdf make tune-2.pdf
Generate a bass-clef (F-key) version:
make tune-F.pdf
Deploy to the web partition directory:
make install
Clean generated files:
make clean
ABC source (.abc) | +-- abcm2ps --> PostScript (.ps) --> ps2pdf --> PDF (.pdf) | +-- abc2midi --> MIDI per voice (.mid) | | | +-- timidity --> AU audio (.au) | +-- timidity --> WAV (.wav) --> sox --> CDR | +-- abccat --> merged MIDI (all/tune.mid) | +-- --> HTML catalog fragment (.html)
Transposition and bass-clef variants are derived from the ABC source
with abc2abc and sed.