skip to main content
article
Free access

A system for computer music performance

Published: 01 February 1990 Publication History

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]
ABBOTT, C. Intervention schedules for real-time programming. IEEE Trans. Softw. Eng. SE- 10, 3 (May 1984).
[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.
[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.
[4]
ANDERSON, D. P., AND KUIVlLA, R.J. Accurately timed generation of discrete musical events. Comput. Music J. 10, 3 (1986), 48-56.
[5]
ANDERSON, D. P., AND KUIVILA, R.J. FORMULA version 3.4 reference manual. Jan. 1989.
[6]
ANDERSON, D. P., AND KUIVILA, R.J. Continuous abstractions for discrete event languages. Comput. Music J. I3, 3 (1989), 11-23.
[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.
[8]
BRADLEY, M. Forthmacs user's guide. Bradley Forthware, P.O. Box 4444, Mountain View, Calif.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[17]
KRASNER, G. Machine tongues VIII: The design of a smalltalk music system. Comput. Music J. 4, 4 (1980), 4-14.
[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.
[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).
[20]
LEEMING, A. M.C. A comparison of some discrete event simulation languages. Simuletter 12, 1-4 (1981), 9-16.
[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.
[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.
[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.
[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.
[25]
LoY, G., AND ABBOTT, C. Programming languages for computer music synthesis, performance and composition. ACM Comput. Surv. 17, 2 (June 1985), 244-250.
[26]
LYCKLAMA, H., AND BAYER, D.L. The MERT operating system. Bell Syst. Tech. J. 57, 6 (July- Aug. 1978), 2049-2086.
[27]
MCCORMACK, W. M. Analysis of future event set algorithms for discrete event simulation. Commun. ACM 24, 12 (Dec. 1981).
[28]
MIDI SPECIFICATION 1.0. International MIDI Association, North Hollywood, Calif., 1983.
[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.
[30]
MOZART, W.A. Letters of Wolfgang Amadeus Mozart. Dover, New York, 1972, p. 41.
[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.
[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.
[33]
RODET, X., AND COINTE, P. FORMES: Composition and scheduling of processes. Comput. Music J. 8, 3 (1984), 32-50.
[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.
[35]
SCHOTTSTAEDT, S. PLA reference manual. Center for Computer Research in Music and Acoustics, Stanford University, Stanford, Calif., June 1983.
[36]
SCHOTTSTAEDT, S. PLA: A composer's idea of a language. Comput. Music J. 7, 1 (1983), 11-20.
[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.
[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.
[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.
[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.

Cited By

View all

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

Information & Contributors

Information

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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 February 1990
Published in TOCS Volume 8, Issue 1

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)121
  • Downloads (Last 6 weeks)24
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media