MUSIC-N
Encyclopedia
MUSIC-N refers to a family of computer music
programs and programming languages descended from or influenced by MUSIC, a program written by Max Mathews
in 1957 at Bell Labs
. MUSIC was the first computer program for generating digital audio waveforms through direct synthesis. It was one of the first programs for making music
(in actuality, sound
) on a digital computer
, and was certainly the first program to gain wide acceptance in the music research community as viable for that task. The world's first computer-controlled music was generated in Australia by programmer Geoff Hill on the CSIRAC
computer which was designed and built by Trevor Pearcey and Maston Beard. However, CSIRAC did not produce digital audio
, like the MUSIC-series of programs.
MUSIC had a number of descendants, e.g.:
Less obviously, MUSIC can be seen as the parent program for:
All MUSIC-N derivative programs have a (more-or-less) common design, made up of a library
of functions built around simple signal-processing and synthesis routines (written as opcode
s or unit generator
s). These simple opcodes are then constructed by the user into an instrument (usually through a text-based instruction file, but increasingly through a graphical interface
) that defines a sound
which is then "played" by a second file (called the score) which specifies notes, durations, pitches, amplitudes, and other parameter
s relevant to the music
al informatics
of the piece. Some variants of the language merge the instrument and score, though most still distinguish between control-level functions (which operate on the music
) and functions that run at the sampling rate
of the audio being generated (which operate on the sound). A notable exception is ChucK
, which unifies audio-rate and control-rate timing into a single framework, allowing arbitrarily fine time granularity and also one mechanism to manage both. This has the advantage of more flexible and readable code as well as drawbacks of reduced system performance.
MUSIC-N and derived software are mostly available as complete self-contained programs, which can have different types of user-interfaces, from text- to GUI-based ones. In this aspect, Csound
and RTcmix
have since evolved to work effectively as software libraries which can be accessed through a variety of frontends and programming languages, such as C
, C++
, Java
, Python
, Tcl
, Lua, Lisp,
Scheme, etc., as well as other music systems such as Pure Data
, Max/MSP and plugin frameworks LADSPA
and VST
.
A number of highly original (and to this day largely unchallenged) assumptions are implemented in MUSIC and its descendants about the best way to create sound on a computer. Many of Mathew's implementations (such as using pre-calculated arrays for waveform
and envelope storage, the use of a scheduler
that runs in musical time
rather than at audio rate) are the norm for most hardware and software synthesis and audio DSP
systems today.
Computer music
Computer music is a term that was originally used within academia to describe a field of study relating to the applications of computing technology in music composition; particularly that stemming from the Western art music tradition...
programs and programming languages descended from or influenced by MUSIC, a program written by Max Mathews
Max Mathews
Max Vernon Mathews was a pioneer in the world of computer music.-Biography:...
in 1957 at Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
. MUSIC was the first computer program for generating digital audio waveforms through direct synthesis. It was one of the first programs for making music
Music
Music is an art form whose medium is sound and silence. Its common elements are pitch , rhythm , dynamics, and the sonic qualities of timbre and texture...
(in actuality, sound
Sound
Sound is a mechanical wave that is an oscillation of pressure transmitted through a solid, liquid, or gas, composed of frequencies within the range of hearing and of a level sufficiently strong to be heard, or the sensation stimulated in organs of hearing by such vibrations.-Propagation of...
) on a digital computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
, and was certainly the first program to gain wide acceptance in the music research community as viable for that task. The world's first computer-controlled music was generated in Australia by programmer Geoff Hill on the CSIRAC
CSIRAC
CSIRAC , originally known as CSIR Mk 1, was Australia's first digital computer, and the fourth stored program computer in the world. It was first to play digital music and is one of only a few surviving first-generation computers .The CSIRAC was constructed by a team led by Trevor Pearcey and...
computer which was designed and built by Trevor Pearcey and Maston Beard. However, CSIRAC did not produce digital audio
Digital audio
Digital audio is sound reproduction using pulse-code modulation and digital signals. Digital audio systems include analog-to-digital conversion , digital-to-analog conversion , digital storage, processing and transmission components...
, like the MUSIC-series of programs.
MUSIC had a number of descendants, e.g.:
- MUSIC II, MUSIC III, MUSIC IV (all developed at Bell Labs)
- MUSIC IV-B (developed at Princeton UniversityPrinceton UniversityPrinceton University is a private research university located in Princeton, New Jersey, United States. The school is one of the eight universities of the Ivy League, and is one of the nine Colonial Colleges founded before the American Revolution....
to run on an IBMIBMInternational Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
mainframe) - MUSIC IV-BFMusic4MUSIC4 was a computer music synthesis software package written by Max Mathews. The program was an expansion of earlier packages written by Mathews to produce music by direct digital computation, which could be heard by converting samples to audible sound using a digital-to-analog converter...
(re-written in FORTRANFortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
, therefore portablePortingIn computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...
) - MUSIC V (the last of the Bell Labs line)
- MUSIC V was considerably augmented at IRCAMIRCAMIRCAM is a European institute for science about music and sound and avant garde electro-acoustical art music. It is situated next to, and is organizationally linked with, the Centre Pompidou in Paris...
in ParisParisParis is the capital and largest city in France, situated on the river Seine, in northern France, at the heart of the Île-de-France region...
by John Gardner and Jean-Louis Richer to enable it to process digitized sounds as well as to synthesize sounds
- MUSIC V was considerably augmented at IRCAM
- MUSIC 360 and MUSIC 11(written by Barry VercoeBarry VercoeBarry Vercoe is a New Zealand-born computer scientist and composer. He completed his undergraduate degree in New Zealand in Music and Mathematics and went on to complete a Ph.D. at the University of Michigan, USA, in Music Composition. In 1968, Vercoe's research in Digital Audio Processing paved...
at MIT, descended from MUSIC IV-BF) - CsoundCsoundCsound is a computer programming language for dealing with sound, also known as a sound compiler or an audio programming language, or more precisely, a C-based audio DSL. It is called Csound because it is written in C, as opposed to some of its predecessors...
(descended from MUSIC 11 and in wide use today) - CMix / Real-time CmixReal-time CmixReal-Time Cmix is one of the MUSIC-N family of computer music programming languages. RTcmix is descended from the MIX program developed by Paul Lansky at Princeton University in 1978 to perform algorithmic composition using digital audio soundfiles on a VMS mainframe computer. After synthesis...
(by Paul LanskyPaul LanskyPaul Lansky is an American electronic-music or computer-music composer who has been producing works from the 1970s up to the present day .-Biography:...
, Brad GartonBrad GartonBrad Garton is an American composer and computer musician who is professor of music at Columbia University.He has written, or helped to write, a number of computer music applications, including Real-Time Cmix, music synthesis and signal processing language for real time composition. He received...
, and others) - CMusicCMusiccmusic is an audio compilation language which was created by F. Richard Moore. A full explanation of CMusic can be found in the book Elements of Computer Music, by F. Richard Moore , ISBN 0-13-252552-6....
(by F. Richard Moore) - Structured Audio Orchestra LanguageStructured Audio Orchestra LanguageStructured Audio Orchestra Language is an imperative, MUSIC-N programming language designed for describing virtual instruments, processing digital audio, and applying sound effects...
(SAOL), which is part of the MPEG-4MPEG-4MPEG-4 is a method of defining compression of audio and visual digital data. It was introduced in late 1998 and designated a standard for a group of audio and video coding formats and related technology agreed upon by the ISO/IEC Moving Picture Experts Group under the formal standard ISO/IEC...
audio standard, by Eric Scheirer
Less obviously, MUSIC can be seen as the parent program for:
- Max/MSPMax (software)Max is a visual programming language for music and multimedia developed and maintained by San Francisco-based software company Cycling '74. During its 20-year history, it has been widely used by composers, performers, software designers, researchers, and artists for creating innovative recordings,...
- Pure DataPure DataPure Data is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. While Puckette is the main author of the program, Pd is an open source project with a large developer base working on new extensions to it. It is...
- AudioMulchAudioMulchAudioMulch is modular audio software for making music and processing sound. The software can synthesize sound and process live and pre-recorded sound in real-time....
- SuperColliderSupercolliderA Supercollider is a high energy particle accelerator. The term may refer to:* Superconducting Super Collider, planned 80 km project in Texas, canceled in 1993...
- JSynJSynJSyn is a free API for developing interactive sound applications in Java. Developed by Phil Burk and others, it is distributed through Burk's company, SoftSynth...
- Common Lisp MusicCommon Lisp MusicCLM is a music synthesis and signal processing package in the Music V family created by Bill Schottstaedt. It runs in a number of various Lisp implementations or as a part of the Snd audio editor . There is also a realtime implementation, Snd-rt which is developed by Kjetil S...
- ChucKChucKChucK is a concurrent, strongly timed audio programming language for real-time synthesis, composition, and performance, which runs on Mac OS X, Linux, Microsoft Windows, and iPhone/iPad. It is designed to favor readability and flexibility for the programmer over other considerations such...
- Any other computer synthesis language that relies on a modularModularity (programming)Modular programming is a software design technique that increases the extent to which software is composed of separate, interchangeable components called modules by breaking down program functions into modules, each of which accomplishes one function and contains everything necessary to accomplish...
system (e.g. ReaktorReaktorReaktor is a graphical modular software music studio of proprietary license developed by Native Instruments. It lets musicians and sound specialists design and build their own instruments, samplers, effects and sound design tools. It is supplied with many ready-to-use instruments and effects, from...
).
All MUSIC-N derivative programs have a (more-or-less) common design, made up of a library
Library
In a traditional sense, a library is a large collection of books, and can refer to the place in which the collection is housed. Today, the term can refer to any collection, including digital sources, resources, and services...
of functions built around simple signal-processing and synthesis routines (written as opcode
Opcode
In computer science engineering, an opcode is the portion of a machine language instruction that specifies the operation to be performed. Their specification and format are laid out in the instruction set architecture of the processor in question...
s or unit generator
Unit generator
Unit generators are the basic formal units in many MUSIC-N-style computer music programming languages. They are sometimes called opcodes , though this expression is not accurate in that these are not machine-level instructions.Unit generators form the building blocks for designing synthesis and...
s). These simple opcodes are then constructed by the user into an instrument (usually through a text-based instruction file, but increasingly through a graphical interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
) that defines a sound
Sound
Sound is a mechanical wave that is an oscillation of pressure transmitted through a solid, liquid, or gas, composed of frequencies within the range of hearing and of a level sufficiently strong to be heard, or the sensation stimulated in organs of hearing by such vibrations.-Propagation of...
which is then "played" by a second file (called the score) which specifies notes, durations, pitches, amplitudes, and other parameter
Parameter
Parameter from Ancient Greek παρά also “para” meaning “beside, subsidiary” and μέτρον also “metron” meaning “measure”, can be interpreted in mathematics, logic, linguistics, environmental science and other disciplines....
s relevant to the music
Music
Music is an art form whose medium is sound and silence. Its common elements are pitch , rhythm , dynamics, and the sonic qualities of timbre and texture...
al informatics
Music informatics
Music Informatics is emerging interdisciplinary research areas dealing with the production, distribution, and consumption of music through technology ....
of the piece. Some variants of the language merge the instrument and score, though most still distinguish between control-level functions (which operate on the music
Music
Music is an art form whose medium is sound and silence. Its common elements are pitch , rhythm , dynamics, and the sonic qualities of timbre and texture...
) and functions that run at the sampling rate
Sampling rate
The sampling rate, sample rate, or sampling frequency defines the number of samples per unit of time taken from a continuous signal to make a discrete signal. For time-domain signals, the unit for sampling rate is hertz , sometimes noted as Sa/s...
of the audio being generated (which operate on the sound). A notable exception is ChucK
ChucK
ChucK is a concurrent, strongly timed audio programming language for real-time synthesis, composition, and performance, which runs on Mac OS X, Linux, Microsoft Windows, and iPhone/iPad. It is designed to favor readability and flexibility for the programmer over other considerations such...
, which unifies audio-rate and control-rate timing into a single framework, allowing arbitrarily fine time granularity and also one mechanism to manage both. This has the advantage of more flexible and readable code as well as drawbacks of reduced system performance.
MUSIC-N and derived software are mostly available as complete self-contained programs, which can have different types of user-interfaces, from text- to GUI-based ones. In this aspect, Csound
Csound
Csound is a computer programming language for dealing with sound, also known as a sound compiler or an audio programming language, or more precisely, a C-based audio DSL. It is called Csound because it is written in C, as opposed to some of its predecessors...
and RTcmix
Real-time Cmix
Real-Time Cmix is one of the MUSIC-N family of computer music programming languages. RTcmix is descended from the MIX program developed by Paul Lansky at Princeton University in 1978 to perform algorithmic composition using digital audio soundfiles on a VMS mainframe computer. After synthesis...
have since evolved to work effectively as software libraries which can be accessed through a variety of frontends and programming languages, such as C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, Tcl
Tcl
Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...
, Lua, Lisp,
Scheme, etc., as well as other music systems such as Pure Data
Pure Data
Pure Data is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. While Puckette is the main author of the program, Pd is an open source project with a large developer base working on new extensions to it. It is...
, Max/MSP and plugin frameworks LADSPA
LADSPA
LADSPA is an acronym for Linux Audio Developers Simple Plugin API. It is a standard for handling filters and effects, licensed under the GNU LGPL. It was originally designed for Linux through consensus on the Linux Audio Developers Mailing List, but works on a variety of other platforms...
and VST
Virtual Studio Technology
Steinberg's Virtual Studio Technology is an interface for integrating software audio synthesizer and effect plugins with audio editors and hard-disk recording systems. VST and similar technologies use digital signal processing to simulate traditional recording studio hardware with software...
.
A number of highly original (and to this day largely unchallenged) assumptions are implemented in MUSIC and its descendants about the best way to create sound on a computer. Many of Mathew's implementations (such as using pre-calculated arrays for waveform
Waveform
Waveform means the shape and form of a signal such as a wave moving in a physical medium or an abstract representation.In many cases the medium in which the wave is being propagated does not permit a direct visual image of the form. In these cases, the term 'waveform' refers to the shape of a graph...
and envelope storage, the use of a scheduler
Scheduling (computing)
In computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...
that runs in musical time
Time
Time is a part of the measuring system used to sequence events, to compare the durations of events and the intervals between them, and to quantify rates of change such as the motions of objects....
rather than at audio rate) are the norm for most hardware and software synthesis and audio DSP
Digital signal processing
Digital signal processing is concerned with the representation of discrete time signals by a sequence of numbers or symbols and the processing of these signals. Digital signal processing and analog signal processing are subfields of signal processing...
systems today.