ABC with a UNIX Flavor Bruno M. Azevedo and José João Almeida Departmento de Informática, Universidade do Minho Campus de Gualtar, 4710-057 Braga, Portugal pg19819@alunos.uminho.pt, jj@di.uminho.pt Abstract abc is a simple, yet powerful, textual musical notation. This paper presents abc::dt, a rule-based domain-specific language (Perl embedded), designed to simplify the creation of abc processing tools. Inspired by the Unix philosophy, those tools intend to be simple and compos- itional in a Unix filters’ way. From abc::dt’s rules we obtain an abc processing tool whose main algorithm follows a traditional compiler architecture, thus consisting of three stages: 1) abc parser (based on abcm2ps’ parser), 2) abc semantic transformation (associated with abc attributes), 3) output generation (either a user defined or system provided abc generator). 1998 ACM Subject Classification H.5.5 Sound and Music Computing, D.3.4 Processors - Com- pilers Keywords and phrases Music Processing, ABC Notation, Unix, Scripting, Compilers Digital Object Identifier 10.4230/OASIcs.SLATE.2013.203 1 Introduction As computers were introduced to the world of music, a variety of file formats and tex- tual notations emerged in order to describe music, such as, abc [23], LilyPond [20] or MusicXML [17]. abc is used as the base notation throughout all of this paper. Listing 1 illustrates an example of abc notation and figure 1 its corresponding score. Listing 1 Verbum caro factum est: Section 1; Part 1 - Soprano. X:101 T:Verbum caro factum est C:Anonimous , 16th century M:3/4 L:1/8 K:G V:1 clef=treble −1 name="Soprano" sname="S . " G4G2|G4F2|A4A2|B4z2|:B3AGF|E2D2EF|G4F2|G6!fine!:| w: Ver− bum|ca− ro|fac− tum|est|Por − que ∗|to − dos ∗|hos sal−|veis Verbum caro factum est Anonimous, 16th century Soprano Ver bum ca ro fac tum est Por que to dos hos sal veis 4 3 FINE Figure 1 Verbum caro factum est Score: Sections 1: Part 1 - Soprano. © Bruno M. Azevedo and José João Almeida; licensed under Creative Commons License CC-BY 2nd Symposium on Languages, Applications and Technologies (SLATE’13). Editors: José Paulo Leal, Ricardo Rocha, Alberto Simões; pp. 203–218 OpenAccess Series in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany