ABSTRACT
A Scheme representation of Standard MIDI Files is proposed. The Scheme expressions are defined and constrained by an XML-language, which in the starting point is inspired by a MIDI XML event language made by the MIDI Manufactures Association. The representation of Standard MIDI Files in Scheme makes it possible to carry out systematic modifications and transformations of MIDI contents with use of pure functional programming. Side by side with the XML-inspired MIDI language, the paper describes an Emacs-based, textual programming environment that supports the MIDI programming process. The programming environment also supports a variety of interactive features - similar to MIDI sequencers - but restricted to a textual representation of the music. The main contributions of the work are considered to be (1) An accumulated MIDI function library, which can transform MIDI files in many nontrivial ways; (2) A proposed working process alternating between creative mode and programmatic editing mode within a MIDI programming environment; and (3) A textual MIDI programming environment with embedded support of many interactive, MIDI-related functionalities.
- Carlos Agon, Jean Bresson, and Gérard Assayag. Openmusic: Design and implementation aspects of a visual programming language. http://recherche.ircam.fr/equipes/repmus/-bresson/docs/agon-els08.pdf, 2008. Presented at the 1st European Lisp Symposium ELS'08, Bordeaux, France, 2008.Google Scholar
- Gérard Assayag, Camilo Rueda, Mikael Laurson, Carlos Agon, and Oliver Delerue. Computer-assisted composition at IRCAM: From patchwork to openmusic. Computer Music Journal, 23(3):59--72, 1999. Google ScholarDigital Library
- Jean Bresson, Carlos Agon, and Gérard Assayag. Openmusic 5: A cross-platform release of the computer-assisted composition environment. In Proc. 10th Brazilian Symposium on Computer Music, Belo Horizonte, Brazil, 2005. http://articles.ircam.fr/textes/Bresson05b/.Google Scholar
- Andrew R. Brown. Making music with Java. lulu.com, 2009. Google ScholarDigital Library
- D. Fober, Y. Orlarey, and S. Letz. Midishare joins the open source softwares. In ICMA, editor, Proceedings of the International Computer Music Conference, pages 311--313, 1999.Google Scholar
- M. Good. MusicXML in practice: Issues in translation and analysis. In Proceedings of the First International Conference MAX 2002: Musical Application Using XML, pages 47--54, September 2002. http://www.recordare.com/good/max2002.html.Google Scholar
- Albert Gräf. Q: A functional programming language for multimedia. In LAC2005 Proceedings, 3rd International Linux Audio Conference, pages 21--28. Zentrum für Kunst und Medientechnologie, Karlsruhe, Germany, April 2005.Google Scholar
- Albert Gräf. Q-midi: A midishare interface for the Q programming language. http://q-lang.sourceforge.net/lac05/q-lac05.pdf, March 2005.Google Scholar
- Paul Hudak and Joseph H. Fasel. A gentle introduction to Haskell. ACM Sigplan Notices, 27(5), May 1992. Google ScholarDigital Library
- Paul Hudak, Tom Makucevich, Syam Gadde, and Bo Whong. Haskore music notation - an algebra of music. Journal of Functional Programming, 6:465--483, 1995.Google ScholarCross Ref
- J. Hughes. Why functional programming matters. Computer Journal, 32(2):98--107, 1989. Google ScholarDigital Library
- Richard Kelsey, William Clinger, and Jonathan Rees. Revised5 report on the algorithmic language Scheme. Higher-Order and Symbolic Computation, 11(1):7--105, August 1998. Google ScholarDigital Library
- Mikael Laurson, Mika Kuuskankare, and Vesa Norilo. An overview of PWGL, a visual programming environment for music. Computer Music Journal, 33(1):19--31, 2009. Google ScholarDigital Library
- Kurt Nørmark. Web programming in Scheme with LAML. Journal of Functional Programming, 15(1):53--65, January 2005. Google ScholarDigital Library
- Kurt Nørmark. Deriving a comprehensive document from a concise document - document engineering in scheme. In Danny Dubé, editor, The 8th Workshop on Scheme and Function Programming. Départment D'Informatique et de Génie Logiciel, Université Laval, Canada. Technical Report DIUL-RT-0701, September 2007.Google Scholar
- Kurt Nørmark. A graph library extension of SVG. In Proceedings of SVG Open 2007, Tokyo, Japan, September 2007.Google Scholar
- Kurt Nørmark. The MIDI LAML home page, 2010. http://www.cs.aau.dk/~normark/midi-laml/.Google Scholar
- R. M. Stallman. Emacs: The extensible, customizable, self-documenting display editor. In D. R. Barstow, H. E. Shrobe, and E. Sandewall, editors, Interactive Programming Environments, pages 300--325. McGraw-Hill, 1984.Google Scholar
- Guy L. Steele. Common Lisp, the language, 2nd Edition. Digital Press, 1990. Google ScholarDigital Library
- Heirich Taube. An introduction to common music. Computer Music Journal, pages 29--34, 1997.Google ScholarCross Ref
- Ton Valkenburgh. Cakewalk application language programming guide, May 2009. http://members.ziggo.nl/t.valkenburgh/-indexmidi.html?/t.valkenburgh/CAL.html.Google Scholar
- W3C. Extensible markup language (XML) 1.0 (fifth edition), November 2008. http://www.w3.org/TR/REC-xml.Google Scholar
Index Terms
- MIDI programming in scheme: supported by an Emacs environment
Recommendations
MIDI Conversion to Musical Notation
ICI '11: Proceedings of the 2011 First International Conference on Informatics and Computational IntelligenceNowadays, music has become an integral part of human life. People live with music surrounding them. Almost everywhere in the world there is music playing. Playing music is no longer the work of musician only, as all humans like music. Musical Instrument ...
The MIDI pick: trigger serial data, samples, and MIDI from a guitar pick
NIME '07: Proceedings of the 7th international conference on New interfaces for musical expressionThe guitar pick has traditionally been used to strike or rake the strings of a guitar or bass, and in rarer instances, a shamisen, lute, or other stringed instrument. The pressure exerted on it, however, has until now been ignored. The MIDI Pick, an ...
Comments