> Hi Tom,
>
>> Can you tell us more? These are modelled rather than sampled sounds? What is the sound engine doing?
>
> Yeah sure. All of the sounds are synthesised at 48kHz 16-bit in real-time by modelling algorithms running on the DSP. There are no samples, just 16 individual instrument algorithms. These model the TR-808's sounds plus a tambourine, laser-zap and finger snap sounds that I added. The additional sounds are virtual analogue models that I like to think represent what a tambourine and finger snap would have sounded like had Roland chosen to also implement these in analogue technology! The new sound models were tweaked to sit well creatively with the original TR-808 sounds in compositions. They were also added to bring the instrument count up to a nice round 16, and because there were a handfull of DSP cycles left after covering the intended TR-808 sounds
>
> The development of the actual DSP modelling algorithms can get quite deep, as i've been working on them for nearly 16 years! It's sufficient to say that each of the TR-808's sound synthesis circuits is broken down into its constituent parts and these are then modelled digitally. For instance, the classic sound of the hi-hats is produced by 6 pulse oscillators with duty ratio about 0.45 mixed together, filtered by a bandpass filter, heavily clipped, fed through a VCA, and then finally aggressively high-pass filtered. The DSP model really just consists of digital versions of these functional blocks connected in the same order. At each point in the signal chain you do A/B sound comparisons with the real TR-808s until the digital outputs from each block match those of the analogue circuitry. So first you get each oscillator to sound right on it's own, then you see if the mix sounds right, then compare the filtered mixes, then compare the clipped filtered mixes, etc, etc, u
ntil the final outputs are indestinquishable.
>
> The DSP firmware tends to model the behaviour and interaction of functional blocks like VCFs, VCAs, Envs etc, rather than actually modelling the characteristics of any individual components. However, there are instances where i've pulled transistors from the TR-808 (and ordered Japan Radio NOS from Tokyo) to put on the curve tracer in order to get things like clipping and saturation curves right. For instance the TR-808 Rimshot circuit is quite critical and the clipping curve is modelled digitally via polynomial approximation. MATLAB is a tool that I used extensively for filter design, curve fitting, etc.
>
> There are over 110 functional blocks running in the sound synthesis section of the code. These being things like noise sources, envelope generators, oscillators, 1st and 2nd order filters, VCAs, clippers etc. Half of the filters are probably implemented as Direct Form-1 IIR biquads and the other half being implemented as Modified Chamberlain State Variable Filters. The choice really comes down to what is best and most efficient for the application. The sound synthesis algorithms take up about 90% of the CPU resources, with the remainder being used for stereo sound mixing, the step-sequencer, user interface and MIDI comms.
>
> The neat thing about the DSP models is that you only make them as complicated as you need to in order to nail each sound. So you might start off with a basic textbook 2-pole lowpass IIR filter and then progressively add more parameters and more complexity until you have enough things you can twiddle in order to get the sound just right. The DSP model also gives you the flexibility to mess about with any of the parameters to your heart's content. So you can easily tweak the decay time of the snare drum, or the cutoff frequency of the hand-clap filter, or the beating of the Cowbells two detuned oscillators.
>
> I'll bring this along to Cambridge, and might put up a website with more info if there's more interest.
>
> Cheers,
>
> -Richie,
>