In this paper, we'll discuss a simple approach to integrating musical events, such as notes or chords, into a programming language. This means treating music sequences as a first class citizen. It will be possible to save those sequences into variables or play them right away, pass them into functions or apply operators on them (like transposing or repeating the sequence). Furthermore, instead of just allowing static sequences to be generated, we'll integrate a music keyboard system that easily allows the user to bind keys (or other kinds of events) to expressions. Finally, it is important to provide the user with multiple and extensible ways of outputing their music, such as synthesizing it into a file or directly into the speakers, or writing a MIDI or music sheet file. We'll structure this paper first with an analysis of the problem and its particular requirements. Then we will discuss the solution we developed to meet those requirements. Finally we'll analyze the result and discuss possible alternative routes we could've taken.
@InProceedings{dasilva_et_al:OASIcs.SLATE.2020.6, author = {da Silva, Pedro Miguel Oliveira and Almeida, Jos\'{e} Jo\~{a}o}, title = {{Musikla: Language for Generating Musical Events}}, booktitle = {9th Symposium on Languages, Applications and Technologies (SLATE 2020)}, pages = {6:1--6:16}, series = {Open Access Series in Informatics (OASIcs)}, ISBN = {978-3-95977-165-8}, ISSN = {2190-6807}, year = {2020}, volume = {83}, editor = {Sim\~{o}es, Alberto and Henriques, Pedro Rangel and Queir\'{o}s, Ricardo}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.SLATE.2020.6}, URN = {urn:nbn:de:0030-drops-130194}, doi = {10.4230/OASIcs.SLATE.2020.6}, annote = {Keywords: Domain Specific Language, Music Notation, Interpreter, Programming Language} }
Feedback for Dagstuhl Publishing