skip to main content
10.1145/1890703.1890704acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

MIDI programming in scheme: supported by an Emacs environment

Published:22 June 2010Publication History

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.

References

  1. 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 ScholarGoogle Scholar
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle Scholar
  4. Andrew R. Brown. Making music with Java. lulu.com, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. Paul Hudak and Joseph H. Fasel. A gentle introduction to Haskell. ACM Sigplan Notices, 27(5), May 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. J. Hughes. Why functional programming matters. Computer Journal, 32(2):98--107, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kurt Nørmark. Web programming in Scheme with LAML. Journal of Functional Programming, 15(1):53--65, January 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle Scholar
  16. Kurt Nørmark. A graph library extension of SVG. In Proceedings of SVG Open 2007, Tokyo, Japan, September 2007.Google ScholarGoogle Scholar
  17. Kurt Nørmark. The MIDI LAML home page, 2010. http://www.cs.aau.dk/~normark/midi-laml/.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. Guy L. Steele. Common Lisp, the language, 2nd Edition. Digital Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Heirich Taube. An introduction to common music. Computer Music Journal, pages 29--34, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  21. Ton Valkenburgh. Cakewalk application language programming guide, May 2009. http://members.ziggo.nl/t.valkenburgh/-indexmidi.html?/t.valkenburgh/CAL.html.Google ScholarGoogle Scholar
  22. W3C. Extensible markup language (XML) 1.0 (fifth edition), November 2008. http://www.w3.org/TR/REC-xml.Google ScholarGoogle Scholar

Index Terms

  1. MIDI programming in scheme: supported by an Emacs environment

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Other conferences
            ELW '10: Proceedings of the 7th European Lisp Workshop
            June 2010
            20 pages
            ISBN:9781450305341
            DOI:10.1145/1890703

            Copyright © 2010 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 22 June 2010

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader