Page:ABC tech pages.djvu/2

Find traditional instrumental music
This page has been proofread

204 ABC with a UNIX Flavor There are many abc processing tools and, among them, the most popular are the abcm2ps [18] typesetter and the midi creator abc2midi [1]. The first translates music written in abc into customary sheet music scores in PostScript or SVG format. The latter converts an abc file into a midi file. UNIX Metaphor The Unix philosophy [21] emphasizes the creation of simple, yet capable and efficient programs, which tackle only one problem at a time. Moreover, programs should handle text streams as a universal type. The latter allows programs to easily communicate with each other. In order to facilitate the development of new Unix commands, Unix creators built a new language (C). Unix is simple. It just takes a genius to understand its simplicity. (Dennis Ritchie) When we move to the music world we also believe in building simple music commands, using a universal music stream type (abc), creating a music command development language and exercising music command compositionality. This paper describes a system for creating abc processing tools with the following design goals: Generation of simple tools through a compact specification; abc oriented; Being able to deal with real abc music (more than a sequence of notes); Being able to associate transformations with specific abc elements, allowing a surgical processing; Rich embedding mechanisms (using Perl for specific abc transformations). In short, we present a rule-based domain-specific language [16, 15] (DSL) - abc::dt - for building simple, compositional (in a Unix filters’ meaning) abc processing tools. This document is organized as follows: in section 2, we describe related music notations, tools and projects, and summarize the most relevant music representation approaches; in section 3, we discuss abc::dt’s rules and the algorithm of the generated abc processing tool; finally, in section 4, we present some tools created with abc::dt. 2 State of the Art In this section we will describe the music notation standard abc, present the most relevant abctools and projects and summarize the most popular music representation approaches. 2.1 ABC Most music notation programs have a visual approach, in which the user drags and drops notes and symbols using the mouse and the resulting sheet is displayed on the screen. An alternative approach is writing music using a text-based notation. This is a non-visual mode that represents notes and other symbols using text characters, making it economic and sometimes intuitive to use and also making possible faster transcriptions. A specialized program then translates the notation into printable sheet music in some electronic format (e.g. PDF) and/or into a midi file. Many text-based notations have been created [20, 17], and one of them was abc, introduced by Chris Walshaw in 1991 as a means to share traditional folk music, such as Irish jigs.