Abstract Time Warping of Compound Events and Signals 1

Similar documents
The Implementation of Nyquist, A Sound Synthesis Language 1

Spectral modeling of musical sounds

PDF hosted at the Radboud Repository of the Radboud University Nijmegen

Software Techniques for Interactive Performance Systems 1

A Flexible Real-Time Software Synthesis System 1

Chapter X Sampler Instrument

Real-time synchronization of independently controlled phasors

A Language for Interactive Audio Applications

Live Coding Using a Visual Pattern Composition Language

Interactive Intelligent Systems Workshop: Music Constraint Programming (2) Music Representation

Software Support for Interactive Multimedia Performance 1

Contents. Overview...3. Song Editor Clip Editor Browser and Rytmik Cloud Keyboard Controls Support Information...

Sampling & Sequencing. Combining MIDI and audio

Nyquist Reference Manual

The Musicians Software Mall A Set of Composition and Performance Oriented Applications for Sound Synthesis

08 Sound. Multimedia Systems. Nature of Sound, Store Audio, Sound Editing, MIDI

THE NYQUIST COMPOSITION ENVIRONMENT: SUPPORTING TEXTUAL PROGRAMMING WITH A TASK-ORIENTED USER INTERFACE

Q170 MIDI Gates. Q170 MIDI Gates Specifications. Aug 23, 2018

OPERATION MANUAL VST / AU

SoundFont 2.1 Application Note Joint E-mu/Creative Technology Center E-mu Systems, Inc. Wednesday, August 12, 1998

Laboratory Exercise #5

Live 7 Audio Fact Sheet

David K. Mellinger; G. E. Garnett; Bernard Mont-Reynaud. Computer Music Journal, Vol. 13, No. 2. (Summer, 1989), pp

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3

FPDJ. Baltazar Ortiz, Angus MacMullen, Elena Byun

The Visual SDIF interface in PWGL

Here is the design that I created in response to the user feedback.

Supplemental Notes March 10, 1999 SN79 V1.0. The Basics of MIDI

A Real-Time Audio Scheduler for Pentium PCs

New Features in Digital Performer 5.13

MPEG-4 Structured Audio Systems

_CH17_525_10/31/06 CAL 101

Tutorial on MIDI and Music Synthesis

Discrete Event Simulation

Grooving with Cyclone DXi

ver 1.61 User Manual

MIDI Player Pro v1.3.0 basic users guide By Hans Petter Selasky, November 2015

MintySynth Software Manual v. 4.2

FRONT PANEL OVERVIEW...1 REAR PANEL OVERVIEW...3 HOOKUP DIAGRAM...4 DISPLAYING INFORMATION...6

Representing Symbolic Reasoning

A-DAFX: ADAPTIVE DIGITAL AUDIO EFFECTS. Verfaille V., Arfib D.

SmsPerformer: A Real-Time Synthesis Interface for SMS

Music Signal Spotting Retrieval by a Humming Query Using Start Frame Feature Dependent Continuous Dynamic Programming

Real-Time Software Synthesis on Superscalar Architectures 1

SAOL: THE MPEG-4 STRUCTURED AUDIO ORCHESTRA LANGUAGE

Portable Music Studio

AUDIO ANALOGIES: CREATING NEW MUSIC FROM AN EXISTING PERFORMANCE BY CONCATENATIVE SYNTHESIS

SOME TYPES AND USES OF DATA MODELS

Understanding Recursion

6.001 Notes: Section 8.1

A project is the basic file type in Cubase, in the same way that a document is the basic file type in Microsoft Word.

COS 116 The Computational Universe Laboratory 4: Digital Sound and Music

Information Retrieval for Music and Motion

The new MARS workstation

An Intelligent Musical Instrument. By David Zicarelli, Joel Chadabe, John Offenhartz, and Antony Widoff

ITNP80: Multimedia! Sound-II!

AN OBJECT-ORIENTED VISUAL SIMULATION ENVIRONMENT FOR QUEUING NETWORKS

Chapter 5: Music Synthesis Technologies

PSP Rhythm User s Manual

CLIP - A Crytographic Language with Irritating Parentheses

Basic features. Adding audio files and tracks

BRUTE VRS User Manual Version 1.0 November 2014

DER OTO. With this firmware revision, you can use your Biscuit as a standard one (Revision 1.2) or as Der OTO.

MIDILECTOR / MIDILECTOR-R

SMURF Language Reference Manual Serial MUsic Represented as Functions

Chapter 2 Overview of the Design Methodology

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

COS 116 The Computational Universe Laboratory 4: Digital Sound and Music

Design Patterns for Real-Time Computer Music Systems

BOOMS Booms Object Oriented Music System

Research on Construction of Road Network Database Based on Video Retrieval Technology

6.001 Notes: Section 6.1

Informal Semantics of Data. semantic specification names (identifiers) attributes binding declarations scope rules visibility

Introduction to the Lambda Calculus

Chapter 6 Introduction to Defining Classes

Perceptual coding. A psychoacoustic model is used to identify those signals that are influenced by both these effects.

Programs with infinite loops: from primitive recursive predicates to the arithmetic hierarchy

SECTION 1.3: BASIC GRAPHS and SYMMETRY

Flight Systems are Cyber-Physical Systems

SH-2. PLUG-OUT Software Synthesizer Owner s Manual

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Aeolian Meditation. User Manual. All that we see or seem is but a dream within a dream. - Edgar Allan Poe

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES

User Manual. for ArcTrax UWP version

About CDP R5 System Upgrades ~ (PC &/or MAC) ~

Data Communication/MIDI. Juan P Bello

Installation & User Guide

6.001 Notes: Section 15.1

Figure 1. Overview of Musink's user interface

Registration: Rigid vs. Deformable

Maize Sampler 2 Documentation

Functional Programming. Big Picture. Design of Programming Languages

The PCAT Programming Language Reference Manual

Mastertracks Pro 4 Review

ENGINEERING COMMITTEE Digital Video Subcommittee SCTE Digital Program Insertion Advertising Systems Interfaces.

Both LPC and CELP are used primarily for telephony applications and hence the compression of a speech signal.

LISP. Everything in a computer is a string of binary digits, ones and zeros, which everyone calls bits.

6.001 Notes: Section 1.1

Lisp as a second language, composing programs and music. Chapter III Object-Oriented Style I

Lisp as a Second Language Chapter 1 Functional Style

Transcription:

Abstract Time Warping of Compound Events and Signals 1 Roger B. Dannenberg Carnegie Mellon University Pittsburgh, PA 15213 USA dannenberg@cs.cmu.edu ABSTRACT: Functions of time are often used to represent continuous parameters and the passage of musical time (tempo). A new approach generalizes previous work in three ways. First, common temporal operations of stretching and shifting are special cases of a new general time-warping operation. Second, these operations are abstract. Instead of operating directly on signals or events, they operate on abstract behaviors that interpret the operations at an appropriate structural level. Third, time warping can be applied to both discrete events and continuous signals. 1. Introduction 2. Shift, Stretch, and Warp Expressive control is a central problem in the field Let us begin by defining two operators, shift(d) and of computer music. The idea of using functions of stretch(s), which operate on time points. Note that time for control is an old one. It is not surprising shift(d) is a function, so shift(d)(t) is a function that functions have also been proposed as a applied to a time point. We define these operators mapping/warping from beats (score time) to real as follows: time. Formally, this mapping is the integral of shift(d)(t) = d+t 1/tempo as a function of beat position or score stretch(s)(t) = st time. [Rogers 80] Researchers pursuing discrete structural representations for music invented shift The shift operator corresponds to musical operations and stretch operations that can be neatly of delay, rest, or pause, and the stretch operator composed. [Buxton 85, Spiegel 81, Orlarey 86] corresponds to augmentation, diminution, or tempo. Originally applied to discrete events (notes), these Starting with a score where time is indicated in operations are also a natural way to manipulate arbitrary units, shift and stretch operators can be continuous time functions such as amplitude or pitch used to construct a mapping from score time to real envelopes, and in fact these manipulations are time. For example, to perform a score at half speed implicit (though not composable) in Music N and shifted by 10 seconds, in Arctic one would [Mathews 69] languages. Still more recently, write: abstraction has entered the picture, and researchers score ~ 2 @ 10. are concerned with the details of, for example, In Nyquist, one would write: whether a stretched vibrato slows down or not. [Rodet 83, Dannenberg 86, Desain 92] In languages (at 10 (stretch 2 (score))). like Nyquist [Dannenberg 92], where signals are Similar operations are available in many other generated, this issue is especially important. Without notations. abstraction, a tempo change would affect the rate of The meaning (semantics) of nested operators can be audio oscillators and cause a pitch change! How can expressed mathematically using function we avoid stretched attacks, unsteady vibrato, and composition: erratic drum rolls under the influence of time warps? (shift(10) stretch(2))(t) Previous work (such as [Jaffe 85]) does not address = shift(10)(stretch(2)(t)) abstraction issues that arise with time warping. = shift(10)(2t) Conversely, previous work that addresses = 10 + 2t abstraction issues does not support time warping. The shift and stretch operators are just special This new work provides a more general solution in cases of what Jaffe terms time maps [Jaffe 85], which time warping and other time functions can be Anderson and Kuivila term time applied to abstract behaviors. deformations [Anderson 86], and I will call time 1 Published as: Dannenberg, Abstract Time Warping of Compound Events and Signals, in Proceedings of the 1994 International Computer Music Conference, International Computer Music Association, (September 1994), pp. 251-254.

warps [Dannenberg 89]. Time warps can be knows how to transform the result of a behavior. arbitrarily nested, and the effect of nested warp Instead, it is the responsibility of the behavior itself functions is that of function composition. to perform the transformation. We call this idea behavioral abstraction. This is abstraction in the 3. Continuous Functions sense that the behavior packages or hides details If the time warp is to be applied to discrete events about how transformations are achieved. Secondly, such as note-on or note-off, the score time of the our behaviors are abstractions in that they represent event is passed through the warp function to yield an infinite class of actual behaviors that vary the real-time of the event. On the other hand, it is according to pitch, time, duration, loudness, and so also important to support continuous time functions on. such as pitch bend, amplitude, articulation, and other How can a programming language support continuous parameters. Normally, these functions behavioral abstraction? In Nyquist, sounds are are expressed in terms of score time. created and manipulated by combining built-in To warp a function of score time, g, by a warp signal-processing primitives (essentially unit function, f, we compose g with the inverse of f to generators). The Lisp function definition facility is obtain a function of real time: g(f 1(t)). used to create new behaviors implementing notes, (Remember that time warp f maps score time to real phrases and entire compositions. An abstract time, so its inverse f 1 maps real time to score time, behavior is simply a Lisp function that computes and and g is a function of score time. Therefore, we returns a sound. An instance of a behavior is apply f 1 to real time t to get score time, then obtained by evaluating (applying) the function. evaluate g at that point, yielding the value of g at a To support transformation, we need a way to given real time.) communicate transformation parameters to To summarize the results so far, we have seen that behaviors. One possibility is to pass every the shift and stretch operators seen in many transformation parameter as a function parameter to music representations and languages are a special every behavior. This would result in very long case of general time-warping functions. The parameter lists and a very clumsy notation system. literature tells us that time-warping functions can be Instead, transformation parameters are contained in nested using function composition, so this gives us a an environment that is implicitly passed to every general way to handle nested shift and stretch behavior. Environments are dynamically scoped, in conjunction with other warp operators. meaning that a nested function (the callee) inherits Finally, we see that continuous functions can be the environment from its (calling) parent. Special warped using function composition and function forms are used to modify the environment, for inverse. example, in (transpose 2 (seq (a) (b) (c))), 4. Abstraction Issues the environment passed to seq will have its Once time warps are introduced, however, we must transposition attribute incremented by 2. Also, the revisit the vibrato problem [Desain 92]: what is seq operator modifies the time map seen by b so the interpretation of warped vibrato? Should the that b is shifted to the stop time of a, and so on. vibrato rate fluctuate when time is warped? It is important to note that transformations like Previous work has generally ignored this problem. transposition and time warps modify the One solution would be to build in methods for environment before evaluating the enclosed Lisp handling warps, so that vibrato would get one functions which implement behaviors. It is critical treatment, envelopes would get another, and so on. that transformations operate in this manner. This This is convenient if and when the default behavior gives behavioral abstractions a chance to determine matches the composer s intentions, but it is usually how transformations will be implemented. For better to allow the composer to retain complete example, a fixed-length attack followed by a control over how warping is applied. stretchable decay could be implemented as follows: Our solution is to extend the mechanisms introduced (defun env () in Arctic [Dannenberg 86] and available in the (seq (stretch-abs 1.0 (attack)) author s current language project Nyquist. These (decay))) mechanisms are quite general and can be used in The stretch-abs transformation replaces the many representation and language systems. stretch factor in the environment with 1.0 so that In Nyquist, it is not a transformation operation that attack is not stretched. The decay sub-behavior 2

inherits the environment from env and stretches example: accordingly. The environment is dynamically (warp (f) (loud (contour) scoped. The reader is referred to [Dannenberg (behavior))). 89] for more examples. Roughly, this expression says: compute behavior Most other systems have avoided the behavioral with a time-varying loudness given by contour, abstraction issue by restricting the results of with everything warped according to f. In keeping functions to note lists and by restricting with the behavioral abstraction concept, transformations to operations on note attributes. (contour) is computed within the environment Desain and Honing [Desain 92] solve the problem warped by f. The environment, modified by this by returning functions of multiple parameters. As in warped loudness contour, is then used for the Nyquist, transformations modify parameters rather evaluation of (behavior). than the actual behaviors, and the how to Within behavior, it may be necessary to access transform knowledge is encapsulated in Lisp current values of transformation functions such as functions rather than transformation operators. produced by (contour). This function will be bound to the special variable *loud*, but *loud* 5. Time Warping and Continuous is a function of post-warp real time, whereas Transformations behavior will generally be written in terms of If the environment provides a time-warping function pre-warp score time. Let f be the time warp f, any discrete time point t affected by f can be function and g be some transformation function. To mapped to real time simply by computing f(t). For get the current value of g, we map the logical example, the Nyquist pwl function computes a now (0) into real time and then evaluate g at that piece-wise linear function from a list of breakpoints. point: g(f(0)). In Nyquist, this is written: When pwl is warped, the default is to map each (sref *loud* (sref *warp* 0)) breakpoint into real time. or simply (get-loud), The Nyquist sine function generates a sinusoid at a where sref evaluates a time function at a particular given pitch and duration. Warping a sinusoidal time. Finally, we note that an integration operator is signal would distort the frequency, so in Nyquist the useful for converting tempo function to a warp start time and end time of the sine behavior are function. Figure 1 illustrates a variety of ways a warped, keeping a constant frequency in real time. behavior can respond to time warping. To compute sine, a start time and end time are required, and these are given by f(0) and f(d), where 6. Summary and Conclusions f is the time warp function and d is the specified We have considered several aspects of Nyquist and (unwarped) duration of the sine. their interaction. We discussed the idea of If we really want the effect of warping the sine (as behavioral abstraction, whereby a single abstract in g(f 1(t)) = (g f )(t) ), we could write the behavior can be instantiated in different contexts to expression: instantiate any number of concrete, or actual behaviors. An important principle is that (s-compose (warp-abs nil (sine p)) transformations on behaviors, such as stretching (s-inverse *warp*)). and shifting, are interpreted in an abstract way. The details of how to stretch are encapsulated within Here, s-compose denotes function composition, the abstraction. Time mapping or warping functions s-inverse denotes function inverse, and *warp* were presented along with a semantics that are is a special variable reflecting the time-warp consistent with abstraction principles. We showed function in the environment. (Note: function how shift and stretch operators are just special cases here means function of time in the form of a Nyquist of general time warping. Finally, we showed that Sound data type. Do not confuse this with Lisp continuous control parameters can be integrated with functions.) The (warp-abs nil...) behavioral abstraction and time mapping. construct removes the time-warp function from the Transformation functions are ordinary signals in environment seen by sine so that the sinusoid is Nyquist, so the full range of signal processing and only warped once. One could even use this behavioral abstraction facilities can be applied to mechanism for FM synthesis, although the built-in transformation functions. Nyquist FM oscillators are more efficient. An efficient implementation is possible in Nyquist Time-warp transformations can be composed with because s-compose, s-inverse and other continuous transformations. Consider this 3

A time warp function. A wiggle : 4 oscillations, not warped. s-integrate all have fast, incremental implementations. Furthermore, time-maps and continuous transformations can be computed at low sample rates. Implementation details are the subject of a forthcoming paper, and the full Nyquist implementation itself is available from the author. New compositional techniques are facilitated by the unification of audio signals, control signals, time warping, and transformations. For example, tempo changes can be smoothed with low-pass filters, the rate of a drum roll can track a pitch contour analyzed from speech input, and doppler shift and phasing effects can be achieved using arbitrary, even audiorate synthesized control functions. The encapsulation of behavioral details offers the composer a powerful new tool for expressive control. We look forward to the exploration of these possibilities. An unwarped compound behavior: 4 wiggles in sequence, with varying amplitudes. The compound behavior warped. References [Anderson 86] Anderson, D. P. and R. Kuivila. Accurately Timed Generation of Discrete Musical Events. Computer Music Journal 10(3):48-56, Fall, 1986. [Buxton 85] Buxton, W., W. Reeves, R. Baecker, and L. Mezei. The Use of Hierarchy and Instance in a Data Structure for Computer Music. Foundations of Computer Music. In C. Roads and J. Strawn, MIT Press, 1985, pages 443-466. [Dannenberg 86] Dannenberg, R. B., P. McAvinney, and D. Rubine. Arctic: A Functional Language for Real- Time Systems. Computer Music Journal 10(4):67-78, Winter, 1986. [Dannenberg 89] Dannenberg, R. B. The Canon Score Language. Computer Music Journal 13(1):47-56, Spring, 1989. [Dannenberg 92] Dannenberg, R. B. Real-Time Software Synthesis on Superscalar Architectures. In Proceedings Only start and end points are warped; oscillation of the 1992 ICMC, pages 174-177. International frequency is fixed. Computer Music Association, San Francisco, 1992. [Desain 92] Desain, P. and H. Honing. Time Functions Function Best as Functions of Multiple Times. Computer Music Journal 16(2):17-34, Summer, 1992. [Jaffe 85] Jaffe, David. Ensemble Timing in Computer Music. Computer Music Journal 9(4):38-48, 1985. [Mathews 69] Mathews, M. V. The Technology of Start and end points are warped, wiggles are linearly Computer Music. MIT Press, Boston, 1969. stretched to fit. [Orlarey 86] Orlarey, Y. MLOGO: A MIDI Composing Environment. In P. Berg (editor), Proceedings of the International Computer Music Conference 1986, pages 211-213. International Computer Music Association, 1986. [Rodet 83] Rodet, Xavier, Pierre Cointe, Jean-Baptiste Barriere, Yves Potard, B. Serpette, and J. J. Briot. Applications and Developments of the FORMES Amplitude inversely proportional to tempo. programming environment. In Proceedings of the 1983 Figure 1: Time warp variations. International Computer Music Conference. International Computer Music Association, 1983. 4

[Rogers 80] Rogers, J., J. Rockstroh, and P. Batstone. Music-Time and Clock-Time Similarities Under Tempo Changes. In Proceedings of the 1980 International Computer Music Conference, pages 404-442. International Computer Music Association, 1980. [Spiegel 81] Spiegel, L. Manipulations of Musical Patterns. In Proceedings of the Symposium on Small Computers in the Arts, pages 19-22. IEEE Computer Society, 1981. 5