Abstract
This paper describes the temporal model of a scheduler geared towards show control and live music applications. This model relies on multiple inter-related temporal axes, called timescales. Timescales allow scheduling computations using abstract dates and delays, much like a score uses symbolic positions and durations (e.g. bars, beats, and note values) to describe musical time. Abstract time is ultimately mapped onto wall-clock time through the use of time transformations, specified as tempo curves, for which we provide a formalism in terms of differential equations on symbolic position. In particular, our model allows specifying tempo both as a function of time or as a function of symbolic position, and allows piecewise tempo curves to be built from parametric curves.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
We deliberately avoid the term beats here. We think it would bring some confusion by conflating the notion of time unit with the notion of meter, and by suggesting that all beats are of equal conceptual length. This is, in fact, rather a Western exception than a universal norm.
- 9.
One difference, however, is that we use the word tempo here to refer to the ratio of internal symbolic time units over source symbolic time units, rather than the number of beats per minutes, since the latter could depend on the musical meter of the timescale.
- 10.
- 11.
Textbooks usually choose the letter \(t\) to denote the parameter of parametric curves. We instead choose the letter \(s\) to disambiguate it from time.
- 12.
Note that here we can find an equation in \(s\). This is beneficial as it allows our numerical solver to find the parameter \(s\) once, and then evaluate the Bézier curve and its derivatives using only polynomials in \(s\). The same change of variable is done in Eq. 13. It is unfortunately useless with Eq. 10 and Eq. 14, since \(s\) can’t be computed directly from the independant variable.
- 13.
The word context here is left intentionally broad. It could encompass the threading model, the data lifetime, the nature of the execution environment (e.g. native code scheduling interpreted code and vice versa), or even the machine on which the code is executed.
- 14.
- 15.
The notions of fiber, coroutine, or green thread are very closely related, and the distinction between them, if any, is amenable to debate. One could argue that green thread is more appropriate in the context of a virtual machine or runtime environment, while coroutine originates from programming language design. The term fiber may capture a more general view of the concept, but more importantly it happens to be shorter to type.
- 16.
Although the use of shared or ‘smart’ pointers bears its share of problems and, in our opinion, usually warrants a reassessment of the architecture, handles to long-lived, reference-counted objects living behind an API boundary are usually fine: in this scenario, there can be no cycles across the boundary, objects memory can’t be directly accessed by user code, and performance problems can be alleviated by the use of centralized memory management.
References
Ableton: Ableton Live. https://www.ableton.com/en/live/what-is-live/
Anderson, D.P., Kuivila, R.: A system for computer music performance. ACM Trans. Comput. Syst. 8(1), 56–82 (1990). https://doi.org/10.1145/77648.77652
Berndt, A.: Musical tempo curves. In: ICMC (2011)
Bouche, D., Bresson, J.: Planning and scheduling actions in a computer-aided music composition system. In: Foundation, I.S. (ed.) Scheduling and Planning Applications Workshop (SPARK), pp. 1–6. Proceedings of the 9th International Scheduling and Planning Applications Workshop, Steve Chien and Mark Giuliano and Riccardo Rasconi, Jerusalem, Israel (2015). https://hal.archives-ouvertes.fr/hal-01163284
Butcher, J.C.: The Numerical Analysis of Ordinary Differential Equations: Runge-Kutta and General Linear Methods. Wiley, USA (1987)
Cash, J.R., Karp, A.H.: A variable order Runge-Kutta method for initial value problems with rapidly varying right-hand sides. ACM Trans. Math. Softw. 16(3), 201–222 (1990). https://doi.org/10.1145/79505.79507
Celerier, J.M., Baltazar, P., Bossut, C., Vuaille, N., Couturier, J.M., Desainte-Catherine, M.: OSSIA: towards a unified interface for scoring time and interaction. In: First International Conference on Technologies for Music Notation and Representation (TENOR 2015). Paris, France (2015). https://hal.archives-ouvertes.fr/hal-01245957
Coduys, T., Ferry, G.: Iannix. Aesthetical/symbolic visualisations for hypermedia composition. In: Sound and Music Computing Conference (SMC) (2004)
Cont, A.: ANTESCOFO: anticipatory synchronization and control of interactive parameters in computer music. In: International Computer Music Conference (ICMC), pp. 33–40. Belfast, Ireland (2008). https://hal.inria.fr/hal-00694803
Desain, P., Honing, H.: Tempo curves considered harmful. Contemp. Music. Rev. 7(2), 123–138 (1993). https://doi.org/10.1080/07494469300640081
Fouilleul, M., Giavitto, J.L., Bresson, J.: A poly-temporal programming environment for live shows and interactive installations. Zenodo (2022). https://doi.org/10.5281/zenodo.6798287
Fritsch, F.N., Carlson, R.E.: Monotone piecewise cubic interpolation. SIAM J. Math. Anal. 17(2), 238–246 (1980). https://doi.org/10.1137/0717021
Goltz, F.: Ableton link – a technology to synchronize music software. In: Proceedings of the Linux Audio Conference (LAC 2018), p. 4 (2018)
Halbwachs, N.: Synchronous Programming of Reactive Systems. Kluwer Academic Publishers (1993). https://doi.org/10.1007/978-1-4757-2231-4
Honing, H.: From time to time: the representation of timing and tempo. Comput. Music. J. 25(3), 50–61 (2001). https://doi.org/10.1162/014892601753189538
Jaffe, D.: Ensemble timing in computer music. Comput. Music. J. 9(4), 38–48 (1985)
MacCallum, J., Schmeder, A.: Timewarp: a graphical tool for the control of polyphonic smoothly varying tempos. In: International Computer Music Conference (ICMC 2010), p. 4 (2010)
Mazzola, G., Zahorka, O.: Tempo curves revisited: hierarchies of performance fields. Comput. Music. J. 18(1), 40 (1994). https://doi.org/10.2307/3680521
Press, W.H., Teukolsky, S.A., Vetterling, W.T., Flannery, B.P.: Integration of ordinary differential equations. In: Numerical Recipes in C. The Art of Scientific Computing, 2nd edn., pp. 710–722. Cambridge University Press, USA (1992)
Roberts, C., Wakefield, G., Wright, M.: 2013: the web browser as synthesizer and interface. In: Jensenius, A.R., Lyons, M.J. (eds.) A NIME Reader. CRSM, vol. 3, pp. 433–450. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-47214-0_28
Schnell, N., Saiz, V., Barkati, K., Goldszmidt, S.: Of time engines and masters an API for scheduling and synchronizing the generation and playback of event sequences and media streams for the web audio API. In: WAC. Paris, France (2015). https://hal.archives-ouvertes.fr/hal-01256952
Von Hanxleden, R., Bourke, T., Girault, A.: Real-time ticks for synchronous programming. In: 2017 Forum on Specification and Design Languages (FDL), pp. 1–8. IEEE, Verona (2017). https://doi.org/10.1109/FDL.2017.8303893
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 Springer Nature Switzerland AG
About this paper
Cite this paper
Fouilleul, M., Bresson, J., Giavitto, JL. (2023). A Polytemporal Model for Musical Scheduling. In: Aramaki, M., Hirata, K., Kitahara, T., Kronland-Martinet, R., Ystad, S. (eds) Music in the AI Era. CMMR 2021. Lecture Notes in Computer Science, vol 13770 . Springer, Cham. https://doi.org/10.1007/978-3-031-35382-6_12
Download citation
DOI: https://doi.org/10.1007/978-3-031-35382-6_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-35381-9
Online ISBN: 978-3-031-35382-6
eBook Packages: Computer ScienceComputer Science (R0)