ABC is een door Chris Walshaw ontworpen muziek opmaak-taal. Zij is in eerste instantie bedoeld voor muzieknotatie. ABC-bestanden zijn platte tekstbestanden en grammatica is uitermate compact. Zie bijvoorbeeld het bestand BWV_0645_Wachet_auf.abc op deze wikiserver: de ABC broncode past bijna op een enkel A4-tje, terwijl een uitgeprinte PostScript- of PDF-versie wel vier pagina's beslaat.
Ook het veranderen van een enkel nootje, kan heel snel gebeuren: je hebt slechts een teksteditor nodig (NotePad of WordPad op Windows, BBEdit op Mac, Vi op Unix, etc., of een ABC wikiserver dus :-).
Een extreem voorbeeld van wat je met ABC kunt doen is het werk van Steve Allen: Beethoven Symphony7 deel2.abc.
ABC naar bladmuziek renderen:
Er is gratis programmatuur beschikbaar voor het omzetten van een ABC tekstbestand naar een partituur in PostScript formaat:
abc2ps Een copie van originele broncode, in de programmeertaal C, van Michael Methfessel staat op deze wikiserver: abc2ps-1.3.3.tar.gz. Nogal wat mensen hebben deze code aangepast en uitgebreid. De lichtelijk (door Pieter) aangepaste broncode, zoals het nu ook op deze wikiserver draait: abc2ps-133pi03.tar.gz.
abcm2ps Meer toegespitst op meerstemmige muziek.
yaps Door James Allwright. Is te vinden als onderdeel van het pakket abcMIDI: abcMIDI-2003-12-07.zip.
PostScript bestanden kunnen meestal direct worden uitgeprint, of bekeken op scherm met een programma's als Ghostview. Met de gratis Ghostscript software kunnen PostScript worden geconverteerd naar PDF (en nog een hele hoop andere formaten).
ABC tot klinken brengen:
Behalve dat ABC omgezet kan worden in grafische uitvoer, kun je er ook MIDI en audiofiles van maken. Je mist dan natuurlijk wel expressie en interpretatie.
MIDI.
Audiofile.
MIDI naar ABC:
Het programmaatje voor het omzetten van MIDI bestanden naar ABC heet midi2abc en is te vinden in het abcMIDI pakket. Dit kan handig zijn om een snel een rauwe transcriptie te krijgen. Meestal moet er daarna nog heel wat worden ge-edit om een mooie partituur te krijgen (voortekens, enharmonische verwisselingen, overbindingsboogjes, etc).
Versies:
Er zijn nogal wat verschillende versies van de diverse ABC-pakketten in omloop. Ieder met hun eigen uitbreidingen en gedeeltelijke implementaties van de ABC standaard. Wanneer je net met ABC begint stelt dat je meteen voor het probleem: Welke versie kan ik het best gebruiken?. Het antwoord daarop is uiteraard: Dat ligt eraan wat je er precies mee wilt doen..
Een ander probleem, dat zich bij alle source-distributies voordoet, is de matige kwaliteit van de C-codes:
Een hele bende mogelijk ongeinitialiseerde variabelen.
Statische geheugen allocaties.
Zeer veel globale variabelen.
Developers zouden alle waarschuwingen aan moeten zetten in hun compilers (-Wall met GCC) en ze allemaal wegwerken.
Vergelijking met andere notatiepakketten:
In vergelijking tot LilyPond zijn de diverse ABC-paketten erg makkelijk te compileren: behalve een C-compiler heb je niets nodig.
LilyPond compileren, installeren en aan de gang brengen is een stuk ingewikkelder maar loont wellicht de moeite want met ABC loop je toch al snel tegen beperkingen op....