Sintetizzatori
Sintetizzatori
Sintetizzatori
REFERENCES
Linked references are available on JSTOR for this article:
https://www.jstor.org/stable/24265513?seq=1&cid=pdf-
reference#references_tab_contents
You may need to log in to JSTOR to access the linked references.
JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide
range of content in a trusted digital archive. We use information technology and tools to increase productivity and
facilitate new forms of scholarship. For more information about JSTOR, please contact support@jstor.org.
Your use of the JSTOR archive indicates your acceptance of the Terms & Conditions of Use, available at
https://about.jstor.org/terms
The MIT Press is collaborating with JSTOR to digitize, preserve and extend access to Computer
Music Journal
Abstract: In the mid 1970s, specialized hardware for synthesizing digital audio helped computer music research move
beyond its early reliance on software synthesis running on slow mainframe computers. This hardware allowed for
synthesis of complex musical scores in real time and for dynamic, interactive control of synthesis. Peter Samson
developed one such device, the Systems Concepts Digital Synthesizer, for Stanford University's Center for Computer
Research in Music and Acoustics. The "Samson Box" addressed the classical problems of digital audio synthesis wit
an elegance that still rewards study. This article thoroughly examines the principles underlying the Box's design—wh
considering how it was actually employed by its users—and describes the architecture's advantages and disadvantages.
An interview with Samson is included.
In the mid 1970s, about the time this journal was of the development and use of the Samson Box are
founded, specialized hardware for digital audio given in the companion article.
began to help lift the field out of its early reliance Second, Samson Box simulation software has
on software synthesis running on slow mainframerecently been written by Bill Schottstaedt, assisted
computers, allowing the synthesis of complex by Mike McNabb, and is available for download
on the Web (Schottstaedt and McNabb 2012). This
musical scores in real time, and dynamic, interactive
control of synthesis. The resulting acceleration of article can be read as a kind of exegesis of their
research and composition greatly facilitated the simulator.
transformation of music and audio from analog Finally the Samson Box was a milestone in
to digital practices, a technological sea change the modern development of computer music. Its
that continues today at a rapid pace. The Systems architecture addressed the classical problems of
Concepts Digital Synthesizer, designed by Pete digital audio synthesis with an elegance that still
Samson, stood at the crossroads of these early rewards study. However, architectural descriptions
developments. A companion article (Loy 2013) of the Box to date have been mostly ex ante—stated
addresses the historical significance of the Samson in terms of the Box's abstract capabilities. The
present ex post review looks at how it was actually
Box, as it was called, as well as providing background
information and a general introduction. The present used by researchers and composers. We will peel
article provides a detailed technical review of the back the underlying principles of its design and
architecture of the Samson Box. discuss in detail what it "got right" as well as what
There is a fair amount of existing literature about
it did not—and why.
the Samson Box (e.g., Samson 1980, 1985; Moorer
1989; Kahrs 2002; Nelson 2005), so what justifies
another review of the Samson Box now, thirty-five
Architectural Overview
years later?
First, the Samson Box has reached the "sweet The main functional blocks of the Samson Box
spot" for historical review: Enough time has gone
were the computer interface, generators, modifiers,
by for us to fully appreciate its importance, and
sum memory, delay units, and delay memory. See
yet the principals are all still around to answer
Figures 1 and 2. The computer interface commu
for themselves. This article includes an interview
nicated with a controlling computer and provided
with Pete Samson in which he discusses his design
direct memory access (DMA) and first-in, first-out
process. Other historical and contemporary accounts
(FIFO) buffering to optimize data transmission.
When the Samson Box was first deployed, a
Computer Music Journal, 37:3, pp. 49-67, Fall 2013 Digital Equipment Corporation (DEC) PDP-6 was
doi: 10.1162/COMJ_a.OO 193 dedicated to servicing it, and the PDP-6 was in turn
© 2013 Massachusetts Institute of Technology. controlled by a DEC PDP-10 (via a shared memory
Loy 49
Q
Write Data m
Read Data 28-word FIFO
1-word FIFO
DMA
K.IM-1
Disk
DACs
interface), which operated the timesharing systemwere set up. Generators could produce various
at the Stanford Artificial Intelligence Laboratory wave shapes with envelope control and frequency
(SAIL). Later, a Foonly F2 (and yet later, an F4) modulation (FM); modifiers could mix signals,
computer replaced both DEC computers after or multiply them, or reverberate them. The Box
the Center for Computer Research in Music and could also read and write multi-channel audio
Acoustics (CCRMA) split off from SAIL in 1980. sample data streams from and to the controlling
Typically, precomputed musical scores consistingcomputer. The Box's generators and modifiers
of Samson Box command streams were stored communicated signals via sum memory, so named
on the controlling computer's disk, and were because multiple signals written to the same sum
fed on demand in real time to the Samson Box. memory location were added together. Four digital
Although a clavier (organ-style) keyboard and ato-analog
set converters supplied analog output.
of knobs were also attached to the PDP-6 via a The Box contained distinct processing engines
KIM-1 single-board computer, some architectural for the generators, the modifiers, and the delay
units.
difficulties with the Box initially blocked its use for These engines ran concurrently, synchronized
by the sample interval. Through time-division
interactive applications (see Loy 2013, and below).
In 1984, Samson implemented hardware updates multiplexing and pipelining techniques, each engine
operated on multiple parameter sets. The Box
that overcame these difficulties, and it then became
possible to control the Box interactively in realcontained
time parameter sets for 256 generators, 128
modifiers, and 32 delay units.
from the controlling computer. Several interactive
applications were later developed (Loy 2013). The computer interface provided system-wide
The active synthesizer components of the control
Box of the Box. Three DMA channels provided
real-time control for (1) sending commands to set
were the generators, modifiers, and delay units,
collectively referred to as processing elements.
processing-element parameters, (2) writing sample
Crudely speaking, generators generated signals,
data, and (3) reading sample data.
modifiers modified them, and delay units delayed Some processing-element parameters, such as
them using delay memory. But these names constants,
are sum-memory addresses, and running
merely suggestive: Modifiers and delay unitsmodes,
could could only be changed on command by
the controlling computer; running terms, such as
generate signals, and generators could modify them.
oscillator-phase angle, were changed by the Box
The generators and modifiers could each perform
a repertoire of functions depending upon how hardware
they itself every sample.
DMA Computer
Sample data to computer
Interface
Commands
I
Generators
(256)
To DACs FM
Sum Memory
This Pass
Gen. Mod.
(64) (64)
Last Pass
(128)
Passes and Ticks modifiers, two ticks; delay units, four ticks. Each
command update cost one tick.
The processing load of the Box was inversely The processing engines calculated synthesizer
results during processing ticks. Since the processing
proportional to its sampling rate, and was directly
proportional to the number of processing elementsengines ran concurrently, the number of processing
executing and the number of parameters that couldticks required per pass was the maximum of: (1) the
number of generators used, (2) twice the number
be updated per sample by the controlling computer.
of modifiers used, and (3) four times the number
It was the user's opportunity and responsibility to
of delay units used. For delay units, the number
negotiate the trade-off between a desired sampling
rate and the consequent number of processingof delay memory cycles possible per pass was
elements and parameter updates that could beUp- 6)/4j where p is the number of processing
performed per sample in real time. The Box could
ticks. The number of delay units that could run was
this number minus however many delay memory
also be operated out of real time to maximize the
amount of processing available, but then the results
cycles the computer took during processing ticks,
to a maximum of 32 delay units. Table 1 gives
would have to be stored, to be played back later at
full rate. examples of the trade-off between the number of
The Box performed all signal calculations onprocessing
a elements and the resulting sampling rate.
per-sample basis. The processing performed during Commands to the processing elements were
each sample comprised one pass. The duration handled
of only during update ticks. One command
could be processed per update tick. Some commands
a pass was measured in ticks, each of which took
could update more than one parameter at a time.
195 nsec. Each generator cost one tick to execute;
Loy 51
Loy 53
Sample Data
Controlling Time: The Linger Command
Using the read-data port (see Figure 1), the Box
could read up to 256 streams of 16- or 20-bit sample
The number of update ticks determined the maxi
data from computer memory for processing sound
mum number of commands the Box could process
files. It could write 20-bit samples back to computer
per pass. But if, after setting up a patch, no further
memory. This allowed a calculation that exceeded
commands needed to be issued for some period
the Box's computational capacity to be built up in
of time, a linger command inserted into the com
layers across several runs, if necessary, by saving
mand stream would instruct the Box to suspend
intermediate results to disk. The limited capacity of
processing update ticks for a number of passes. The
disk storage systems in those times largely precluded
linger mechanism allowed the Box to let a precise
this option, however.
The maximum bandwidth of read and write data number of passes flow by while the executing patch
continued to run. During this time, all update
that could be supported in real time depended upon
ticks became no-ops (so the sample rate would
the speed of the controlling computer's memory and
not change), and the number of passes specified by
the speed of the disks supplying or receiving the
the linger command was executed before the Box
data. Read-data and write-data transfers in excess of
resumed processing update ticks. (The DMAs in
this maximum would have to be performed on the
Box out of real time. the computer interface continued to service the
FIFOs during linger commands.) After the linger
command expired, the Box would resume processing
commands on update ticks.
Commands and Parameters For the most part, the software we developed uti
lized the linger command as described. The MBOX
Most commands were of the form, "set such and compiler (Loy 1981) automatically inserted lingers
as necessary into the command stream to realize
such a register to this value," or "set the running
mode of this generator or modifier." Commands the temporal flow specified by the musical score.
could change processing-element running modes, However, as described in the companion article
running terms, static values, or sum memory(Loy 2013), there was no way to interrupt a linger
addresses. Some commands set global parameters, command in progress, which could persist as long
as a minute at a 20-lcHz sampling rate. A linger
such as the number of processing elements per pass,
sample period, and the breakpoint frequency of command
the in progress irrevocably blocked the Box
DAC analog filters. from responding to subsequent commands for its
Loy 55
FrqSwp20 GO s20
GFM a7 [FmSimi]
To CPU
XI Nomenclature for the Samson Box's Generators:
XyZ := 'G'<rcgistcr_namc> <typc> <#_bits>
FM20 GJ s28
To DAC Q.\cFrq2K <rcgistcr_name> := O, J, K, FM, ctc.
<typc> :
s = signed
"G
u = unsigned
d - different in different modes
FmPhase20 (TcmpO) a = address
Italic: Smith/Schottstacdt register names
[ ] := dereference operator
GKd20 | | := alignment operator
QscAng20 sin (J + fm)
"+" inside a box := accumulation operation
AmpSwp20 GP s20
(Tempi) Pha.se20 NumCosll GNull
I
sin\ £ cos GQ s24
CurAmp24
_i _
(Tcmp3) CscAdr -*■{*)•«— n SinAdr
r1
Cur Amp! 2 (Temp6)
pow 2
Expi 1 Linear
^Unca
Floating
Point
Two-quadrant
Multiply
(Tcmp5) <*> (Tcmp8)
unsigned
GSUM a6 [OutSum]
by a certain value every sample until it "turned inversely on the bit depth of the register, which, for
over" (overflowed), and the rate at which it cycled the Box, was 20 bits.
was the frequency of the oscillator. Oscillator On every sample, the frequency of the oscillator
was determined by the sum of the FM input FM20
frequency is directly related to the magnitude of the
increment and the sample rate, fs. It also dependsand the frequency register OscFrq28. These were
Loy 57
Carrier Generator
Modulating Generator
Modifier
[FmSum\
Amplitude
Modulation, ToDAC
Loy 59
Loy 61
Loy 63
Loy 65
Loy 67