Professional Documents
Culture Documents
__________
A Project
Presented to
University of Denver
__________
In Partial Fulfillment
Masters of Art
__________
by
Darwin Grosse
April 2011
Abstract
This project documents the development and construction of the ArdCore module,
document, I place the work within the context of the history of computers, modular
synthesizers and modern microprocessors in music and sound design, and describe the
steps taken to create both the device and the open source manifestation of the project.
ii
Table of Contents
Project Description.............................................................................................................. 1
The ArdCore Module.............................................................................................. 1
Software Development............................................................................................ 1
The Website ............................................................................................................ 2
Literature Review................................................................................................................ 3
Computers in Electronic Music Experimentation................................................... 3
Initial Sound Experiments........................................................................... 3
Microprocessors and Digital Sound............................................................ 4
Integration of Programming in EM Practice............................................... 6
Modular Analog Synthesis in EM Development .................................................... 8
Modular Synthesis Development................................................................ 8
Modern Modular Synthesizers.................................................................. 10
Modular Synthesizer Roles in Sound Design ........................................... 10
Open Hardware and Software Production ............................................................ 11
Conclusion ........................................................................................................................ 41
References......................................................................................................................... 42
The physical device created for this project is a sub-component module for a
synthesizer, is a large-format system that breaks down the elements of sound creation into
discrete, self-contained modules. The ArdCore module is a first for these systems: it is a
end-user programmed microprocessors within these large – and largely analog – systems.
Software Development
This device is built using the popular Arduino microcontroller platform, and uses
available open source development tools to create programs to run on the device. As part
of this project, I have created a large number of “personality” sketches that enable the
module to perform an array of typical (and sometimes atypical) sound creation functions.
Unlike other computer interfaces, the ArdCore module works as a stand-alone device,
allowing the synthesizer (and our computational module) to work without being tethered
to a user’s computer. Additionally, the software and tools provide a way for the end-user
to work with a simplified programming system that can allow them to realize new
1
The Website
All of this work, both hardware and software, is available as open source
by Andrew Pask and me, is the hosting location for this material and supports the effort
forums dedicated to the use and programming of the ArdCore modular platform.
2
LITERATURE REVIEW
Since this project involves computer sound experimentation, analog sound design
within the histories of each. Much of the literature regarding computational and analog
sound design is focused on music creation, but it is the inherent experimentation that is
Max Matthews, a researcher at Bell Labs who developed both sound development
hardware and sound-oriented computer languages for sound production, led early
the Silver Scale, was created in 1957 by Newman Guttman using Matthews’ MUSIC I
program. Updates to the program (and the related hardware) allowed the system to
Tenney, Charles Dodge and Vladimir Ussachevsky. The system progressed through many
versions (MUSIC II through MUSIC 11), with the series eventually becoming known as
the MUSIC-N system. The evolution of this line of programs has evolved into the
CSound composition environment that is still active today (Chadabe 1997, 108-110,
Manning 187-189).
3
The MUSIC-N system was unique in that it separated the development of
instruments from the development of the composition. Both parts of the performance
were maintained as a single program, but the separation allowed instruments developed
for one score to be used in another. Describing the result as “instruments” may lead one
misleading, since many of the instruments were little more than digital sound waves or
designers like Dodge and Ussachevsky combined their background as tape music
explorers with digital programming techniques to create new soundscapes within these
The process of creating sounds using these programs was excruciating. Larry
Austin described working for hours in creating a composition, then trying to hear the end
result:
…the Play command didn’t mean you’d get the sound back right away. The
program would go through the three passes of Music V and the music would be
output to digital computer tape. Then you made an appointment to get your digital
tape converted to audio tape. The sounds were converted on the main machine
down on campus (Chadabe 1997, 116).
Thus, the process of working with computers was far from an interactive process.
It was the development of small and more accessible computers that would make
microcontroller to control all of the device settings. This made it possible to store a group
separated instruments design and which allowed the users to recall their work at any
point. This was very important when using synthesizers in both performance and studio
environments, with favorite sounds recalled at the push of a button (Chadabe 1997, 156-
157).
Jupiter 6 and 8, Oberheim OB-8 and Korg Poly 6, became staples of musicians and sound
artists because of their relative simplicity, lower cost and greater stability. However,
these instruments still suffered from some limitations – particularly the number of notes
that could be played (polyphony) and the complexity of the analog sound generation
engines. With the release of the Yamaha DX-7 and Ensoniq Mirage, digital synthesis
(built off the work of Matthews and researchers like John Chowning) quickly replaced
analog systems as popular sound creation tools (Théberge 1997, 59-69; Chadabe 1997,
197-201).
As digital control (and eventually, digital sound synthesis) became ubiquitous, the
use of computers naturally followed. Prior to the availability of hybrid and digital
synthesizers, most computer music was focused on both sound generation and
compositional playback within the machine, using the process described by Austin. With
of the MIDI networking specification, these two functions were split between systems:
5
the synthesizer generated the sound, while the computer produced the notes and timbre
the Apple II) offered opportunity for audio experimentation, it was the second generation
of microcomputer – led by the Atari ST 520, Commodore Amiga, IBM PC and Apple
Macintosh – that led to widespread use of computers in music and sound development.
As the available computer systems got faster and more powerful, they began to usurp the
role of sound generation as well. With the advent of Steinberg’s VST (Virtual Studio
Technology) system, digital synthesis moved “inside the box”, and the use of dedicated
synthesizer modules began to wane (Chadabe 1997, 201-204; Théberge 1997, 83-90;
While the MUSIC-N systems provided programming-like control over the digital
sound systems, much of the development in computer music and sound design revolved
around creating a “better tape recorder” or “new synthesizer”. It was the work of Miller
Puckette at IRCAM that moved programming from the research institution and into
electronic music practice. Using ideas garnered from Max Matthews, Puckette developed
never became popular (largely due to its high cost), the Max language became the first
6
widely available computer language for electronic music production (Chadabe 1997, 183-
184).
Early versions of Max (and other programming systems, like Keykit and CAL)
primarily produced MIDI output for the control of synthesizer hardware. Csound, an
updated variant of MUSIC-N, continued the traditional computer music role, with both
microcomputers became more powerful, so did these languages: Max and its variants (Pd,
audio creation, while textual languages like Csound, Chuck and Cmix became capable of
personalized, idiosyncratic electronic sound design tools. While there was once a
differentiation between programmers and artists, this gap is quickly being closed by
musical practice.
In many ways, the ArdCore is a return to MUSIC-N/CSound like tools, where the
compositional tools are separate from the sound generation tools (or instruments).
Although the ArdCore can produce a limited number of sounds, it is primarily focused on
musical phrase generation and storage. By creating an environment that simplifies access
7
to these functions (through basic programming techniques), it gives interested users a
chance to develop code that works within their existing music-making environment.
Early ArdCore user Dan Snazelle (see Appendix D) describes his approach to the
platform as “a tool for learning programming”. He further points to the significant body
of example programs as a launching point for creating something that would represent his
own creative work. Because the platform is well documented, freely available and works
within a musical context, he and others are excited to try programming when they
previously had no motivation to do so. Thus one of the project goals – to create a device
that would draw people into programmatic practice – appears to have been adequately
met.
Computer sound creation was developed within academic and research centers,
but the modular synthesizers came straight from the commercial world. These systems
were created as devices for musicians and sound designers to use as a primary
Cahill’s Telharmonium (Holmes 2008, 6), it was the work of Robert Moog and Don
Buchla that ignited interest in analog electronic synthesis. These pioneers created systems
that were modular in nature: the user could select synthesis components based on their
8
process, with each user’s system being a unique expression of their work. By combining
modern production techniques (such as standardized module formats and the use of
standardized parts throughout their systems) with direct artist interaction and support, the
early creators quickly established analog modular synthesizers as a popular option for
adventurous musicians and sound designers. Early modular synthesizer users included
Wendy Carlos, Keith Emerson, Susan Ciani and the members of Tangerine Dream
(Chadabe 1997, 140-149; Pinch & Trocco 2002, 74-77, Vail 2000, 105-155).
While the Buchla and Moog systems were very different, they both shared a
similar concept – the use of analog voltages to both generate the sounds and control the
settings. While Buchla’s systems were more complex, it was Moog’s developments that
set industry norms, particularly the use of 1 volt per octave as a system control standard.
Most analog modular systems (by such companies as ARP, Aries and Roland) took up
this standard, leading to broad interoperability among systems (Jenkins 2007, 36).
The most significant problem with these analog modular systems was their
complexity; they were expensive to manufacture and there was no way to store work that
had previously been done. There were also stability problems; analog systems were
massive, hard to maintain and very sensitive to temperature variations. This led
for improved stability. Eventually, modular analog synthesizers fell out of favor with
musicians that preferred more portable (and less expensive) keyboard instruments, and
9
Modern Modular Synthesizers
In the early 2000’s, there was a strong backlash against software synthesis,
causing cutting edge electronic musicians and sound designers to search for older analog
systems. Among the most desired synthesizers were the modular analog systems from the
60’s; these units provided unsurpassed flexibility of sound generation while maintaining
an analog sound path (Vail 2000, viii-ix). As such, a significant group of enthusiasts
began to form around modular systems, and a new set of vendors began to create updated
analog modular synthesizers. These modular systems allowed musicians to have access to
this method of sound creation without the extraordinary costs of the (now collectible)
original devices.
have focused on analog methods pioneered by Moog and Buchla – to the exclusion of
almost any digital interaction. As these systems became more widely used, some
developers created basic digital modules, generally using digital techniques to “warp” the
audio path or to interface with computer gear through MIDI interconnection (Robair
2001).
creation, but there is no preset role for these devices. They can be used for percussion
synthesis, bass line production, quirky lead lines or even manipulation of digitally
recorded samples. One primary reason they are increasing in popularity is that they have
10
the perception of removing limitations between the artist and the production of sound.
However, some of the limits of analog-only modular systems can also inadvertently
These limits include difficulties with storage and replication of work, the
difficulty with interfacing into the now ubiquitous computer systems without resorting to
The module created by this project is designed to work within an analog modular
system, but also works beyond its typical boundaries. It has (and even features) a USB
connection for a computer, but also uses standard knobs, jacks and LEDs for its user
This last statement is important, because some modular users actively avoid using
deeply integrated hybrid of computer and modular. By creating a system that can either
The third context in which this project is situated is the open source hardware and
software movement, and its relationship with DIY (Do It Yourself) and industry outsider
11
development. Perhaps the earliest efforts in the area of DIY music hardware creation
were the articles and books written by Craig Anderton. His seminal text, Electronic
Projects for Musicians (1975), along with his work for the Synergy and Electronic
Musician magazines, offered simple circuits and basic electronic teaching, along with the
option to purchase kits from various suppliers. Anderton’s projects were simple but
concise, and allowed non-engineers to create their own effects and noise-making devices.
techniques for almost every musical application, with a specific focus on synthesis
techniques. Unlike Anderton’s book, this was a more technical book, but was still within
the capability of the interested hobbyist to explore. The result of this work was the broad
But it wasn’t until the development of cheap and readily available microcontroller
platforms that DIY instrument development exploded. With reduced barriers to entry
hardware), platforms such as the Basic Stamp, PIC processor and Arduino platform
opened the door for non-industry, non-engineering individuals to create their own
develop hardware-centric devices at a modest cost and with a modest level of dedication.
12
The use of the Arduino is central to the computational focus of this project as well as its
The Arduino platform was created by Massimo Banzi, David Cuartielles and
others in Ivrea, Italy, and first began receiving attention when it received honors at the
2006 Prix Ars Electronica. It combines a very simple microprocessor (the Atmel AVR
microcontroller) with a few basic components on a standardized board layout. This layout
has allowed a wide range of developments, with accessory boards (called shields)
becoming a popular way to expand the functionality of the basic Arduino device (Gibbs
2010, 6).
the schematic and the circuit layout available from the Arduino home page. This has led
to many variations of Arduino boards that are fine-tuned for specific functions. These
variations have not detracted from the popularity of the system, primarily because the
common software base keeps any single developer from straying too far from the
standard.
onto the chip and helps load other programs) and a development environment. This
environment, built off an earlier open source hardware/software platform called Wiring,
uses a variation of the Processing software development system. This makes the system
especially valuable to artists and novice programmers, since the Processing environment
is widely used and taught as a form of introductory programming (Gibbs 2010, 6).
13
Interestingly, the Arduino comes with no default program; rather, the user is
expected to write (or download) every program that they run on their system. This has led
to the expansion of programming interest among users, with more excitement being
shown for people “making things work” rather than for computational efficiency. It is this
open source/open programming system that is perfect for this project: the creation of a
This is a significant change over a very short time; most texts on music- or sound-
ins, but are all focused on computer systems that vastly outpace most hobbyist
that has led the way for new musical applications of these devices and the development
A simple search on the main Arduino site for “music” returns dozens of tutorials,
forum postings and external site links to projects by people trying to link their favorite
such as SparkFun, CuteDigi and Adafruit that provide simplified access to the parts and
kits necessary to create useful hardware. The combination of low hardware costs,
These same factors have also led to the growth of new organizations, like
Handmade Music and Crash Space, to help users experiment with instrument-building,
14
basic electronics and software interface. In the interview listed in Appendix E, Grant
Richter describes musical engineering as having a tribal nature, since the practice
requires information from so many disciplines. These organizations are fulfilling both the
education and support roles necessary for new hardware developers and software
environment, the ArdCore project is able to build upon the work of the existing
reasonably, with kits and bare circuit boards made available for the DIY builder.
Additionally, all of the software source code is provided for free use (subject to the
Creative Commons Non-Commercial license) by anyone willing to build his or her own
unit that supports the project specification. Finally, reference circuit designs are provided
for the primary subsections of the system, so inexperienced hardware developers can
create “hacked together” versions of the system for their own use. These efforts allow the
15
BACKGROUND LEARNING AND EXPERIENCE
systems. Two companies – Silent Way and MOTU – have created systems to integrate
computers into analog systems via audio interfaces, while other companies have created
interfaces that allow computer-source MIDI data to be translated into control voltages.
But each of these approaches has limits because the computer must remain ‘tethered’ to
the synthesizer. It is here that this project innovates – I will place general-purpose
computing resources inside the analog modular system; an option that offers stand-alone
sometimes they are part of the sound generation mechanism, but most often they are used
as part of the control system. A good example is the MOTM-650 MIDI-CV Converter.
device and produce control voltages for a modular synthesizer. The microcontroller is not
only used to convert the serial MIDI data to analog signals, it also can be used to create
(http://www.synthtech.com/motm650.html).
This module, like all similar commercial modules, is hidden behind a device-
specific front panel, and uses the microcontroller for a specific function. It also does not
16
include the source code (which developer Paul Schreiber states is not available for release
due to licensing issues), so further modification or bug fixes are not possible (Schrieber
2010). Thus, the MOTM-650, like other commercial products, is not a platform for
microcontroller.
To find a more open environment for exploration, one needs to look to the
have been developed based on other CPU subsystems, it is the Arduino that has emerged
as the most popular microprocessors for the experimenter. Thus, despite its limitations,
the Arduino was the clear choice as a computational core for this project.
systems. For example, the amount of memory space available for the program is limited
to 4-8 K (kilobytes), while variable space is limited to less that 1 K (Pablo 2008). As a
result, projects that use the Arduino are often paired with additional hardware for
any way to interface this synthesizer with other modules in an analog system – and
17
device – opening the door for user programmability. However, this system is also limited
Users have attempted to integrate the Arduino as a part of their modular systems
on their own with varying degrees of success. Some have taken the approach of building
to use the digital pin outputs of the Arduino for triggering or gating purposes. The largest
problem, as seen in DIY forum postings, is that people who are capable of dealing with
overwhelm more experienced software developers (Muff’s Modules & More 2010).
examples for people that want to use an Arduino system as an experimental tool within
their modular system. This is the issue that I chose to address with this project.
Perhaps the easiest way to classify the various standards in use is by the size of
their panels. The two most popular formats are the Eurorack system (developed by Dieter
18
and format. While the Eurorack system has more users (and more companies creating
modules), it is less widely used among DIY enthusiasts due to its small size.
designed by Robert Moog in the late 60’s. Although Moog Music is no longer involved in
through the creation of high-quality complete systems. Because of the large size of these
While the front panel is the most obvious way to differentiate systems, it is
electrical standards that are at the heart of creating any modular system. In the early days
of commercial modular systems, there were many voltage standards. Luckily, almost all
modular systems have settled on the Moog 1 volt-per-octave standard. This voltage
standard states that with each increase of a volt within a system, pitch-tracking system
Having a ubiquitous standard for voltage tracking is helpful in being able to create
a device that can work with a variety of systems. Whether operating within Eurorack or
5U systems, or other less common systems (like Frac or Serge), the core circuitry of this
19
Other Standards
Less important to the design (but still important for the project artifact) is the
standard for the connection jacks between modules. The two main systems use different
types of connectors, with Eurorack modules using 3.5mm mini-jacks, while 5U systems
use the 1/4” jacks used by Moog’s design. While there is no operational value in the jack
sizing, the use of 1/4” jacks add to the overall “large” size of 5U systems.
The other important standard to be considered is the power supply systems found
in these formats. Eurorack systems use power supplies with +/- 12 volt power supplies,
while 5U systems use +/- 15 volt supplies. Each supply system also uses a unique power
To create the reference module that is the artifact of this project, I decided to use
the 5U-1/4” jack standard. As part of the project design phase, I had done some
preliminary work with all of the major (and most of the minor) formats, and I found that
the 5U systems were more conducive to my style and the easiest for module
development.
However, I did not want to prevent people from using the core computational
device with other systems, so the circuit was designed to be small enough to fit behind
the typical Eurorack faceplate. I chose to follow the 1 volt/octave standard, and to
provide a power support system that could work with both 12- and 15-volt power
supplies.
20
Electronic Design
Once the overall design choices were made, I needed to create the circuit using
standard breadboards. This required two things: learning a modicum of electronics, and
experimenting with different components to create a system that would work as expected.
Basic Electronics
the past, and was always stymied by the variety of details necessary to make even basic
projects work. The growing interest in DIY electronics as epitomized by Make Magazine
information taught by projects, and project design as an integral part of creating work.
2009), which encapsulated electronic learning and interesting project designs with a
Make Magazine aesthetic. After working through many of the examples in this book, I
incorporate a computing core into the project without having to build all of the necessary
supporting circuitry and software tools required for a complete project. This system also
21
allowed me to create a device that would be easily programmed by the end user and had
an active online community for providing support to both end users and me.
There are many variations of Arduino boards, from the current Uno development
board, through the Mini boards that are little larger than the average IC chip. After
researching all of the available options, I decided to use the Arduino Nano, a very small
device that had an integrated USB connection. In addition to the convenience of having a
small unit, the Nano also has eight analog inputs (rather than the typical six for a standard
Arduino implementation); this was an important consideration, since the analog inputs
The Arduino, however, is not able to directly integrate with modular systems. In
order to create a standard analog voltage, digital pin signals need to be converted into a
single analog voltage. There are two ways used to send values to an analog output: either
through serial interface using a pair of pins, or a parallel interface through a larger
number of pins.
modular system, I chose to use the parallel interface mechanism. This uses most of the
digital pins of the Arduino, but it is clear within the code how you set individual bits for
output. I chose to use an 8-bit digital signal to describe the output signal, and used an 8-
22
The output of the TI chip doesn’t provide a useful voltage for the modular system
(in that it doesn’t output a strict 1 volt per octave range), so some amplification needs to
be applied to the signal in order to scale it correctly. After closely examining the modular
equipment I had available, I chose to use a TL072 dual op amp, which let me create 1
Volt/octave output scaling with a minimum of external parts. This op amp also provides a
feedback system to the DAC chip that greatly improves the accuracy of the voltages
Finally, I also designed the system with a pair of “digital” outputs that would
provide either HIGH or LOW values – either 0 volts or 5 volts. These outputs can be
gates, triggers or clocks, but require high current output (meaning that it requires a
significant amount of electricity to drive the connected module and components). Since
the Arduino can be damaged if the current draw is too great, I found a chip – the Texas
the these high-current outputs without taxing the Arduino power regulators.
These three chips, the TLC7524, TL072 and SN74ALS541, are the heart of the
circuitry necessary to create a modular-to-Arduino connection, and form the core of the
Since I intended my device to work within a 5U system, I also chose to use one of
the power supply connections common in that system: the Synthesizers.com connection.
Since this company provides well-documented power systems, it proves to be the easiest
23
way to integrate with an existing modular system. It is also generic enough to be useful
design the specification of how the Arduino was going to be used, then I built slowly
from the Arduino outward. I started with the analog inputs, since these were the easiest to
Since the Arduino only accepts 0-5 volts on each input, I had to make a decision
about input scaling. Since most modular systems work off of a bipolar voltage (as much
as a -10 to +10 volts range), I would either have to scale the inputs or eliminate some of
the voltage range. Since my primary goal was to make this system easy to program, I
decided to forego support of negative voltage – this allows the number range of 0-1023
(the input range of the Arduino) to represent a 0-5 volt range, with an input value of 0
representing zero volts. In practice, this means that some attached modules would have to
be scaled externally, but it would offer the best experience for beginning programmers.
I also wanted to have a clock input, but the analog inputs were too slow for this
purpose. In reviewing the Arduino programming documents, I found that some of the
digital pins could be used with interrupts, which stop the running program temporarily
whenever a signal is seen on that pin. This is perfect for clocking applications, so I
24
The outputs were more difficult, since they required designing the DAC circuit.
Although I had identified the TLC7524 as the appropriate chip for this task, I found few
examples in the chip’s data sheet that were not overly inflexible. A key discovery, found
through experimentation, was that I could ignore the timing inputs and keep the DAC
“open” at all times, giving me continuous voltage output whenever I changed the output
values.
When I first worked with the TL072 op amp, I was surprised to find that the
output was not scaled correctly for my 1 volt per octave output. This is where the vast
array of searchable information came in handy: a few online tutorials showed that one
should not expect a 1-to-1 amplification since there was always an internal voltage loss.
By adding a trimmer to the amplifier stage, I was able to increase the scaling of the
Digital and LED outputs are all buffered through the SN74ALS541 chip, allowing
me to control the amount of current draw from the ArdCore power supply. Based on
information I got from synthesizer designer Grant Richter (Appendix E), I chose to add
1K resistors across all of the outputs to prevent any damage in case a user placed voltage
Initial Tests
In order to test the circuit, I added jacks and a power connector my breadboard
circuit, then rewired my personal modular system to run the breadboarded circuit directly
from the system power supply. I also created a simple Arduino program that would
25
produce octave outputs and loaded that into the circuit. The circuit worked appropriately,
and with some adjustments of the trimmer I was able to get a stable, 1 volt/octave output.
One of my concerns was that the digital pins might not produce voltage at a rapid enough
rate, but I was pleased to find that the entire circuit was fast and stable as values changed.
There are two processes necessary to move a circuit from breadboard to printed
circuit board: creating a board layout, and getting a manufacturer to produce it. There is
relatively little practical information for board layout; most of the available books are
either focused on highly technical aspects of high-speed layout (i.e., ultrasonic and RF),
26
or are tied to a specific commercial layout package. My interest was in separating the
design from any single software package, and was specific to working in the domain of
audio processing.
upon a self-published book called PC Board Layout for Musical Effects. This sounded
like a decent option for this project, and review of a purchased copy revealed it to be a
good assumption. The book has a very practical way to deal with the power, crosstalk and
other issues that are common with guitar effects pedals and audio processors – all issues
Using this book as a guide, I next needed to find software that could provide me
with an appropriate layout. The most popular software is CadSoft’s Eagle, but I found it
very complicated, and the board size limitations on the free version meant it was
unusable for this project. The freeware/open source Fritzing package was easy to use, but
it crashed very often and had some user interface quirks that made it unusable for me.
The breakthrough in board design came when looking for possible small run
board manufacturers. One company, ExpressPCB, advertises a service where they will
that I needed to find a small run board service, so I reviewed this interesting option. As
part of their production, they offered a free software package that could be used for
circuit board layout. It is a Windows-only product, and is limited in that it can only be
27
used for creating boards using their service. Since I was already sold on that, I tried their
software and found it both simple to use and robust enough for this project.
version of the printed circuit board in only a few hours. Within a week, ExpressPCB
change, I added one trace that crossed over a ground path. When I hooked up my first
circuit using this board, it not only didn’t work – it actually burned out several of the
allowed me to fine-tune the boards until I had the final version, labeled Revision F, that is
stable, provides many test points for the user to access during building, and fit the
dimensions of the physical package I was developing. Version F of the board is the
version that is now available, and I had 50 boards of this version manufactured.
Faceplate Production
Possibly more difficult than creating the printed circuit board was the process of
making faceplates for the finalized module. The 5U format has a pretty specific aesthetic:
aluminum faceplates with bent sides, black facing with either uncolored or white lettering
and black Moog-like knobs. In order to create temporary mounting for the controls while
working on the module, I drilled holes in a standard “blank” faceplate; but with no way
of adding good-quality white labeling, this was not an option for creating the final
product.
28
Discussions with Phil Petchke (from Megaohm Audio, another 5U developer)
special kind of aluminum plating that is photosensitive; you expose the plate to a negative
of your faceplate labeling, process it to create a positive of the image embedded in the
aluminum, then bend and cut it as necessary. Working with the company allowed me to
Of course, working with a third-party company like this has its difficulties. The
first set of plates created was wrong: I had discussed the positioning of the USB port
mounting with their artist/engineer, he assured me that they could do the proper layout.
Their artwork appeared to be exactly as needed, but when I received the first set of plates,
the mounting holes were rotated about 20 degrees, making them unusable. The company
took back the defective merchandise and created new ones, but this caused a significant
The resulting faceplates, with all hardware mounted, are as attractive as any
modules being commercially created. I has since learned that this process is being used
by several of the other 5U developers, and provides a precise means of labeling and
29
Software Development
Although creation of the hardware (circuit board and faceplate) was time-
consuming because of all the learning required, it was the software development that has
taken the most time. I wanted to create a significant quantity of sketches for the Arduino
core of the module – in essence, creating “personality” modules for the device – so I
This required creating a usable prototype, which I did by drilling the necessary
holes into a blank faceplate and creating a simple mount of the circuit board on the
30
temporary plate. This was a fairly messy installation, but it operated fine as long as the
circuit board was isolated from any other metal surfaces. This prototype module allowed
me to work with the module as a stand-alone device, and helped me verify the usefulness
I also received a lot of help from some of the early testers of the system –
especially from the first serious user, Dan Snazelle (see interview in Appendix D). Dan
had stumbled across the ArdCore page in an attempt to create his own Arduino-based
module, and decided to use our specifications and sketches to build his own system.
Dan not only tried each sketch, but also was active in providing feedback about
problems or improvements that he thought would help improve the work. He decided to
himself on programming at the same time that he was working on creating the hardware.
the processing that can be accomplished with the ArdCore. While some of the sketches
are meant to be finished products, others are provided as starting points for end-user
experimentation. Combined with the video contents, it should be easy for users to find
out which sketches to use and which ones they might want to modify.
31
THE REFERENCE DEVICE
The final version of the ArdCore module supports its general-purpose role: the
front panel features the USB jack (so it is clear that it is meant to be hooked up to a
computer), and has generic labeling throughout. The module has two knobs for user
settings (connected to the Arduino analog 0 and 1 inputs), two analog input jacks for
automated control (connected to the Arduino analog 2 and 3 inputs), two digital outputs
(connected to the digital 3 and 4 pins), a clock input (connected to the interrupt-ready
digital pin 2) and the analog output (connected to the DAC output). This set of controls,
inputs and outputs is similar in breadth to most analog modules, so the layout and
connections (except for the USB port) will feel familiar to most users. Details on this use
The generic labeling is not only non-intrusive, it is also placed differently from
normal modules; rather than being above the control, it is either below or to the side,
allowing the user to create labels for the specific functions without interfering with the
programmer-oriented text. This will be important when users are attempting to program
the device, since it allows the user to view the programmatic connection without having
One design element that is oriented toward adventurous users will be the ability to
swap switches or potentiometers for the analog inputs; these were designed with a special
32
connector that allows them to be swapped out without any circuit board changes. Thus,
for programs that are best used with a switch or a knob, these can be interchanged with
Initial attempts to create an Arduino shield proved impossible, since the chosen
DAC and op amp chips all require bipolar power supplies. Since many people using a
shield with a standard Arduino would want to be able to use computer power from the
USB port, it appears difficult to create a shield that would operate to the module
specification. I hope to find a useful external power system that can work for this
application, but most power supplies are not appropriate for this type of circuit.
Software Sketches
Creating the device without any software would have been pointless – in order for
people to get excited about the platform, it needs to be able to perform useful functions
out of the box. Thus, from the beginning of the project, I planned to create a significant
body of examples for the ArdCore. The result is a library of 25 sketches, each providing
useful functionality as well as offering the user examples of the programming that makes
it work.
33
Other Peripherals and Formats
As stated previously, the design of the circuit board allows for user-replaceable
options to be added to an unmodified device. The two analog inputs, which are the
primary means of controlling the programs, are provided with input jacks by default.
However, I will also provide optional replacement subassemblies that allow for either
switches (useful for on/off or active/inactive state settings) or potentiometers (useful for
fine tuning controls) to be used in place of the input jacks. This will give the end user a
chance to add programmatic functionality that is reflected in the user interface with the
module.
34
OPEN SOURCE PRODUCTION
The open sourcing of both the design and the software is modeled after Brian
Crabtree and Kelli Cain’s development of the Monome musical controller (see Appendix
F). They created a hardware device that is very desirable, but chose to publish both the
hardware specification and the software implementation as open source documents. They
also developed an initial set of programs that were the basis for their users to craft both
The result of this open sourcing was that an active community grew around the
device. Some people purchased their device from Brian and Kelli, some purchased kits,
while others used the specification to create “clone” versions (often made with Arduino
microcontrollers at their core). Many of their users created software to extend the
This is the model for the release of the ArdCore module. I have published the
specification for the hardware (built on the development software provide by the Arduino
community), created an initial suite of software for the device, and have clearly listed the
community can develop around this device, and that users will contribute their own work
in order to make the ArdCore module series even more robust that it currently is.
35
This model, however, is not necessarily a pattern for success. For example, Jeff
Snyder’s Manta (also open in both hardware implementation and software development)
has seen difficulty in garnering an active community. Some of this can be attributed to
the difficulties in creating his device, which requires specific and difficult metal
fabrication. It also suffers from a lack of developer support; Jeff created few applications
that could inspire programmers, so there was no foundation for the users to build from
(www.snyderphonics.com).
Therefore, this model is not a guarantee of success, but it does provide a good
launching point for community interaction and a stable platform for programmatic
practice to be added into the synthesist’s artwork. In order to support the development of
Website Expansion
The most important of these steps – and possibly the easiest – was to create a
web-based location for user interaction. Andrew Pask, a Los Angeles-based software
developer (and adept metal worker) and I had been working together on a variety of
projects over the years, and created “20 Objects, LLC” as a supporting business structure
for our work together. Andrew was willing to help support the distribution and
hardware offering.
information about the module even before it was manufactured. I put up initial sketches
36
of the module programs, and also published a basic specification for the device. Almost
immediately, people stumbled over the site (since the combination of “Arduino” and
“modular synthesizer” doesn’t provide many useful hits when entered into Google), and I
Hardware Specification
The hardware specification is the portion of the project that people have found
difficult to understand. Initially, I described the use of pin outputs on the Arduino
connected to a generic DAC chip, but few people could comprehend this: they were
artists or sound designers, and didn’t want to figure out how to make a DAC chip work.
Therefore, I updated the site to include a basic circuit wiring for the DAC that I use, and
Other people found it difficult to condition the inputs and output appropriately for
the Arduino’s input. Again, putting together a simple diagram (based on a diode-sink
concept described to me by Grant Richter) helped the initial users get the voltages
necessary from their modular systems into their hand-built device. The results were
User Feedback
Perhaps the most active user has been Dan Snazelle (Appendix D), a New York-
based artist and effects pedal designer. He started working with the system, and used the
software sketches that I’d developed to learn programming of the Arduino. His feedback
37
was very valuable, leading to significant changes in the first iteration of the sketches, and
also leading me to remove some modules that provided duplicative functionality. His
In the end, this one user had a tremendous impact on the workability of the
device; this occurred before I had even begun to publicize the project to media
technology writers. It is my hope that once people understand the power of having an
easily programmable synthesizer module at their fingertips, this device will prove to be
What is clear is that the shield version of the module will be a very important
development. Since many users will want to test their device before committing to the
expense of front panels and input/output expanders, a shield will allow them to use the
system before building the end device. Additionally, using the shield version of the
device will help them to determine if the compromises made on the ArdCore (0-5 volt
limits, 8-bit output limits) will be useful for their work. It remains to be seen if the
ArdCore shield can be produced, but this is among the most important future plans for the
platform.
38
FUTURE PLANS
In addition to the module planned for this project, I expect to create ancillary
modules, reformatted versions of the ArdCore and extensions to the specification to allow
Expanders
The first and most important addition to the ArdCore platform is the creation of
input and output expanders. The support for this has been built into the circuit board, but
additional boards and faceplates will be required for these to become available.
The input expander allows the user to add four more analog inputs (jacks,
potentiometers or switches) to the main ArdCore module. This will allow for more user
controls, easier entry of sequencer information and greater flexibility with multi-modal
control. Some enhancements that I am considering are the ability to use bipolar voltages
for input, create independent utility controls (switches that could be plugged into other
The output expander exposes the outputs in a different way: rather than treating
the eight data pin output as a single value (as with the DAC on the main ArdCore unit),
this expander will provide eight separate bits as individual gate values: useful for
clocking or percussion sequencing roles. This has already been successfully created on a
breadboard, and will be the first available expansion. In fact, some of the existing
software sketches assume availability of the output expander to get maximum use of the
program.
39
One area of expansion that is outside of our control is improvements in the
Arduino platform itself. In designing the circuit, I used standard header connections for
the Arduino Nano so that it can be swapped out for faster or more capable future
versions. Assuming that the pin configuration stays the same, upgraded Arduinos should
Different Formats
There are two ArdCore formats we will directly support: the 5U (Moog-style)
module and, if possible, the ArdCore shield. Other formats (including Euro, Frac, Buchla
and others) will be left for third parties to create; there will be no limits to other
these devices.
Currently, Dan Snazelle is discussing the option of creating a Euro version of the
module; he was inspired by the software sketches, and wants to take his example board
and create commercial units. The discussions of this are at an early stage, but it is another
40
CONCLUSION
theory, electronic design, circuit board layout, advanced Arduino programming and
module faceplate layout. In the process, I was also able to explore some new areas of
modular synthesis, and have created an easily programmed computational device for
system can develop into the community-driven platform that I hope for, but initial
41
REFERENCES
Anderton, Craig. 1975. Electronic Projects for Musicians. New York: Amsco.
Chadabe, Joel. 1997. Electric Sound – The Past and Promise of Electronic Music. Upper
Saddle River, NJ: Prentice Hall.
Gibb, Alicia. 2010. “New Media Art, Design, and the Arduino Microcontroller: A
Malleable Tool.” (Masters thesis, Pratt Institute, 2010).
Holmes, Thom. 2008. Electronic and Experimental Music, Third Edition. New York:
Routledge.
Manning, Peter. 2004. Electronic and Computer Music. New York: Oxford University
Press.
Muff’s Modules & More, 2010. Discussion of Arduino Projects in DIY section.
http://www.muffwiggler.com/forum/viewtopic.php?t=21053, Accessed Dec 6,
2010.
Pinch, Trevor and Trocco, Frank. 2002. “The Social Construction of the Early Electronic
Music Synthesizer.” In Music and Technology in the Twentieth Century, edited by
Hans-Joachim Braun, 67-83. Baltimore, MD: John Hopkins University Press.
42
Robair, Geno. 2002. “Something Old, Something New.” Electronic Musician April 2001.
http://emusician.com/elecinstruments/emusic_something_old_something/index.ht
ml. Accessed Dec. 2, 2010.
Schrieber, Paul, 2010. Forum posting to Muff Modules & More modular synthesizer
forum. http://www.muffwiggler.com/forum/viewtopic.php?t=16297. Accessed
Dec. 4, 2010.
Théberge, Paul. 1997. Any Sound You Can Imagine – Making Music/Consuming
Technology. Hanover, NH: Wesleyan University Press.
43
APPENDIX A – THE FINAL ARDCORE SPECIFICATION
synthesizer module.
Modified: 03-31-2011 ddg Updated pin usage, describe inputs and outputs.
Overview
useful, it does not provide an adequate opportunity for the artist that includes
use of the Arduino microcontroller system, and will include a large number of example
sketches (programs) that accomplish tasks within the modular world. Any Arduino user
can utilize these specifications to create modules, control systems or computer interfaces,
and will be able to use any programs that others may come up with.
Arduino Use
The most important definition for the use of an Arduino in this environment is to
define the pin attachments. The ArdCore model will use the pins in the following way:
Analog Pins:
44
Analog In 1 Analog input 1 – knob or voltage
Digital Pins:
45
Digital Pin 13 Unused (avoiding conflict with load display) – OK to
use as indicator, but not used for signal output.
Input Handling
Inputs into the ArdCore module must support the 0-5 VDC range expected by the
Arduino inputs. These will be exposed as the numbers 0-1023 within Arduino sketches.
All of the sketches created assume unipolar inputs; thus, a value of 0 represents zero volts
on the input.
Support for bipolar input will require scaling and offsets to limit the incoming
Output Handling
Individual outputs (defined as the “digital outs” on digital pins 3 and 4) will
produce either 0 or 5 volts, and will always be defined in our sketches as outputs. It
would be wise to buffer these two outputs so that current draw on the Arduino is not
excessive.
The DAC (analog) output of the ArdCore is an 8-bit output created by bit-
collecting digital pins 5 through 12, with pin 5 representing the LSB of the output. No
latching of the DAC is provided; rather, the DAC is left “open”, and the bit writing
procedure is on-going. By using a fast DAC and efficient output routines, the slewing of
output is limited.
46
USB Connectivity
It is assumed that the USB port will be available at the device’s front panel. The
In addition to standard Arduino sketch development, the ArdCore system can use
the Firmata/Maxuino combination to create live interaction between the synthesizer and a
Conclusion
To date, we have created example versions of the circuit boards that support this,
and also have developed many sketches based on this specification, including a stable
quantizer, trigger delay, drunken-walk CV and other useful functions. These are posted
tested.
47
APPENDIX B – MECHANICAL DRAWINGS
48
49
APPENDIX C – DESCRIPTION OF ARDCODE SKETCHES
1. Template
The template serves two purposes: as a starting point for new programmers to
understand the ArdCore standard, as a hardware testing application for the module. When
a user wants to hand build a version of the ArdCore hardware, the template sketch can
serve as a reference implementation test, proving that the user’s device is meeting the
module specification.
50
2. Note Quantizer
The note quantizer creates in-tune notes out of arbitrary voltages. It can be used to
scale a sequence into tune, or to take random voltages and make them melodic. Since
quantizers are often very expensive (and inflexible with regards to available scales), this
quantizer is expected to be one of the more inspiring modules for new users of the
platform.
51
3. Drunken Walk Generator
The drunken walk algorithm is one of the most often used random functions in
to accomplish in the analog domain but is relatively simple to create digitally. This sketch
will produce a drunken walk at full 8-bit resolution, providing a useful option for non-
pitched modulation.
52
4. Drunken Note Generator
However, in this case, the output is quantized to standard notes, providing melodic pitch
53
5. Clock Divider
clock divider allows the creation of more complex rhythms by using subdivisions of a
beat. When the clock divider is given incoming clock signals, it produces output of a sub-
54
6. Trigger-to-Gate Converter
Many modules produce triggers – a very fast blip of voltage. These are useful for
clocking application, but envelope generators often need to see a “gate”: a voltage change
that has a hold time. Given input of a short trigger, the trigger-to-gate converter produces
55
7. 8-Step Sequencer
sequence by recording eight discrete steps, then performs playback of these steps when
56
8. Gate Delay
In order to get interesting melodies from a modular system, many artists will use
delayed versions of a melodic line combined with the original. Often this is done using an
audio delay device, which produces the well-known echo effect. The gate delay offers a
different option: it allows a delayed gate time to be used, allowing an alternative melody
in time with the original. This sketch allows a delayed gate based on either manual or
voltage control.
57
9. Trigger Delay
Similar to the gate delay, the trigger delay allows delay of a trigger based on
manual or voltage control. This can be useful for creating complex rhythms, or to drive
58
10. Note Delay
Similar to the gate and trigger delays, this sketch assumes that the incoming
voltage is a note value that has to be delayed. This is the most useful option for counter-
melody production; since it maintains an internal list of note values that it reproduces
59
11. Glissando (w/Gate)
This sketch extends the transition time between two voltages by a user-selectable
amount. It can be used to slide a melody line between notes, or to smooth otherwise harsh
changes. Both manual and voltage control are supported, and the digital outputs produce
60
12. Comparator
Given a manually set breakpoint, this sketch provides two gate outputs that
represent over and under positions (on digital outputs 0 and 1) relative to the breakpoint.
61
13. Slope Detector
This sketch provides gate outputs that show when an incoming control voltage is either
moving upward or downward. This can be useful for generative work that requires
62
14. Gate Sequencer
Given a clock input, this sketch produces 8-bit output that represents a sequence
of gate movements. The actual sequence is easily redefined in the code, allowing the user
to build percussion track within the code for reproduction in live performance.
Unfortunately, this requires the output expander to be useful, since the eight bits of the
output are not exposed on the standard ArdCore module. Since the output expander is not
yet available, the results of the first two bits are also reproduced using the digital outputs.
63
15. Automatic Switch
The automated switch flips the output between two analog inputs every time a
clock pulse is received. For generative situations where there is no external clock, the
64
16. Clock Multiplier
technique called the “ratchet” in many of their sequences. This effect is used during a
metronomic sequence, where the timing will burst forward for a fraction of a measure,
then return to normal. The clock multiplier produces a timed set of interval outputs on top
65
17. Logic Module
One of the simplest sketches, the Logic Module produces gate outputs based on
AND, OR and XOR logic derived from the analog inputs. This can be used for generative
66
18. Variation Generator
The variation generator, specifically created for use with the output expander,
uses an internal 8x16 gate sequencer in the sketch. Based on control and voltage settings,
individual gate outputs are created for each of the eight output bits. Since the output
expander is not yet available, the results of the first two bits are reproduced using the
digital outputs.
67
19. LFO w/Shaping
Although the ArdCore does not have the necessary circuitry to create smooth
output, creating a low frequency oscillator (LFO) module that produces shaped output
“warping” of the output waveform, varying between sawtooth, triangle and ramp waves.
68
20. Stepped Random
The stepped random sketch creates truly random output, but does so with a
defined step size. This way, you can force the random output to make large swings in
data, or focus on smaller step sizes. This is similar to the drunken walk algorithm, but
reverses the application to be oriented toward larger swings with more random output.
69
21. Shift Register
A shift register stores a value, and returns it when a clock signal is received. This
is useful for creating auto-harmonizing melodies and other generative results. This sketch
will store up to 8 values, producing a FIFO (first-in, first-out) queue for replication of
incoming voltages. This can be used for variations on an echoing effect, and lets a single
70
22. Output Standards
The output standards sketch is used to produce standard pitches from the analog
output. Adjusting the module’s two knobs can produce any note within the 5 octave range
of the device.
71
23. Control Voltage Recorder
One of the stranger sketches, the control voltage recorder will capture a snapshot
of an incoming voltage every time that it receives a clock. This voltage is stored in a
buffer that can be played back at different rates, with user-controlled loop points. While
not exactly a sampler (because it cannot operate at full audio rate), it does allow the
72
24. Simple VCO
Created more as an exercise than a useful module, this sketch creates a voltage-
controlled oscillator – a VCO. This is the primary sound generation tool in a modular
system, and is generally thought to be too difficult to implement with an Arduino. This
sketch uses some high-speed programming “tricks” to create audio output from simple
73
25. Voltage-controlled AD Envelope
A last minute addition to the sketch set, the VC Attack-Decay envelope is another
utility module that benefits from the computational core. Creating an envelope from a
single trigger, this sketch generates a rise and fall time based on both the knob settings
and by voltages coming into the analog inputs. This can give any phrase a non-
74
APPENDIX D: AN INTERVIEW WITH DAN SNAZELLE
Dan Snazelle is one of the first people to work with the ArdCore system as it was
was trying to learn Arduino programming without much success. He has been tireless in
testing the specification, trying all of the software sketches and providing feedback on the
spec. I felt it would be useful to include a short interview that I conducted via email; it
sheds a little light on how people may find out about this project, and how it can add both
Q: Dan, could you give me a brief background on who you are and what kind of work
you do in the electronic music realm.
A. My name is Dan Snazelle. I have been a professional musician for many, many years.
I have done everything from soundtrack work, to television music, 12”’s, albums, music
for theatre, playing in bands, and recently, building synthesizers and effects. In 2009, I
started SNAZZY FX. My musical output is very large but for the last couple of years all
of the electronic music I have been recording has been with my hand-made modular
synthesizer.
Q: You've been working with the open source ArdCore specifications and Arduino
sketches. How did you find it, and why did you decide to try using it?
A. I found ArdCore one night out of pure luck. I put in ARDUINO as the search term on
a popular music forum called MUFFWIGGLER and it came up. I immediately contacted
Darwin and began utilizing and studying the sketches. It only took me a few seconds on
the ArdCore site to realize that I wanted to utilize ArdCore. There is such a wide array of
sketches and they are all so obviously focused on electronic music.
75
Q: Which sketches are you most interested in using for your own work?
A: At the moment, I have been using ArdCore for two purposes. One of those uses is as a
tool for learning programming. So for that reason I have focused on a few of the sketches
that I think are going to teach me a lot.
The voltage recorder is significant, because it has the ability to actually store data; the
LFO is helpful, because it is helping me learn how to create waveforms with the Arduino.
I also use the Quantizer a lot. However as far as what I am using for the other purpose –
which is making music – I am using the voltage recorder, the AR envelope, the quantizer,
the two drunken sketches, the oscillator, and the shift register. Every day I play with a
few of the sketches, and most days I make changes to the sketches to see what I can do
with my new programming knowledge.
Q: This is, as far as I know, the first open source, open functionality computational
module that's been created. What about this platform is attractive to you?
A. ArdCore has been allowing me to figure out a lot of things. First off, I have only
recently begun programming. I was not sure how far I could really go with the Arduino,
what it is capable of. ArdCore has provided me with sketches that I can understand more
as I study them. And from day one they have provided great results.
Q: How difficult was it for you to create your own hardware to run the ArdCore
sketches?
A. I found the process of creating the ArdCore hardware quite easy. All I had to do was
hook up a few op amps, a trimmer, some jacks and a DAC. Compared to building a VCO
or a filter it was quite easy.
Q: This sounds like you are pretty familiar with electronics (as would be implied by your
76
use of a hand-made synthesizer). How difficult do you think it would be for a less
experienced person to build a suitable module?
A: I don’t think it would be too bad. If you compare the ArdCore hardware requirements
to most other Arduino projects, it really isn’t too tough of a project.
At most you need a few pots, some jacks, a few op amps, and a DAC.
Keep in mind; all of my electronics knowledge was self-taught. The first thing I ever
built, I built straight from a schematic and it had far more parts than this!
Q: You've been using the sketches to learn programming yourself. How long have you
been working on programming, and why did you choose this approach?
A. I have been learning to program for, at most, three or four months. Before I found the
ArdCore I was mainly learning out of books and by looking at the forums for Arduino.
This method was nowhere near as beneficial as looking at the ArdCore sketches, testing
them, playing with them, and then asking Darwin questions. I feel that I know a lot more
than I did at the beginning of February when I first found the ArdCore specification.
Q: Do you imagine that you will add to the software that is available for the ArdCore, or
will you just use existing sketches?
A. I hope that as soon as my programming skills are good enough that I will be able to
add sketches. I have already saved quite a few “modified” versions of the sketches.
Modifying the existing sketches has been a good way to teach myself what is going on in
the programs.
Q: How important is it to you that the ArdCore system is open source, and is built off the
open source Arduino platform?
77
A. I think it is very important. I think it will encourage people to add more sketches, and
to form a community around ArdCore.
Q: Developing a community for anything is difficult because there are a lot of ideas
competing for people's attention. Do you think the ArdCore system has a chance of
developing a following?
A: I think one of the really nice things about ArdCore is the way that Darwin has
included a template in addition to the sketches. People in the user community can look to
this for a model of how to do their own sketch and he has provided enough examples that
you can get a clear idea of some places to take the system. I have told a few people about
ArdCore and they were immediately excited by just how many modular synthesis-
specific sketches there were. There really is nothing else like it out there. I think by
starting with so many sketches, Darwin has built in some guaranteed excitement!
A. This is something I am trying to learn more about. I know that using the analogRead
function is a sure way to slow things down and I know there are ways around it like using
BitClear and BitSet. Speed is important for some situations but since Arduino can
understand C, I don’t see it as a big problem.
Q: Are there any issues that you've run across with the ArdCore specification or software
that you wish was different?
A. I would like to see more extensive commenting. I think this is something that could
help people learn. It may come out of more people using ArdCore and adding their own
comments. Since more people may be using these sketches that have little programming
experience, the more information there is the better.
78
Q: Are there any ArdCore sketches that you would like to see? How likely is it that, at
this stage, you could program them yourself?
A. I would like to see an ADSR and more oscillators. I think an ADSR is too advanced
for me at this point so for now I will most likely try to learn to make an oscillator.
Another thing I would like to try and do is combine a few ARDCORE sketches. I feel
like the sky is the limit with this system!!
79
APPENDIX E: AN INTERVIEW WITH GRANT RICHTER
Grant Richter was very helpful in the initial designs of the ArdCore circuitry, and
has been helpful throughout the modular synthesizer community by providing completed
circuits and other designs for DIY use. He is also the creator of the Wiard Synthesizer
Q. Your design of the Wiard Miniwave was the first time I'd seen the use of digital
waveform files within an analog modular system. What made you want to design this
A: After the first generation of music synthesizers which generated waveforms, all of
which were computed in a continuous time/continuous level domain, there was a class of
level form necessary for the technology of the time. Some examples would be the
Ensoniq Mirage and Ensoniq ESQ-1. The musical tambours produced by the quantization
effects and aliasing were unique to that type of instrument and were found to be
musically useful.
The earliest example of this technology appearing in a modular analog format was the
responding analog VCO core clocking a counter which was used to address the address
lines of a digital read-only memory. The difficulty in this type of design is designing an
80
accurately tracking exponential core at ultrasonic and low radio frequency ranges needed
In the early days of analog computing there was a device known as a lookup table,
wherein an input voltage pointed to a stored digital value that was then converted to an
I had the realization that an ascending analog ramp into this lookup table would act
controlled digital oscillator (wavetable) without the over-clocking required by that type
An additional benefit of this was the lookup table with voltage input and voltage output
could be used for non-linear synthesis. Non-linear synthesis starts with a waveform of
low harmonic content and by selective distortion adds harmonic content. This is one of
the least explored of the known synthesis methodologies, and my design provided both
Q. You have experimented with analog computing within sound productions systems.
Could you explain how this works, and how useful you found it?
81
A theoretical set "c" is believed to exist which has a cardinality (number of elements)
Quantum mechanics would suggest that the universe as a whole is quantized, but the
probabilities of quantum events rise in a discrete time period to a continuous function and
therefore this does not contradict the existence of the continuum set called "c". This is
equivalent to the mathematical computing basis of so-called analog computing, and refers
Computers do not have sufficient capacity to store the amount of information generated
by "reality". Therefore, they operate on reduced information sets which are quantized
both time-wise and level-wise. There are audible artifacts produced by the process of
restricting the information of the set. The reason this effect occurs is not completely
The use of computing in the continuous level/continuous time domain does not produce
people consider the musicality to be superior. One could theorize that the reason for the
82
apparent musicality of this method is that it uses the same mathematical basis as acoustic
instruments.
Q. You have been very helpful to me (a beginner) in getting a circuit designed, and you
have been helpful with others over the years. How do you think this has changed modular
synthesizer design? Do you feel like sharing has helped you, hurt you or not affected you.
Musical engineering, or the effort to develop electronic circuitry which possesses musical
engineering, musicianship, acoustics, and physiology. Until very recently it was not
knowledge is a time-honored practice of mentorship, and applies directly to the very wide
83
APPENDIX F: AN INTERVIEW WITH BRIAN CRABTREE
Brian Crabtree and Kelli Cain are the two principals for the company monome,
which creates musical controllers for the performing artist. The way that he developed his
company, the approach he has taken with sustainable development and the openness of
both his hardware and software were all an inspiration when developing the concepts
Q: To begin with, could you describe the monome organization, what you
A: after five years monome continues to be only two people, myself and my wife kelli
cain. we produce an adaptable grid controller which is principally used in music made
with computers.
Q. How did you become interested in making a control device for music creation, and to
what extent did you think that it would be as widely embraced as it has been?
A: in my early days of making electronic music (90's) i went through a lot of commercial
gear, seeking a versatile way to perform live. after discovering max/msp i realized that a
dynamic physical controller was the missing element. a decoupled grid seemed to match
the countless possibilities of the music programming environment, and the journey
began.
84
the idea was very hard to sell. two years later when i had a working prototype it was quite
the opposite-- the performance capability mesmerized audiences. recall around 2004
there weren't a lot of alternative interfaces available. i lent the prototype to my friend
alfred darlington (who goes by daedelus) who promptly went on world tour and achieved
substantial fame. internet video was just appearing, and my early demos quickly filled my
inbox with requests to purchase. kelli and i had been collaborating on mechanical art
installations and were getting better at building things, so we decided to produce a small
edition.
the initial success was sufficient to cover our expenses. it was not instantly adopted as the
use was unclear, the paradigm new and foreign. but acceptance accelerated quickly.
eventually a DIY clone became popular, then larger corporations started noticing the
i'm surprised we've gotten this far, but only because i was so busy and freaked out in the
early days that i didn't even have time to envision where we were going.
Q: One of the things that intrigues me about the monome is that it allows for
idiosyncratic application creation; in fact, each of the programs developed for the
monome has a unique interface/interaction. How is this important for the users of the
monome, and how has it helped with the creation of a supportive community?
85
A: each unique program ends up being a sort of artwork in itself, while also being a tool.
i've become very attentive to tools and how they shape my work. by using some huge
corporation's idea of an instrument, you're subscribing to their idea of what sort of music
or kinds of sound to make. monome devices allow the user to cut to the lowest level of
logical function, which may be at first daunting, but ultimately allows a freedom and
flexibility that encourages what i feel to be the most sincere process of creation.
i think the monome community enjoys the collective exploration. it's encouraging to see
people sharing ideas. it's rewarding for users who share their applications to hear music
the minimal interface encourages tactile, playful applications. most of these inspire a lot
of joy-- i've seen countless videos of community members' kids using the device.
Q: As a business entity, you and Kelli made some radical (at the time) decisions: you
would make the entire framework open-sourced, and would focus on creating an
attractive implementation of the ideal. What led you to make this decision, and how has it
A: the nature of the device required a fairly detailed description of the communication
86
protocol. the best way to show people how to use this was with example applications, and
many of these examples were fully-functional performance tools. i wanted other people
to be able to modify and improve these, in hopes of encouraging the same attitude.
the circuit and firmware included some open-ended auxiliary features (pins to read
encoders, pots, tilt, etc), and some of the early adopters i knew were very tech-savvy, so
open-sourcing the hardware seemed to make sense. i figured if someone were to steal the
design, they'd do it no matter what. i couldn't afford legal expenses. we didn't bother
copyrighting anything. so we gave everything away and hoped it'd create good energy.
the monome community. it's a fundamental part of our business model (though we never
formally planned it), so that i'm not frantically releasing new applications to attract users
or keep existing users interested. it's an avalanche that i helped start, but largely drives
itself now.
Q: Beyond the business aspects of monome, the monome device also seems to represent
your personal design aesthetic. You recently released a new product, the arc, which
shares many of the design and performance aspects of the monome. How important do
A: people respond to good design. details are important. as a dedicated minimalist i try to
87
strip everything away, and whatever remains must approach a sort of perfection. the
blank-slate nature of the design i find liberating and unimposing, and i hope that it invites
users to embrace the surface as their own, rather than simply subscribing to a logo.
Q: One of the things that seemed to catch people's interest when the monome was first
available was the ‘mlr’ application that you designed. Was the program primarily
developed for your performance work, as a demo of the monome - or for some other
reason?
A: mlr was designed for performance and as a compositional tool, just before the
monome prototype was finished. it was instantly clear that mlr was a perfect fit for the
physical grid, allowing me to get my hands inside a max patch like never before. the
visual grid correlation made intuitive sense, improvisation felt completely natural.
i've never really written a patch exclusively as a demo. my method of promotion is to turn
Q: To what extent did you work on community development? Was it an active process, or
were you just the recipient of good luck in this regard? Do you think that a community
can be "generated" (something that seems to be at the heart of a lot of commercial social
88
A: i don't believe a community can be generated. it took a lot of work, and takes a lot of
of positivity (people who know me in real life will confirm that i can be pretty grumpy).
but cynicism aside, some very fantastic things have happened in the community, and it's
Q: What question(s) did I forget to ask that might be important within this context?
A: we're deeply dedicated to sustainable practice. not just using recycled packaging,
either. we acknowledge the great responsibility that comes with the choices we make
regarding materials, sources, and manufacturers. our parts are locally made, at small
companies that we've visited and have good working relationships. the wood we use is
sustainably harvested nearby. we don't operate with bank debt. we're engaging in an
89