Tom Wiltshire’s Electric Druid Synth DIY pages

Electric Druid Synth DIY pages.

“I’ve finally got around to something that has been a dream for a long while – building my own synthesizer… So far, I’ve managed to write firmware for two devices, a voltage-controlled LFO and a voltage-controlled ADSR envelope generator, modelled on the CEM 3312 and SSM2056.”

I have a love/hate relationship with sites like these. On one hand, the material is fascinating, and I gain a lot of insight on various ways to approach instrument design in Csound. On the other hand, I sooo wish I had the time to hone my soldering iron skills and learn to program for a microcontroller. There must be something entirely satisfying with the hands on approach.

Link via Matrixsynth.

Modular Instruments Part II

The Csound Blog
Issue #10

In the previous blog, “Modular Instruments“, I presented an instrument design model that takes advantage of Csound’s modular nature by breaking the common instrument structure apart into three elements: Synth Engine, Memory and Interface. (SEMI)

In todays blog, I create a new synth named MonoSynth based on the original SEMI Simple synth by replacing the zak memory with a memory core based on the chn opcodes, extending functionality of the engine, introducing modulation parameters, and by incorporating a method that links instances of instruments into an audio chain from within the score.

Topics:

  • Modular Design
  • chn
  • Memory
  • Signal Routing
  • Modulation Instruments

More at The Csound Blog. For more information about Csound, please visit cSounds.com.

Modular Instruments

The Csound Blog
Issue #9

When designing a virtual instrument in csound, the easiest approach is to create a single self-contained instr. Within this instr, any number of opcodes can be arranged in a near-infinite number of combinations. Each instance of the instr manages its own local memory space/variables/signals. Users customize the interface of the instr by utilizing p-fields.

With this fundamental model of instrument design, it is already apparent that Csound excels in terms of modularity. However, there are many other approaches that expand this concept even further.

Topics:

  • Modular Design
  • Interface
  • Memory
  • Synth Engine
  • Control Instruments
  • Zak
  • Macros

More at The Csound Blog. For more information about Csound, please visit cSounds.com.

Csound for Newbies

I want to share with you a promising new site called Csound for Newbies.

“The purpose of this site is to help the feckless, the despondent, the hopeless and the overwhelmed musician, programmer, and/or composer who wants to learn about the Csound audio and music software system.”

I have no clue as to who runs this site. Though it appears we share the common goal of helping those who wish to learn more about the language. Csound is cursed with an initially steep learning curve, and it’s great to see a blog dedicated to addressing this issue.

Synth Secrets @ Sound On Sound

At any given moment, I have at least four synthesis/audio books sitting on my desk for quick reference. Sometimes up to eleven. However, there are only a handful of websites I consider to be true tomes of synthesis knowledge. One of these is Sound On Sound’s Synth Secrets.

Here is a sample of topics you will find there:

Envelopes
Gates
Triggers
Filters
Sample and Hold
Vocoders
Formant Synthesis
Drums
Strings
Organs
and much more…

My Sine Oscillator Experiment

Over the weekend, I recorded/generated four sine waves of different synthesizer modules and compared the results. Each of the four oscillators are tuned to approximately to 440Hz, close enough to get a sense of each wave shape.

This is a very casual observation of contour and contour only, so please do not read too much into my findings. Here are the results:

Csound Digital Oscillator

This first graph shows a digital sine wave generated within the computer music language Csound. This is what I used as my test reference. Being that this is a purely mathematical construct, I figured this would be the perfect wave to compare against its analog counterparts.

Doepfer A-110 Standard VCO

Upon casual observation, you may notice that the sine isn’t the most accurate in the world. In fact, you might go as far to say this isn’t a sine wave at all. One noticable feature of this oscillator is that little glitch you see at 90ยบ. This is consistent among every cycle at the stated frequency. I have two of these modules, and there were no significant differences when compared to each other.

Now it might sound like I’m completely down on this module. The truth is, I’m actually quite happy with this dirtiness of this unit, as it adds character. It is sometimes the imperfections that make something great.

Plan B Model 15

This unit has the smoothest contour of the three analog examples. Though the shape doesn’t adhere completely to the perfectly generated Csound test reference, it certainly gets close. The peak and the dip seem to be a bit rounder, almost as if they are slightly compressed.

Cwejman D-LFO

Now, I must say that it probably isn’t fair that I’m comparing a device designed specifically for low frequencies. With that being said, the contour fared noticeably better than the Doepfer. You might notice that the peak and the dip are both a little on the sharp side. The D-LFO comes with two oscillators, both of which I tested. I found both to be consistent with one another.

All Examples Compared

For fun, I thought it would be nice to superimpose each example over one another so we can better observe how much variation can exist between sine wave oscillators.

Other Variables in the Equation

Since I recorded the three analog signals, there were at least two extra variables that may have introduced distortion to the resulting wave shapes. The first would be the recording device, an Apogee Ensemble with the soft limit feature set to off. The second is the cable. I used the same cable for all the recordings. I always patched directly from the sine wave outputs to the Ensemble input.

I did go the extra step and recorded the Csound sine wave with the Ensemble and cable. I found there were no significant differences, in terms of contour, between the original generated wave and the recorded version.

My Methods

Last, I want to share the methods I used to collect and present the data. I recorded the three analog signals with the Apogee Ensemble, and with the software Peak. I took screen captures of peak, and then processed them in Photoshop. In Photoshop, I removed the dotted zero line, and replaced it with a solid line. I also resized each image so the waves would have matching periods. Though I compressed the width of each waveform, the contours of the waves were not affected.

And like I said, this experiment is just the casual observations of one guy, and completely non-scientific.

Drum Sequencer Event Generator

The Csound Blog
Issue #8

Getting lost within a list of instrument events is sometimes less desirable than being able to place events on a grid or lattice. This is especially true when working with rhythms. I’m a firm believer that the interface influences the compositional process. This is why I’ve begun development on dseq, an instrument that allows me to input drum patterns in a manner that is much more user-friendly.

Topics:

  • Strings
  • Drums
  • Sequencer
  • Event Generators

More at The Csound Blog. For more information about Csound, please visit cSounds.com.

Poor Little Robot

Poor Little Robot” is a piece of music orchestrated for Banjo and Csound Theremin. And I absolutely love it!!

Composer Joseph Sanger wrote the following description to the Csound mailing list:

I have just posted an mp3 on my myspace site which uses Csound in a small way and wanted to share it. It’s not particularly highbrow but you might find it amusing, it’s a rather poignant duet for Banjo and Theremin. I modelled the theremin in Csound (not complicated) and played it with a MIDI keyboard, recording it live into Ardour via Jack, so no Csound score exists.

A Micro Intro to Macros

The Csound Blog
Issue #7

“I’m continuing with what I started in the last blog ‘Adding Zak to the Mix.’ As promised, I’m breaking down the zak mixer into its respective modular components, beginning with Csound macros.”

Topics covered:

  • Macros
  • #define
  • #include

More at The Csound Blog. For more information about Csound, please visit cSounds.com.