Channels ▼

Andrew Koenig

Dr. Dobb's Bloggers

Building a musical instrument from a library

April 26, 2008

My last post (Object-Oriented Musical Instruments) provoked an interesting comment:

Previous to the invention of Modeling in the digital world, if you wanted to invent a new instrument you were stuck using parts of instruments you were already familiar with, with (possibly) modifying said parts slightly - larger, smaller, a bellows for a wind source, an eBow instead of a standard bow, etc.  Isn't much different that an Object Library, is it?

Well, no--it isn't, at least not unless you have access to a good machine shop and know how to use it.  Indeed, even when someone designs a previously unseen instrument, such as those that appear in the Coen brothers' remake of The Ladykillers, it is based on instruments that came before it.

Nevertheless, one can use a suitably well-designed library to build quite a remarkable variety of things.  One need not even go outside the domain of musical instruments to see this fact.  Instead, consider the modular synthesizer.

The basic idea behind these devices is to take individual modules that create or transform audio signals in interesting ways and connect them to make whatever sounds you have in mind.  In practice, of course, what one can imagine is greatly constrained by what the modules can do, which means that learning to interconnect the parts of a modular synthesizer in useful ways is as hard as learning how to play a more traditional musical instrument.

What I find interesting is that in the past few years, processors have become fast enough that it is possible to do a software simulation of a modular synthesizer that is good enough to use as a musical instrument in real time.  Indeed, for the past couple of months, I have started learning to use a commercial synthesizer that is really a software simulation of a modular synthesizer, wrapped in a nice metal cabinet with a piano keyboard and a bunch of dials and displays.

In my next few posts, I'm going to say a few things about my experiences with this device, and try to draw connections to the question of software design in general, with a particular emphasis on libraries.

Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video