I became interested in music synthesizers in the 1970’s, when Keith Emerson of the rock group Emerson, Lake, and Palmer used the Moog synthesizer on their albums.
I couldn’t afford to buy a Moog synthesizer. In the 1970’s they were as expensive as a new car (they might still be). So I thought I could learn to build a synthesizer. I read the book, “Electron Musical Instruments”, by Norman Crowhurst, and I collected all the circuit diagrams I could find on analog audio oscillators, filters, and voltage-controlled amplifiers.
At the age of 19 I could hardly afford to buy a few electronic IC’s and resistors, let alone to put together a synthesizer. And I didn’t understand analog circuits well enough to build something that works. It wasn’t until years later when I got wise and studied physics that electronic circuits made sense. But by then I was becoming more of a programmer than a circuit designer.
So through the 1970’s I dabbled with oscillator circuits. I still have a hard-on for the Intersil 8038 voltage-controlled oscillator IC, which had a sine, ramp, and square wave output, and could be frequency modulated. These ICs are now obsolete, except for the knock-offs that come from China. I found the PAIA Electronics company which sold synthesizer module kits. Over a period of the next ten years I saved enough pennies to buy several of these kits and build a simple synthesizer like a Mini Moog. But the PAIA was still too expensive for me to build anything usable.
In the 1980’s, while I was a student at UC Davis, a classmate showed me his Yamaha DX7 keyboard synthesizer. The DX7 was radically different from the Moog analog synthesizers. The DX7 was a digital, wave table synthesizer that uses frequency modulation to achive rich audio harmonics. Real-world musical instruments produce a great many harmonics, which for an analog synthesizer would require literally a sine wave oscillator for each harmonic. Frequency modulation is a technique whereby one oscillator (operator) modulates another, and the result is a waveform with an “infinite” number of harmonics.
I could only dream about getting a Yamaha DX7. I finally got one in the 1990’s when they were already obsolete. In the mean time I started leaning digital electronics and frequency modulation. The motivation to understand digital logic well enough to build a synthesizer led me to learn how computer CPUs and operating systems work. Then I found the next best thing to designing a digital logic synthesizer: software for synthesizing music on a PC. I found the Csound software program.
The Csound software was not (at least not then) a real-time synthesis system. You created digital audio files with the PC, then played the audio files through the PC sound adapter. By the way, the first sound adapter cards for the PC were a huge step forward for music synthesis. The digital-to-analog conversion is the most important part of the system, which was now available for cheap. And one of these cards, manufactured by Yamaha, featured a built-in FM synthesizer.
When I found the Csound software in 1999 I began working on programmed music compositions. Csound depends on two kinds of files: a score file, and an “orchestra” file. In the score file you enter the musical notes you want, formated (roughly) as instrument identifiers, pitch numbers, start times, and note durations. For example, the score
This plays instrument 1 at the given start times and pitches. The instrument called instrument 1 must be defined in the “orchestra” file as a superposition of wave tables. With the instrument definition you are on your own to use your knowledge of audio frequency analysis to create the kind of audio tone you want.
The score file format of Csound is obviously too burdensome to be a practical way of scoring a composition. This becomes painfully obvious as soon as you decide to move a few notes in the middle and have to recalculate the start times for all the preceding notes. I designed my own “front end” scripting language, Ascore, for making the scoring more practical. And unless you want only electronic-sounding instruments the orchestra file approach makes it nearly impossible to create something listenable. For this reason Csound has been a tool mainly for academic, avant-garde music composers. And some of this is very interesting. I would draw your attention to the work of the late Lou Cohen.
I was able to take a shortcut to the instrument definition process when I found an orchestra file library called dx72csnd (DX7 to Csound), which modeled some of the instrument patches on the Yamaha DX7 synthesizer for use in Csound. Notwithstanding the DX7 to Csound library, Csound has had some rough edges. The version I used had a primitive, noisey reverb that took hours of trial and error to get close enough to be acceptable. Modern Csound may have fixed this problem.
Ultimately, Csound was just a starting point for me. My scoring front end for Csound gradually morphed into a score tool for MIDI synthesizer composition. But Csound is still worth the effort if you’re interested in pure sound generation. Here is a composition I created in Csound with dx72csnd and Ascore.
A Cat Enters Avalon
Real-sounding instruments are a challenge with Csound, especially a rock drum kit. Acoustic piano sounds are almost as difficult. On the other hand, a believable rock organ is not too hard. Here is another Csound composition I wrote featuring an attempt at instrumental progressive rock.
The creation of real-sounding instruments with Csound is a major effort, if at all achievable. It’s not enough to understand acoustics and harmonic analysis. The electronic synthesizer manufacturers have developed instrument patches for their synthesizer products that are a world above what can be easily achieved with Csound–or, for that matter, with the old analog patch synthesizers. In the modern wave table synthesizers they have created instrument patches by recording acoustic instruments in various ways and combining these audio splices into “sound font.” The rub is that these instruments are expensive. Take, for example, the Yamaha Motif series of instruments. Here is a composition created with my Csound scoring tool, Ascore, but modified to generate MIDI control commands to a Yamaha Motif (ES6) synthesizer–a twenty-year old vintage of synthesizer.