reduced pages

This commit is contained in:
2025-01-28 10:49:27 +00:00
parent d0d3f63e42
commit 2aa6fde9d6
5 changed files with 264 additions and 334 deletions

View File

@@ -50,8 +50,7 @@ As Lyon observed nearly two decades ago, it is now nearly impossible to
imagine a situation in which computers are not involved at any stage
from production to experience of music\citep[p1]{lyon_we_2006}. The
necessity of using the term ``Computer Music'' to describe academic
contexts, particularly those centered around the ICMC, has consequently
diminished.
contexts has consequently diminished.
Holbrook and Rudi continued Lyon's discussion by proposing the use of
frameworks like Post-Acousmatic\citep{adkins2016} to redefine ``Computer
@@ -70,14 +69,9 @@ musical expressions, it simultaneously marginalizes much of the music
that is ``just using computers'' and fails to provide insights into this
divided landscape.
Lyon argues that defining computer music simply as music created with
computers is too permissive, while defining it as music that could not
exist without computers is too strict. He highlights the difficulty of
considering instruments that use digital simulations, such as virtual
analog synthesizers, within these definitions. Furthermore, he suggests
that the term ``computer music'' is style-agnostic definition almost
like ``piano music,'' implying that it ignores the style and form inside
music produced by the instruments.
Lyon argues that the term ``computer music'' is style-agnostic
definition almost like ``piano music,'' implying that it ignores the
style and form inside music produced by the instruments.
However, one of the defining characteristics of computers as a medium
lies in their ability to treat musical styles themselves as subjects of
@@ -88,17 +82,10 @@ particular musical culture. This recursive embedding of the language and
perception constituting that musical culture into the resulting music is
a process that goes beyond what is possible with acoustic instruments or
analog electronic instruments. Magnusson refers to this characteristic
of digital instruments as ``Epistemic Tools'' and points out that they
tend to work in the direction of reinforcing and solidifying musical
culture:
\begin{quote}
The act of formalising is therefore always an act of fossilisation. As
opposed to the acoustic instrument maker, the designer of the composed
digital instrument frames affordances through symbolic design, thereby
creating a snapshot of musical theory, freezing musical culture in time.
\citep[p173]{Magnusson2009}
\end{quote}
of digital instruments as ``Epistemic Tools'' and points out that the
computer works as ``creating a snapshot of musical theory, freezing
musical culture in time''\citep[p173]{Magnusson2009} through
formalization.
Today, many people use computers for music production not because they
consciously leverage the uniqueness of the meta-medium, but simply
@@ -116,23 +103,15 @@ reexamined with an approach that, opposite from Lyon, takes an extremely
style-agnostic perspective. Rather than focusing on what has been
created with these tools, the emphasis is placed on how these tools
themselves have been constructed. The paper centers on the following two
topics:
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
A critique of the universality of sound representation using
pulse-code modulation (PCM), the foundational concept underlying most
of today's sound programming, by referencing early attempts of sound
generation using electronic computers.
\item
An examination of the MUSIC-N family, the origin of PCM-based sound
synthesis, to highlight that its design varies significantly across
systems from the perspective of modern programming language design and
that it has evolved over time into a black box, eliminating the need
for users to understand its internal workings.
\end{enumerate}
topics: 1. A critique of the universality of sound representation using
pulse-code modulation (PCM), the foundational concept underlying most of
today's sound programming, by referencing early attempts of sound
generation using electronic computers. 2. An examination of the MUSIC-N
family, the origin of PCM-based sound programming, to highlight that its
design varies significantly across systems from the perspective of
today's programming language design and that it has evolved over time
into a black box, eliminating the need for users to understand its
internal workings.
Ultimately, the paper concludes that programming languages for music
developed since the 2000s are not solely aimed at creating new music but
@@ -144,10 +123,10 @@ of music created with computers.
\section{PCM and Early Computer
Music}\label{pcm-and-early-computer-music}
Among the earliest examples of computer music research, the MUSIC I
system (1957) from Bell Labs and its derivatives, known as MUSIC-N, are
frequently highlighted. However, attempts to create music with computers
in the UK and Australia prior to MUSIC I have also been
Usually the MUSIC I (1957) in Bell Labs\citep{Mathews1980} and
succeeding MUSIC-N family are highlighted as the earliest examples of
computer music research. However, attempts to create music with
computers in the UK and Australia prior to MUSIC have also been
documented\citep{doornbusch2017}. Organizing what was achieved by
MUSIC-N and earlier efforts can help clarify definitions of computer
music.
@@ -158,25 +137,24 @@ control pitch. This was partly because the operational clock frequencies
of early computers fell within the audible range, making the
sonification of electrical signals a practical and cost-effective
debugging method compared to visualizing them on displays or
oscilloscopes. Some computers at this time like Australia's CSIR Mark I
(CSIRAC) often had ``hoot'' primitive instructions that emit a single
oscilloscopes. Some computers at this time like CSIR Mark I (CSIRAC) in
Australia often had ``hoot'' primitive instructions that emit a single
pulse to a speaker.
In 1949, the background to music played on the BINAC in UK involved
engineer Louis Wilson, who noticed that an AM radio placed nearby could
pick up weak electromagnetic waves generated during the switching of
vacuum tubes, producing regular sounds. He leveraged this phenomenon by
connecting a speaker and a power amplifier to the computer's output,
using the setup to assist in debugging processes. Frances Elizabeth
Holberton took this a step further by programming the computer to
generate pulses at arbitrary intervals, creating melodies
\citep{woltman1990}. The sound generation on BINAC and CSIR Mark I
represents early instances of using computers to play melodies from
existing music.
vacuum tubes, producing sounds. He leveraged this phenomenon by
connecting a speaker and a power amplifier to the computer's circuit, to
assist debugging. Frances Elizabeth Holberton took this a step further
by programming the computer to generate pulses at desired intervals,
creating melodies \citep{woltman1990}. The early sound generation using
computer were mostly playing melodies of existing music. represented by
BINAC and CSIR Mark.
However, not all sound generation at this timewas merely the
However, not all sound generation at this time was merely the
reproduction of existing music. Doornbusch highlights experiments on the
British Pilot ACE (Prototype for Automatic Computing Engine: ACE), which
British Pilot ACE (Prototype for Automatic Computing Engine), which
utilized acoustic delay line memory to produce unique
sounds\citep[p303-304]{doornbusch2017}. Acoustic delay line memory, used
as main memory in early computers like BINAC and CSIR Mark I, employed
@@ -193,38 +171,28 @@ intentional part in choosing the notes. The music was very interesting,
though atonal, and began by playing rising arpeggios: these gradually
became more complex and faster, like a developing fugue. They dissolved
into colored noise as the complexity went beyond human understanding.
Loops were always multiples of 32 microseconds long, so notes had
frequencies which were submultiples of 31.25 KHz. The music was based on
a very strange scale, which was nothing like equal tempered or harmonic,
but was quite pleasant.
\end{quote}
This music arose unintentionally during program optimization and was
made possible by ``misusing'' switches installed for debugging acoustic
delay line memory (p20). Media scholar Miyazaki described the practice
of listening to sounds generated by algorithms and their bit patterns,
integrated into programming and debugging, as ``Algo\emph{rhythmic}
made possible by ``misusing'' switches installed for debugging delay
line memory. Media scholar Miyazaki described the practice of listening
to sounds generated by algorithms and their bit patterns, integrated
into programming, as ``Algo- \emph{rhythmic}
Listening''\citep{miyazaki2012}.
Doornbusch warns against ignoring early computer music practices in
Australia and the UK simply because they did not directly influence
subsequent research\citep[p305]{doornbusch2017}. Indeed, the tendency to
treat pre-MUSIC attempts as hobbyist efforts by engineers and post-MUSIC
endeavors as ``serious'' research remains common even
today\citep{tanaka_all_2017}.
The sounds produced by the Pilot ACE challenge the post-acousmatic
historical narrative, which suggests that computer music transitioned
from being confined to specialized laboratories to becoming accessible
to individuals, including amateurs.
Doornbusch warns against ignoring these early computer music practices
simply because they did not directly influence subsequent
research\citep[p305]{doornbusch2017}. Indeed, the sounds produced by the
Pilot ACE challenge the post-acousmatic historical narrative, which
suggests that computer music transitioned from being democratized from
closed electro-acoustic music laboratories to individual musicians.
This is because the sounds generated by the Pilot ACE were not created
by musical experts, nor were they solely intended for debugging
purposes. Instead, they were programmed with the goal of producing
interesting sounds. Moreover, the sounds were tied to the hardware of
the acoustic delay line memory---a feature that was likely difficult to
replicate, even in modern audio programming environments.
replicate, even in today's sound programming environments.
Similarly, in the 1960s at MIT, Peter Samson took advantage of the
debugging speaker on the TX-0, a machine that had become outdated and
@@ -235,17 +203,17 @@ evolved into the creation of a program that allowed melodies to be
described using text strings within MIT.
Building on this, Samson developed a program called the Harmony Compiler
on the DEC PDP-1, which was derived from the TX-0. This program gained
for the DEC PDP-1, which was derived from the TX-0. This program gained
significant popularity among MIT students. Around 1972, Samson began
surveying various digital synthesizers that were being developed at the
time and went on to create a system specialized for computer music. The
resulting Samson Box was used at Stanford University's CCRMA (Center for
Computer Research in Music and Acoustics) for over a decade until the
early 1990s and became a tool for many composers to create their works
\citep{loy_life_2013}. Considering Samson's example, it is not
appropriate to separate the early experiments in sound generation by
computers from the history of computer music solely because their
initial purpose was debugging.
\citep{loy_life_2013}. Considering his example, it is not appropriate to
separate the early experiments in sound generation by computers from the
history of computer music solely because their initial purpose was
debugging.
\subsection{Acousmatic Listening, the premise of the Universality of
PCM}\label{acousmatic-listening-the-premise-of-the-universality-of-pcm}
@@ -253,13 +221,12 @@ PCM}\label{acousmatic-listening-the-premise-of-the-universality-of-pcm}
One of the reasons why MUSIC led to subsequent advancements in research
was not simply because it was developed early, but because it was the
first to implement sound representation on a computer based on
\textbf{pulse-code modulation (PCM)}, which theoretically enables the
representation of ``almost any sound.''
\textbf{pulse-code modulation (PCM)}, which theoretically can generate
``almost any sound''\citep[p557]{mathews1963}
PCM, the foundational method of sound representation on today's
computers, involves dividing audio waveforms into discrete intervals
(sampling) and representing the sound pressure at each interval as
discrete numerical values (quantization).
PCM, the foundational sound representation on today's computers,
involves sampling audio waveforms into discrete intervals and quantize
the sound pressure at each interval as discrete numerical values.
The issue with the universalism of PCM in the history of computer music
is inherent in the concept of Acousmatic, which serves as a premise for
@@ -280,36 +247,33 @@ contrast\footnote{Sterne later critiques the phenomenological basis of
assumptions\citep{sterne_diminished_2022}. Discussions of universality
in computer music should also address ableism, as seen in the
relationship between recording technologies and auditory disabilities.}.
This implies that prior to the advent of recording technologies,
listening was unmediated and holistic---a narrative that obscures the
constructed nature of these assumptions.
This implies that prior to the advent of sound reproduction
technologies, listening was unmediated and holistic---a narrative that
obscures the constructed nature of these assumptions.
\begin{quote}
For instance, the claim that sound reproduction has ``alienated'' the
voice from the human body implies that the voice and the body existed in
some prior holistic, unalienated, and self present relation.
They assume that, at some time prior to the invention of sound
reproduction technologies, the body was whole, undamaged, and
phenomenologically coherent.\citep[p20-21]{sterne_audible_2003}
\citep[p20-21]{sterne_audible_2003}
\end{quote}
The claim that PCM-based sound synthesis can produce ``almost any
sound'' is underpinned by an ideology associated with recording
sound'' is underpinned by an ideology associated with sound reproduction
technologies. This ideology assumes that recorded sound contains an
``original'' source and that listeners can distinguish distortions or
noise from it. Sampling theory builds on this premise by statistically
modeling human auditory characteristics: it assumes that humans cannot
discern volume differences below certain thresholds or perceive
vibrations outside specific frequency ranges. By limiting representation
to this range, sampling theory ensures that all audible sounds can be
effectively encoded.
noise from it. Sampling theory builds on this premise through Shannon's
information theory, by statistically modeling human auditory
characteristics: it assumes that humans cannot discern volume
differences below certain thresholds or perceive vibrations outside
specific frequency ranges. By limiting representation to this range,
sampling theory ensures that all audible sounds can be effectively
encoded.
By the way, the actual implementation of PCM in MUSIC I only allowed for
monophonic triangle waves with controllable volume, pitch, and timing
(MUSIC II later expanded this to four oscillators)\citep{Mathews1980}.
Would anyone today describe such a system as capable of producing
``infinite variations'' in sound synthesis?
monophonic triangle waves with controllable volume, pitch, and
timing\citep{Mathews1980}. Would anyone today describe such a system as
capable of producing ``infinite variations'' in sound synthesis?
Even when considering more contemporary applications, processes like
ring modulation (RM), amplitude modulation (AM), or distortion often
@@ -324,63 +288,57 @@ completely universal tool for creating sound.
\section{What Does the Unit Generator
Hide?}\label{what-does-the-unit-generator-hide}
Starting with version III, MUSIC adopted the form of an acoustic
compiler (or block diagram compiler) that takes two types of input: a
score language, which represents a list of time-varying parameters, and
an orchestra language, which describes the connections between
\textbf{Unit Generators} such as oscillators and filters. In this paper,
the term ``Unit Generator'' means a signal processing module used by the
user, where the internal implementation is either not open or
implemented in a language different from the one used by the user.
From with version III, MUSIC took the form of an acoustic compiler
(block diagram compiler) that takes two input sources: a score language,
which represents a list of time-varying parameters, and an orchestra
language, which describes the connections between \textbf{Unit
Generators} such as oscillators and filters. In this paper, the term
``Unit Generator'' means a signal processing modules where its
implementation is either not open or written in a language different
from the one used by the user.
Beyond performing sound synthesis based on PCM, one of the defining
features of the MUSIC family in the context of computer music research
was the establishment of a division of labor between professional
musicians and computer engineers through the development of
domain-specific languages. Mathews explained that he developed a
compiler for MUSIC III in response to requests for additional features
such as envelopes and vibrato, while also ensuring that the program
would not be fixed in a static form
\citep[13:10-17:50]{mathews_max_2007}. He repeatedly stated that his
role was that of a scientist rather than a musician:
MUSIC family in the context of computer music research made success for
performing sound synthesis based on PCM and (but) it came with the
establishment of a division of labor between professional musicians and
computer engineers through the development of domain-specific languages.
Mathews explained that he developed a compiler for MUSIC III in response
to requests for additional features for MUSIC II such as envelopes and
vibrato by many composers, while also ensuring that the program would
not be fixed in a specialized musical expression (Max V. Mathews 2007,
13:10-17:50). He repeatedly stated that his role was that of a scientist
rather than a musician:
\begin{quote}
The only answer I could see was not to make the instruments myself---not
to impose my taste and ideas about instruments on the musicians---but
rather to make a set of fairly universal building blocks and give the
musician both the task and the freedom to put these together into his or
her instruments. \citep[p16]{Mathews1980}\\
(\ldots) When we first made these music programs the original users were
not composers; they were the psychologist Guttman, John Pierce, and
myself, who are fundamentally scientists. We wanted to have musicians
try the system to see if they could learn the language and express
themselves with it. So we looked for adventurous musicians and composers
who were willing to experiment. (p17)
When we first made these music programs the original users were not
composers; they were the psychologist Guttman, John Pierce, and myself,
who are fundamentally scientists. We wanted to have musicians try the
system to see if they could learn the language and express themselves
with it. So we looked for adventurous musicians and composers who were
willing to experiment.\citep[p17]{Mathews1980}
\end{quote}
This clear delineation of roles between musicians and scientists became
one of the defining characteristics of post-MUSIC computer music
research. Paradoxically, the act of creating sounds never heard before
using computers paved the way for research by allowing musicians to
focus on their craft without needing to grapple with the complexities of
programming.
research. Paradoxically, the computer music research that desired
creating sounds never heard before paved the way for research by
allowing musicians to focus on their composition without knowing about
cumbersome works of programming.
\subsection{Example: Hiding First-Order Variables in Signal
Processing}\label{example-hiding-first-order-variables-in-signal-processing}
Although the MUSIC N series shares a common workflow of using a Score
language and an Orchestra language, the actual implementation of each
Although the MUSIC N series shares a common workflow of using a score
language and an orchestra language, the actual implementation of each
programming language varies significantly, even within the series.
One notable but often overlooked example is MUSIGOL, a derivative of
MUSIC IV \citep{innis_sound_1968}. In MUSIGOL, not only was the system
itself implemented differently, but even the user-written Score and
Orchestra programs were written entirely as ALGOL 60 source code.
Similar to modern frameworks like Processing or Arduino, MUSIGOL
represents one of the earliest examples of a domain-specific language
implemented as an internal DSL within a library\footnote{While MUS10,
used at Stanford University, was not an internal DSL, it was created
by modifying an existing ALGOL parser \citep[p248]{loy1985}.}.
One notable but overlooked example is MUSIGOL, a derivative of MUSIC IV
\citep{innis_sound_1968}. In MUSIGOL, not only was the system itself but
even the score and orchestra by user programs were written entirely as
ALGOL 60 language. Like today's Processing or Arduino, MUSIGOL is one of
the earliest examples of a programming language for music implemented as
an internal DSL (DSL as a library)\footnote{While MUS10, used at
Stanford University, was not an internal DSL, it was created by
modifying an existing ALGOL parser \citep[p248]{loy1985}.}.
(Therefore, according to the definition of Unit Generator provided in
this paper, MUSIGOL does not qualify as a language that uses Unit
Generators.)
@@ -394,8 +352,8 @@ time steps prior \(O_{n-t}\), and an arbitrary amplitude parameter
\[O_n = I_1 \cdot S_n + I_2 \cdot O_{n-1} - I_3 \cdot O_{n-2}\]
In MUSIC V, this band-pass filter can be used as in \ref{lst:musicv}
\citep[p78]{mathews_technology_1969}.
In MUSIC V, this band-pass filter can be used as in Listing
\ref{lst:musicv} \citep[p78]{mathews_technology_1969}.
\begin{lstlisting}[label={lst:musicv}, caption={Example of the use of FLT UGen in MUSIC V.}]
FLT I1 O I2 I3 Pi Pj;
@@ -422,20 +380,21 @@ the desired frequency characteristics\footnote{It is said that a
\citep[p77]{mathews_technology_1969}.}, and they also had to account
for using at least two sample memory spaces.
On the other hand, in MUSIC 11, developed by Barry Vercoe, and its later
iteration, CSound, the band-pass filter is defined as a Unit Generator
(UGen) named \passthrough{\lstinline!reson!}. This UGen accepts four
parameters: the input signal, center cutoff frequency, bandwidth, and Q
factor. Unlike previous implementations, users no longer need to be
aware of the two-sample feedback memory space for the output
\citep[p248]{vercoe_computer_1983}. However, in MUSIC 11 and CSound, it
is still possible to implement this band-pass filter from scratch as a
User Defined Opcode (UDO) as in \ref{lst:reson}. Vercoe emphasized that
while signal processing primitives should allow for low-level
operations, such as single-sample feedback, and eliminate black boxes,
it is equally important to provide high-level modules that avoid
unnecessary complexity (``avoid the clutter'') when users do not need to
understand the internal details \citep[p247]{vercoe_computer_1983}.
On the other hand, in later MUSIC 11, and succeeding CSound by Barry
Vercoe, the band-pass filter is defined as a Unit Generator (UGen) named
\passthrough{\lstinline!reson!}. This UGen takes four parameters: the
input signal, center cutoff frequency, bandwidth, and Q
factor\citep[p248]{vercoe_computer_1983}. Unlike previous
implementations, users no longer need to calculate coefficients manually
and no need to aware of the two-sample memory space. However, in MUSIC
11 and CSound, it is possible to implement this band-pass filter from
scratch as a User Defined Opcode (UDO) as in Listing \ref{lst:reson}.
Vercoe emphasized that while signal processing primitives should allow
for low-level operations, such as single-sample feedback, and eliminate
black boxes, it is equally important to provide high-level modules that
avoid unnecessary complexity (``avoid the clutter'') when users do not
need to understand the internal details
\citep[p247]{vercoe_computer_1983}.
\begin{lstlisting}[label={lst:reson}, caption={Example of scratch implementation and built-in operation of RESON UGen respectively, in MUSIC11. Retrieved from the original paper. (Comments are omitted for the space restriction.)}]
instr 1
@@ -457,39 +416,38 @@ a1 reson a1,p5,p6,1
endin
\end{lstlisting}
On the other hand, in programming environments that inherit the Unit
On the other hand, in succeeding environments that inherit the Unit
Generator paradigm, such as Pure Data \citep{puckette_pure_1997}, Max
(whose signal processing functionalities were ported from Pure Data as
MSP), SuperCollider \citep{mccartney_supercollider_1996}, and ChucK
\citep{wang_chuck_2015}, primitive UGens are implemented in
general-purpose languages like C or C++. If users wish to define
low-level UGens (External Objects), they need to set up a development
environment for C or C++.
As an extension, ChucK later introduced ChuGen, which is equivalent to
CSound's UDO, allowing users to define low-level UGens within the ChucK
language itself \citep{Salazar2012}. However, both CSound and ChucK face
performance limitations with UDOs during runtime compared to natively
implemented UGens. Consequently, not all existing UGens are replaced by
UDOs, which remain supplemental features rather than primary tools.
general-purpose languages like C or C++\footnote{ChucK later introduced
ChuGen, which is similar extension to CSound's UDO, allowing users to
define UGens within the ChucK language itself \citep{Salazar2012}.
However, not all existing UGens are replaced by UDOs by default both
in CSound and ChucK, which remain supplemental features possibly
because the runtime performance of UDO is inferior to natively
implemented UGens.}. If users wish to define low-level UGens (external
objects in Max and Pd), they need to set up a development environment
for C or C++.
When UGens are implemented in low-level languages like C, even if the
implementation is open-source, the division of knowledge effectively
forces users (composers) to treat UGens as black boxes. This reliance on
UGens as black boxes reflects and deepens the division of labor between
musicians and scientists that Mathews helped establish---a structure
that can be seen as both a cause and a result of this paradigm.
musicians and scientists that was establish in MUSIC though the it can
be interpreted as both a cause and a result.
For example, Puckette, the developer of Max and Pure Data, noted that
the division of labor at IRCAM between researchers, Musical
Assistants/realizers, and composers has parallels in the current Max
ecosystem, where the roles are divided into software developers,
External Objects developers, and Max users \citep{puckette_47_2020}. As
described in the ethnography of 1980s IRCAM by anthropologist Georgina
Born, the division of labor between fundamental research scientists and
composers at IRCAM was extremely clear. This structure was also tied to
the exclusion of popular music and its associated technologies in
IRCAM's research focus \citep{Born1995}.
the division of labor at IRCAM between Researchers, Musical
Assistants(Realizers), and Composers has parallels in the current Max
ecosystem, where the roles are divided into Max developers them selves,
developers of external objects, and Max users \citep{puckette_47_2020}.
As described in the ethnography of 1980s IRCAM by anthropologist
Georgina Born, the division of labor between fundamental research
scientists and composers at IRCAM was extremely clear. This structure
was also tied to the exclusion of popular music and its associated
technologies in IRCAM's research focus \citep{Born1995}.
However, such divisions are not necessarily the result of differences in
values along the axes analyzed by Born, such as
@@ -507,8 +465,7 @@ into consumers.
\begin{quote}
Lacking adequate knowledge of the technical system, musicians
increasingly found themselves drawn to prefabricated programs as a
source of new sound material. As I have argued, however, this assertion
is not simply a state ment of fact; it also suggests a
source of new sound material. (\ldots)it also suggests a
reconceptualization on the part of the industry of the musician as a
particular type of consumer. \citep[p89]{theberge_any_1997}
\end{quote}
@@ -516,7 +473,7 @@ particular type of consumer. \citep[p89]{theberge_any_1997}
This argument can be extended beyond electronic music to encompass
computer-based music in general. For example, media researcher Lori
Emerson noted that while the proliferation of personal computers began
with the vision of ``metamedia''---tools that users could modify
with the vision of ``metamedium''---tools that users could modify
themselves, as exemplified by Xerox PARC's Dynabook---the vision was
ultimately realized in an incomplete form through devices like the
Macintosh and iPad, which distanced users from programming by
@@ -527,16 +484,16 @@ extensibility through programming renders it merely a device for media
consumption \citep{kay2019}.
Although programming environments as tools for music production are not
widely used, the Unit Generator concept, alongside MIDI, serves as a
foundational paradigm for today's consumer music production software and
infrastructure, including Web Audio. It is known that the concept of
relatively used, the UGen concept serves as a premise for today's
popular music production software and infrastructure, like audio plugin
formats for DAW softwares and WebAudio. It is known that the concept of
Unit Generators emerged either simultaneously with or even slightly
before modular synthesizers \citep[p20]{park_interview_2009}. However,
UGen-based languages have actively incorporated the user interface
metaphors of modular synthesizers, as Vercoe said that the distinction
between ``ar'' (audio-rate) and ``kr'' (control-rate) processing
introduced in MUSIC 11 is said to have been inspired by Buchla's
differentiation between control and audio signals in its plug type
UGen-based languages have actively incorporated metaphors of modular
synthesizers for their user interface, as Vercoe said that the
distinction between ``ar'' (audio-rate) and ``kr'' (control-rate)
processing introduced in MUSIC 11 is said to have been inspired by
Buchla's distinction in its plug type
\citep[1:01:38--1:04:04]{vercoe_barry_2012}.
However, adopting visual metaphors comes with the limitation that it
@@ -554,9 +511,9 @@ as the most convenient software equivalents of modular synthesizers.
Based on the discussions thus far, music programming languages developed
after the 2000s can be categorized into two distinct directions: those
that narrow the scope of the language's role by attempting alternative
abstractions at a higher level, distinct from the Unit Generator
paradigm, and those that expand the general-purpose capabilities of the
language, reducing black-boxing.
abstractions at a higher level, distinct from the UGen paradigm, and
those that expand the general-purpose capabilities of the language,
reducing black-boxing.
Languages that pursued alternative abstractions at higher levels have
evolved alongside the culture of live coding, where performances are
@@ -584,9 +541,9 @@ On the other hand, due to their high-level design, these languages often
rely on ad hoc implementations for tasks like sound manipulation and
low-level signal processing, such as effects.
McCartney, the developer of SuperCollider, once stated that if
McCartney, the developer of SuperCollider, stated that if
general-purpose programming languages were sufficiently expressive,
there would be no need to create specialized languages
there would be no need to create special languages
\citep{McCartney2002}. This prediction appears reasonable when
considering examples like MUSIGOL. However, in practice, scripting
languages that excel in dynamic program modification face challenges in
@@ -605,7 +562,7 @@ portability across not only different CPUs but also diverse host
environments such as operating systems and the Web, these languages are
no longer as portable as they once were. Consequently, systems targeting
signal processing implemented as internal DSLs have become exceedingly
rare, with only a few examples like LuaAV \citep{wakefield2010}.
rare, with only a few examples like LuaAV\citep{wakefield2010}.
Instead, an approach has emerged to create general-purpose languages
specifically designed for use in music from the ground up. One prominent
@@ -620,15 +577,13 @@ high-speed execution.
The expressive power of general-purpose languages and compiler
infrastructures like LLVM have given rise to an approach focused on
designing languages with formalized abstractions that reduce
black-boxing. \textbf{Faust} \citep{Orlarey2009}, for example, is a
designing languages with mathematical formalization that reduce
black-boxing. \textbf{Faust} \citep{Orlarey2009}, for instance, is a
language that retains a graph-based structure akin to UGens but is built
on a formal system called Block Diagram Algebra. This system integrates
primitives for reading and writing internal states, which are essential
for operations like delays and filters. Thanks to its formalization,
Faust can be transpiled into general-purpose languages such as C, C++,
or Rust and can also be used as an External Object in environments like
Max or Pure Data.
on a formal system called Block Diagram Algebra. Thanks to its
formalization, Faust can be transpiled into general-purpose languages
such as C, C++, or Rust and can also be used as an External Object in
environments like Max or Pure Data.
Languages like \textbf{Kronos} \citep{norilo2015} and \textbf{mimium}
\citep{matsuura_mimium_2021}, which are based on the more general
@@ -640,25 +595,25 @@ interoperability with other general-purpose languages
Domain-specific languages (DSLs) are constructed within a double bind:
they aim to specialize in a particular purpose while still providing a
certain degree of expressive freedom through programming. In this
context, efforts like Extempore, Kronos, and mimium are not merely
programming languages for music but are also situated within the broader
research context of Functional Reactive Programming (FRP), which focuses
on representing time-varying values in computation. Most computer
hardware lacks an inherent concept of real time and instead operates
based on discrete computational steps. Similarly, low-level
general-purpose programming languages do not natively include primitives
for real-time concepts. Consequently, the exploration of computational
models tied to time---a domain inseparable from music---remains vital
and has the potential to contribute to the theoretical foundations of
certain degree of expressive freedom through coding. In this context,
efforts like Extempore, Kronos, and mimium are not merely programming
languages for music but are also situated within the broader research
context of functional reactive programming (FRP), which focuses on
representing time-varying values in computation. Most of computing
models lack an inherent concept of real time and instead operates based
on discrete computational steps. Similarly, low-level general-purpose
programming languages do not natively include primitives for real-time
concepts. Consequently, the exploration of computational models tied to
time ---a domain inseparable from music--- remains vital and has the
potential to contribute to the theoretical foundations of
general-purpose programming languages.
However, strongly formalized languages come with their own trade-offs.
While they allow UGens to be defined without black-boxing, understanding
the design and implementation of these languages often requires advanced
knowledge. This can create a significant divide between language
developers and users, in contrast to the more segmented roles seen in
the Multi-Language paradigm---such as SuperCollider developers, external
the design and implementation of these languages often requires expert
knowledge. This can create a deeper division between language developers
and users, in contrast to the many but small and shallow division seen
in the Multi-Language paradigm, like SuperCollider developers, external
UGen developers, client language developers (e.g., TidalCycles),
SuperCollider users, and client language users.
@@ -686,10 +641,7 @@ Most newer tools abstract the signal processing routines and variables,
making them easier to use while removing the need for understanding the
underlying processes in order to create meaningful results. Composers no
longer necessarily need mathematical and programming skills to use the
technologies. These abstractions are important, as they hide many of the
technical details and make the software and processes available to more
people, and form the basis for what can arguably be seen as a new folk
music. \citep[p2]{holbrook2022}
technologies.\citep[p2]{holbrook2022}
\end{quote}
However, this division of labor also creates a shared vocabulary
@@ -707,31 +659,28 @@ aesthetic value within musical culture (and what forms of musical
practice they enable), as well as the social (im)balances of power they
produce.
It has been noted in programming language research that evaluation
criteria such as efficiency, expressiveness, and generality are often
ambiguous \citep{Markstrum2010}. This issue is even more acute in fields
like music, where no clear evaluation criteria exist. Thus, as McPherson
et al.~have proposed with the concept of Idiomaticity
\citep{McPherson2020}, we need to develop and share a vocabulary for
understanding the value judgments we make about programming languages in
general.
The academic value of the research of programming languages for music is
often vaguely claimed, like the word of ``general'', ``expressive'', and
``efficient'' but it is difficult to argue these claims when the
processing speed is no more the primary issue. Thus, as like
Idiomaticity \citep{McPherson2020} by McPherson et al., we need to
develop and share a vocabulary for understanding the value judgments we
make about music languages.
In a broader sense, the creation of programming languages for music has
also expanded to the individual level. Examples include \textbf{Gwion}
by Astor, which builds on ChucK and enhances its abstraction
capabilities with features like lambda functions
\citep{astor_gwion_2017}; \textbf{Vult}, a DSP transpiler language
created by Ruiz for his modular synthesizer hardware \citep{Ruiz2020};
and a UGen-based live coding environment designed for web execution,
\textbf{Glicol} \citep{lan_glicol_2020}. However, these efforts have not
yet been adequately integrated into academic discourse.
In a broader sense, the development of programming languages for music
has also expanded to the individual level. Examples include
\textbf{Gwion} by Astor, which is inspired by ChucK and enhances its
abstraction capabilities like lambda functions \citep{astor_gwion_2017};
\textbf{Vult}, a DSP transpiler language created by Ruiz for his modular
synthesizer hardware \citep{Ruiz2020}; and a UGen-based live coding
environment designed for web environment, \textbf{Glicol}
\citep{lan_glicol_2020}. However, these efforts have not yet been
included into academic discourse.
Conversely, practical knowledge of university-researched languages from
the past, as well as real-time hardware-oriented systems from the 1980s,
is gradually being lost. While research efforts such as \emph{Inside
Computer Music}, which analyzes historical works of computer music, have
begun \citep{clarke_inside_2020}, an archaeological practice focused on
the construction of computer music systems will also be necessary in the
future. This includes not only collecting primary resources, such as
oral archives from those involved, but also reconstructing the knowledge
and practices behind these systems.
Conversely, practical knowledge of past languages in 50-60s as well as
real-time hardware-oriented systems from the 80s, is gradually being
lost. While research efforts such as \emph{Inside Computer Music}, which
analyzes historical works of computer music, have begun
\citep{clarke_inside_2020}, an archaeological practice focused on the
construction of computer music systems themselves will also be
necessary.