EASY AS ABCDE : PIANO FINGERING TRANSCRIPTION ONLINE

An online application and open-source JavaScript library to support the collection of piano fingering annotations is described and demonstrated. Dubbed “abcDE,” this editor supports full and partial transcription of fingering annotations. It produces output in a well-defined new file format called “abcD.” 1. OVERVIEW Here we describe abcDE, the Didactyl Editor for the abc music notation system. Inspired by difficulties encountered developing corpora for [13], abcDE is conceived as a utility to assist researchers investigating the piano fingering problem. As such, it provides a convenient and userfriendly way to collect fingering data. Its benefits to researchers include the following: • Easily deployable as a web application • Highly usable, with a what-you-see-is-what-you-get (WYSIWYG) paradigm to reduce data entry errors • Scalable for data collection on the web (no more transcription of hand-written annotations) • Configurable, with experimental design in mind • Interoperable with Qualtrics survey tool (via its JavaScript API) • Compatible with standardized, well-documented, and expressive new data file format (no need to roll your own) • Flexible with respect to input definition (abc or the popular MusicXML format) • Perfectly affordable (gratis) • Mutable as open-source software (libre) abcDE is a web application that has been used successfully in Chrome, Firefox, and Safari browsers in both (PC c David A. Randolph and Barbara Di Eugenio. Licensed under a Creative Commons Attribution 4.0 International License (CC BY 4.0). Attribution: David A. Randolph and Barbara Di Eugenio. “Easy as abcDE: Piano Fingering Transcription Online”, Extended abstracts for the Late-Breaking Demo Session of the 17th International Society for Music Information Retrieval Conference, 2016. Figure 1: Screen capture of abcDE in action. and Mac) desktop and (Android and iOS) mobile environments, where it is optimized by [4]. This software promises to reduce opportunity costs for researchers who wish to explore this problem domain. It may also be of interest to any pianist who would like an easy way to create nicely engraved scores that reflect their personal fingering preferences. An example implementation of an editor is available at http://dvdrndlph.github.io/didactyl/abcde/view/abcDE dev. Inspect the HTML for a list of external dependencies. A human-readable version of the library is available at https://dvdrndlph.github.io/didactyl/abcde/lib/abcDE.js, and for the developer’s convenience, a library that bundles abcDE together with all of its dependencies is published at https://dvdrndlph.github.io/didactyl/abcde/lib/abcDE full.js. All abcDE code, but not necessarily that of its dependencies, is open source and released under the terms of the MIT license [8]. 2. IMPLEMENTATION AbcDE works with piano scores captured in the abc musical notation [19], a popular text-based representation of music. With the help of third-party software [18], AbcDE is able to open MusicXML or, with additional help [6], compressed MusicXML files, but it always transforms the file to abc as a precursor to allowing users to add annotations. This is because abcDE relies on Jef Moine’s excellent abc2svg library [10] both to render standard notation to the screen and also to parse the score into its component parts. For output, abcDE produces printable annotated scores with standard notation in PDF format, but it also produces and reads its own machine-readable format, fully compatible with abc, known as “abcD.” The interface is feature rich. Users navigate directly to notes by clicking or move around using the right and left arrow keys. Unlimited undo and redo operations are supported, as are copying and pasting complete fingering sequences (via [15]) between sessions. Zooming is supported on all platforms. Icons for controls are from the freely available Open Iconic set [5]. User input, tagged with [17], is automatically saved to the browser’s local storage every few seconds to limit lost work. But users are encouraged to save their work to disk periodically as abcD (via [11]). Detailed online help [14] is also provided. 2.1 Annotations The latest abc standard [19] provides for fingering assignments to individual notes. However, it only allows assignment of digits 1–5. This is inadequate for expressing finger substitutions and alternative fingerings. For our purposes, we therefore use abc’s generic annotations, which afford us control over the content of fingering annotations and considerable control over their positioning. Currently, all right hand annotations appear above the note; all left hand annotations appear below. But an improved algorithm to control placement is being developed. We use typesetting to differentiate right from left hand annotations. 2.2 abcD File Format abcDE’s native file format is a new one designed specifically for fingering. Called “abcD,” it is a simple extension to abc to add fingering and fingering provenance information to a score. (All valid abcD is also valid abc.) Example abcD is included in Listing 1. % abcDidactyl v5 % abcD fingering 1: 1/23231313123-14534@31(3232)31 % Authority: Joe Ivory (1847) % Transcriber: David Bartleby % Transcription date: 2016-06-29 12:49:02 % Joe Ivory is a mythical pianist. % This is an example. % abcDidactyl END %%setfont-1 Bookman 11 %%setfont-2 Helvetica-Bold 11 X:1 T:abcD Demo M:C K:C V:1 treble !p!egfg egdg | cD’e2 abga:| V:2 bass [G,B,]4 z2 PG,2 |[G,B,]4z4:| Listing 1: abcD file example. 2.3 abcDF Fingering Format The extended Bachus-Naur form (EBNF) grammar displayed in Listing 2 is rendered into a PEG.js [7] transformer to allow parsing of the abcD file by abcDE. Figure 2: Rendered abcD file fragment. sequence := staff ("@" staff)? staff := line "&" staff | line | "" line := (score_fingering)* score_fingering := ornamental ("/" ornamental)? | pedaled_fingering ("/" pedaled_fingering)? | pedaling ("/" pedaling)? ornamental := "(" (pedaled_fingering)+ ")" pedaling := (soft)+ "x" (damper)+ pedaled_fingering := (soft)? fingering (damper)? fingering := finger ("-" finger)? finger := (hand)? digit damper := "_" | "ˆ" soft := "p" | "f" hand := "<" | ">" digit := "1" | "2" | "3" | "4" | "5" Listing 2: EBNF grammar defining the abcD format. The format supports transcription of ornaments, finger substitutions, 1 alternative fingerings, 2 damper pedaling, and soft pedaling. Unfortunately, abc does not currently support pedaling marks. The example in Listing 1 includes both a substitution and an alternative fingering. 3. CORPUS DEVELOPMENT An early, simpler version of abcDE (based on abcjs [16] instead of the more performant abc2svg [10]) has been used to collect fingering preferences from 191 pianists for seven short Czerny fragments [3] (the same set used by Parncutt et al. [12]). The latest version of abcDE has been used to collect annotations for selections from the Open Well-Tempered Clavier [9] from 29 pianists. We have also transcribed these same Bach selections based on publicdomain editorial scores by Czerny [1] and Tovey and Samuel [2]. These corpora will be made public in the future. 4. ACKNOWLEDGMENTS This work has been supported by a Provost’s Award for Graduate Research from the University of Illinois at Chicago. 1 A finger substitution occurs when a different finger is used to release a key than the one that struck it. 2 An alternative fingering applies to a note in a repeated section of music when a different fingering is used for the first iteration than for subsequent ones. 5. REFERENCES [1] Johann Sebastian Bach. The Well-Tempered Clavichord: Forty-Eight Preludes and Fugues in Two Volumes. G. Schirmer, New York, 1893. [2] Johann Sebastian Bach. The Well-Tempered Clavier, Book I. Associated Board of the Royal Schools of Music, London, 1924. [3] Carl Czerny. 160 Kurze Übungen, Op. 821. C. F. Peters, Leipzig, Germany, 1888. [4] FT Labs. FastClick. https://github.com/ ftlabs/fastclick, 2015. Accessed: 2016-06-27. [5] Iconic. Open Iconic, A Free and Open Icon Set. https://useiconic.com/open, 2015. Accessed: 2016-06-27. [6] Stuart Knightley. JSZip. https://stuk.github. io/jszip/, 2016. Accessed: 2016-06-27. [7] David Majda. PEG.js: Parser Generator for JavaScript. http://pegjs.org, 2016. Accessed: 2016-06-27. [8] Massachusetts Institute of Technology. The MIT License (MIT). https://opensource.org/ licenses/MIT, 1988. Accessed: 2016-06-27. [9] Olivier Miquel. Open Well-Tempered Clavier– MuseScore Edition. https://musescore. com/opengoldberg/sets/openwtc, 2015. Accessed: 2016-06-28. [10] Jean-François Moine. abc2svg. http://moinejf. free.fr/js/index.html, 2016. Accessed: 2016-06-27. [11] Doug Neiner. Downloadify: Client Side File Creation. https://github.com/dcneiner/ Downloadify, 2010. Accessed: 2016-06-27. [12] Richard Parncutt, John A. Sloboda, Eric F. Clarke, Matti Raekallio, and Peter Desain. An ergonomic model of keyboard fingering for melodic fragments. Music Perception, 14(4):341–382, 1997. [13] David A. Randolph. Didactyl: Toward a Useful Computational Model of Piano Fingering. In Chicago Colloquium on Digital Humanities and Computer Science, Evanston, Illinois, 2014. [14] David A. Randolph. abcDE Help. https: //dvdrndlph.github.io/didactyl/ abcde/view/abcde_help.html, 2016. Accessed: 2016-06-28. [15] Zeno Rocha. clipboard.js—Copy to Clipboard Without Flash. https://clipboardjs.com, 2016. Accessed: 2016-06-27. [16] Paul Rosen. abcjs: JavaScript for Rendering abc Music Notation. https://abcjs.net, 2015. Accessed: 2016-06-28. [17] Sebastian Tschan. JavaScript MD5 Implementation. https://github.com/blueimp/ JavaScript-MD5, 2016. Accessed: 2016-06-27. [18] Wim Vree. xml2abc. http://wim.vree.org/ svgParse/xml2abc.html. Accessed: 2016-0627. [19] Chris Walshaw. The abc Music Standard 2.1. http://abcnotation.com/wiki/abc: standard:v2.1, 2011. Accessed: 2016-06-28.