Intervention schedules for real-time programming
IEEE Transactions on Software Engineering
Programming languages for computer music synthesis, performance, and composition
ACM Computing Surveys (CSUR)
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
Journal of the ACM (JACM)
The structuring of systems using upcalls
Proceedings of the tenth ACM symposium on Operating systems principles
Analysis of future event set algorithms for discrete event simulation
Communications of the ACM
Arctic: A functional language for real-time control
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
A comparison of some discrete event simulation languages
ACM SIGSIM Simulation Digest - Why an editor returns: we're back!
Formula: A Programming Language for Expressive Computer Music
Computer - Special issue: Computer-generated music
Proceedings of the third ACM international conference on Multimedia
IEEE MultiMedia
From Time to Time: The Representation of Timing and Tempo
Computer Music Journal
Hi-index | 0.00 |
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.