skip to main content
article
Free Access

A system for computer music performance

Published:01 February 1990Publication History
Skip Abstract Section

Abstract

A computer music performance system (CMPS) is a computer system connected to input devices (including musical keyboards or other instruments) and to graphic and audio output devices. A human performer generates input events using the input devices. The CMPS responds to these events by computing and performing sequences of output actions whose intended timing is determined algorithmically. Because of the need for accurate timing of output actions, the scheduling requirements of a CMPS differ from those of general-purpose or conventional real-time systems.

This paper describes the scheduling facilities of FORMULA, a CMPS used by many musicians. In addition to providing accurate timing of output action sequences, FORMULA provides other basic functions useful in musical applications: (1) per-process virtual time systems with independent relationships to real time; (2) process grouping mechanisms and language-level control structures with time-related semantics, and (3) integrated scheduling of tasks (such as compiling and editing) whose real-time constraints are less stringent than those of output action computations.

References

  1. 1 ABBOTT, C. Intervention schedules for real-time programming. IEEE Trans. Softw. Eng. SE- 10, 3 (May 1984). Google ScholarGoogle Scholar
  2. 2 ANDERSON, D.P. Synthesizer management based on note priorities. In Proceedings of the 1987 International Computer Music Conference (Urbana-Champaign, Ill., Aug. 23-26, 1987), Computer Music Association, pp. 230-237.Google ScholarGoogle Scholar
  3. 3 ANDERSON, D. P., AND KUIVILA, R.J. A model of real-time computation for computer music. In Proceedings of the 1986 International Computer Music Conference (The Hague, Oct. 20-24, 1986), Computer Music Assoication, pp. 35-42.Google ScholarGoogle Scholar
  4. 4 ANDERSON, D. P., AND KUIVlLA, R.J. Accurately timed generation of discrete musical events. Comput. Music J. 10, 3 (1986), 48-56.Google ScholarGoogle Scholar
  5. 5 ANDERSON, D. P., AND KUIVILA, R.J. FORMULA version 3.4 reference manual. Jan. 1989.Google ScholarGoogle Scholar
  6. 6 ANDERSON, D. P., AND KUIVILA, R.J. Continuous abstractions for discrete event languages. Comput. Music J. I3, 3 (1989), 11-23.Google ScholarGoogle Scholar
  7. 7 BOYNTON, L., LAVOIE, P., ORLAREY, Y., RUEDA, C., AND WESSEL, D. MIDI-LISP: A lisp-based music programming language. In Proceedings of the 1986 International Computer Music Conference (The Hague, 1986), pp. 183-186.Google ScholarGoogle Scholar
  8. 8 BRADLEY, M. Forthmacs user's guide. Bradley Forthware, P.O. Box 4444, Mountain View, Calif.Google ScholarGoogle Scholar
  9. 9 CHABOT, X. User software for realtime input by a musical instrument. In Proceedings of the 1985 International Computer Music Conference (Burnaby, B.C., Aug. 19-22, 1985) Computer Music Association, pp. 19-23.Google ScholarGoogle Scholar
  10. 10 CLARK, D. D. The structuring of systems using upcalls. In Proceedings of the I Oth A CM Symposium on Operating System Principles (Orcas island, Wash., Dec. 1-4, 1985). ACM, New York, 1985, pp. 171-180. Google ScholarGoogle Scholar
  11. 11 COLLINGE, D. MOXIE: A language for computer music performance. In Proceedings of the 1984 International Computer Music Conference {Paris, Oct. 19-23, 1984), pp. 217-220.Google ScholarGoogle Scholar
  12. 12 DANNENBERG, R.S. Arctic: A functional language for real-time control. In Proceedings of the 1984 ACM Symposium on Lisp and Functional Programming {Austin, Tx., Aug. 6-8, 1984). ACM, New York, 1984, pp. 96-103. Google ScholarGoogle Scholar
  13. 13 DANNENBERG, R.B. A real time scheduler dispatcher. In Proceedings of the 1988 international Computer Music Conference (Cologne, Sept. 19-24, 1988), pp. 239-242.Google ScholarGoogle Scholar
  14. 14 DANNENBERG, R. S., AND BLOCH, J. Real-time computer accompaniment of keyboard performance. In Proceedings of the 1985 International Computer Music Conference (Burnaby, B.C., 1985), pp. 279-289.Google ScholarGoogle Scholar
  15. 15 DANNENBERG, R. S., AND MONT-REYNAUD, S. Following an improvisation in real time. In Proceedings of the 1987 International Computer Music Conference (Urbana-Champaign, Ill., 1987), pp. 241-248.Google ScholarGoogle Scholar
  16. 16 JONES, K. Real-time stochastic composition and performance with AMPLE. In Proceedings of the 1986 International Computer Music Conference (The Hague, 1986), pp. 309-311.Google ScholarGoogle Scholar
  17. 17 KRASNER, G. Machine tongues VIII: The design of a smalltalk music system. Comput. Music J. 4, 4 (1980), 4-14.Google ScholarGoogle Scholar
  18. 18 KUIVILA, R. J., AND ANDERSON, D. P. Timing accuracy and response time in interactive systems. In Proceedings of the 1986 International Computer Music Conference (The Hague, 1986), pp. 327-33O.Google ScholarGoogle Scholar
  19. 19 LEBLANC, T. J., AND FRIEDBERG, S.A. HPC: A model of structure and change in distributed systems. IEEE Trans. Comput. C-34, 12 (Dec. 1985).Google ScholarGoogle Scholar
  20. 20 LEEMING, A. M.C. A comparison of some discrete event simulation languages. Simuletter 12, 1-4 (1981), 9-16. Google ScholarGoogle Scholar
  21. 21 LIU, C. L., AND LAYLAND, J.W. Scheduling algorithms for multiprogramming in a hard-realtime environment. J. ACM 20, 1 (Jan. 1973), 47-61. Google ScholarGoogle Scholar
  22. 22 LOY, G. Designing an operating environment for a realtime performance processing system. In Proceedings of the 1985 International Computer Music Conference (Burnaby, B.C., 1985), pp. 9-13.Google ScholarGoogle Scholar
  23. 23 LOY, G. Player--Extensions to the C programming language for parallel processing and music synthesis control. CARL software release, Center for Experimental Music, Univ. of California at San Diego, 1985.Google ScholarGoogle Scholar
  24. 24 LoY, G. Designing a computer music workstation from musical imperatives. In Proceedings of the 1986 International Computer Music Conference (The Hague, 1986), pp. 375-380.Google ScholarGoogle Scholar
  25. 25 LoY, G., AND ABBOTT, C. Programming languages for computer music synthesis, performance and composition. ACM Comput. Surv. 17, 2 (June 1985), 244-250. Google ScholarGoogle Scholar
  26. 26 LYCKLAMA, H., AND BAYER, D.L. The MERT operating system. Bell Syst. Tech. J. 57, 6 (July- Aug. 1978), 2049-2086.Google ScholarGoogle Scholar
  27. 27 MCCORMACK, W. M. Analysis of future event set algorithms for discrete event simulation. Commun. ACM 24, 12 (Dec. 1981). Google ScholarGoogle Scholar
  28. 28 MIDI SPECIFICATION 1.0. International MIDI Association, North Hollywood, Calif., 1983.Google ScholarGoogle Scholar
  29. 29 MOK, A. K., AND DETOUZOS, M.L. Multiprocessor scheduling in a hard real-time environment. In Proceedings of the 7th IEEE Texas Conference on Computing Systems (Houston, Tex., Oct. 1978), IEEE, 1978, pp. 1-12.Google ScholarGoogle Scholar
  30. 30 MOZART, W.A. Letters of Wolfgang Amadeus Mozart. Dover, New York, 1972, p. 41.Google ScholarGoogle Scholar
  31. 31 POPE, S. The development of an intelligent composer's assistant: interactive graphics tools and knowledge representation for music. In Proceedings of the 1986 International Computer Music Conference (The Hague, 1986), pp. 131-144.Google ScholarGoogle Scholar
  32. 32 PUCKETTE, M. Interprocess communication and timing in real-time computer music perfor* mance. In Proceedings of the 1986 International Computer Music Conference (The Hague, 1986), pp. 43-46.Google ScholarGoogle Scholar
  33. 33 RODET, X., AND COINTE, P. FORMES: Composition and scheduling of processes. Comput. Music J. 8, 3 (1984), 32-50.Google ScholarGoogle Scholar
  34. 34 ROSENBOOM, D., AND POLANSKY, L. HMSL: A real-time environment for formal, perceptual and compositional experimentation. In Proceedings of the 1985 International Computer Music conference (Burnaby, B.C., 1985), pp. 243-250.Google ScholarGoogle Scholar
  35. 35 SCHOTTSTAEDT, S. PLA reference manual. Center for Computer Research in Music and Acoustics, Stanford University, Stanford, Calif., June 1983.Google ScholarGoogle Scholar
  36. 36 SCHOTTSTAEDT, S. PLA: A composer's idea of a language. Comput. Music J. 7, 1 (1983), 11-20.Google ScholarGoogle Scholar
  37. 37 SNELL, J.M. Sensors for playing computer music with expression. In Proceedings of the 1983 International Computer Music Conference (Rochester, N.Y., 1983), pp.Google ScholarGoogle Scholar
  38. 38 VARGHESE, G., AND LAUCK, T. Hashed and hierarchical timing wheels: Data structures for the efficient implementation of a timer facility. In Proceedings of the 11th A CM Symposium on Operating System Principles {Austin, Tex., Nov. 8-11, 1987). ACM, New York, 1987, pp. 25-38. Google ScholarGoogle Scholar
  39. 39 VERCOE, B. The synthetic performer in the context of live performance. In Proceedings of the 1984 International Computer Music Conference (Paris, 1984), pp. 199-200.Google ScholarGoogle Scholar
  40. 40 WAISVISZ, M. The hands, a set of remote MIDi-controllers. In Proceedings of the 1985 international Computer Music Conference (Burnaby, B.C., 1985), pp. 313-318.Google ScholarGoogle Scholar

Index Terms

  1. A system for computer music performance

            Recommendations

            Reviews

            Rosa Michaelson

            Some composers and performers wish to use computers to generate and control sound. To this end, various systems, here called computer music performance systems (CMPSs), have been designed. The authors have developed software that will allow a Motorola 68000 machine that runs Forthmacs to control certain “musical events” prescribed by the user. Though it is difficult to imagine the music produced by a CMPS, the music events might be MIDI signals to a synthesizer, graphical displays, or sounds generated from the clock. The authors give a general definition of a CMPS and then describe their own CMPS, which has an associated language (or Forthmacs library) called FORMULA. FORMULA programming features and implementation are discussed. This paper is concerned with some of the scheduling problems associated with real-time generation of these musical events. The problems of timing certain musical activities and the algorithms for solving such problems are covered at some length. The paper is technical and is aimed at computer scientists rather than musicians. A useful discussion of existing work in the field gives pointers for associated reading. I found this paper thoughtful and well presented. An appendix with a full description of the FORMULA language would have helped the reader understand the scheduling solutions, which are shown by top-level routine calls. While the scope of this paper does not require evaluation from performers or composers, I wonder how many can program in FORMULA or are computer-literate enough to follow this paper. Despite these caveats, the problems of scheduling musical events in CMPS constitute an interesting research topic. I look forward to more work from these authors, perhaps on the human interface design.

            Access critical reviews of Computing literature here

            Become a reviewer for Computing Reviews.

            Comments

            Login options

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

            Sign in

            Full Access

            • Published in

              cover image ACM Transactions on Computer Systems
              ACM Transactions on Computer Systems  Volume 8, Issue 1
              Feb. 1990
              82 pages
              ISSN:0734-2071
              EISSN:1557-7333
              DOI:10.1145/77648
              Issue’s Table of Contents

              Copyright © 1990 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 February 1990
              Published in tocs Volume 8, Issue 1

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader