Basimilus Iteritas#

Analog inspired parametrized digital drum synthesizer

Overview#

Basimilus Iteritas is a parameterized digital drum synthesizer with its roots in the analog world. At its heart it is a simple six oscillator additive synthesizer with adjustable waveform, harmonic spread and decay. Adjustable attack including a noise oscillator is also included. These are summed and fed into an infinifolder for crunch and variety.

  • Type: LFSR VCO
  • Size: 12HP Eurorack
  • Depth: 1.5 inches
  • Power: 2x8 Eurorack
  • +12 V: 150 mA (80 mA when using 5 V supply)
  • -12 V: 5 mA
  • 5 V: 90 mA (optional)

Interface#

Illustration of Basimilus Iteritas' interface Illustration of Basimilus Iteritas' interface

Pitch
The pitch knob and CV input adjusts the pitch of the fundamental oscillator. This is a 1v/octave standard input. The knob sums with the CV input.
Decay
The decay knob and CV input adjusts the decay for all oscillators. The knob scales the CV input.
Attack
The attack knob and CV input adjust the attack for all oscillators. When left center noise is added. When dead center a classic analog style pop is produced. When right of center the knob slows the attack. The knob scales the CV input.
Morph
The morph knob and CV control the waveform of all oscillators. This blends through: sine, triangle, saw, and square continuously. The knob scales the CV input.
Fold
The fold knob and CV control the infinifold section. For the first 3/4 of the range this sets the threshold of the folder. This folder will dynamically add multiple fold stages to maximize the amount of folding based on the fold threshold and signail amplitude. When the control is in the top quarter of its range a pulse train based on the signal is mixed in to give even more harmonic content. The knob scales the CV input.
Harmonic

The harmonic knob and CV control the harmonic decay of the oscillators. When full left only one oscillator is audible. This simulates many simple analog bass drums. As the parameter is increased more harmonics blend in lasting longer periods of time. The knob scales the CV input.

Fully CCW the tone produced is a single harmonic tone. From there to the first quarter a second tone fades in. The remaining turning extends first the decays then the amplitudes of the other four harmonics.

Spread
The spread knob and CV control the frequency spacing of the oscillators. This allows the overtone series to vary from a purely harmonic to a very in-harmonic.
Skin/Metal
The Skin/Metal switch changes the algorithm from six oscillator additive (skin) to a six oscillator FM (metal). The metal setting is designed to produce metallic sound such as cymbals and high hats where the skin setting is for more tonal percussion such as bass drums.
Bass/Treble
The Bass/Treble switch offsets the fundamental pitches to move the BI into a range suitable for generating cymbal and high hat sounds.
Trigger
The trigger input the start of a drum sound. It is a rising edge trigger which has a threshold of around 3V.
Hit
The Hit switch allows one to manually trigger Basimilus Iteritas.
Out
The output is a low impedance audio source of about +-9V. The output varies significantly based on the parameterization as compensation for loudness occurs.

Tone generation#

Basimilus Iteritas uses six tonal and one noise oscillator in two configurations to generate sound. The Skin setting is a basic additive synthesizer meant to simulate instruments that have modes that do not interact. The Metal setting modulates the oscillators by each other to simulate instruments that have a lot of modal interaction. The first oscillator frequency is determined by the pitch input. The Spread control adjust the pitch (relative to the base pitch) of the other five oscillators.

Each oscillator has an individual envelope that is controlled by the Attack, Decay, and Harm controls. The noise envelope is also affected by the Attack knob.

The oscillators are summed and then the Attack envelope is applied to the sum. This then feeds into the folder. The folder is a threshold reflection folder with amplitude compensation and the ability to dynamically add more fold stages if another stage would affect the signal. At very high settings the fold will add in an exponentially decaying pulse at the local minima and maxima of the signal to add a gnarly buzz.

The final step is another envelope. This envelope is derived from the overall shape of the six oscillator envelopes. It adds back in the dynamics lost by folding so the output remains punchy under the most extreme folding.

Simplified synthesis diagram

Variable sample rate#

Basimilus Iteritas uses sample rate that varies in hardware be a multiple of the fundamental (lowest) oscillator frequency. This moves alias power that is a multiple of the fundamental to be mapped to a multiple of this tone therefore making the aliasing align with the harmonics of the tone. This works very well for settings with a strong harmonic structure (spread fully CW or fully CCW) and adds unique aliasing character for other tones.

Tuning calibration#

Pitch calibration of Basimilus Iteritas is controlled by a linear resistor divider network. To calibrate the tuning attach a volt meter (preferably 4 or more digit) to the test points TPCV and TPGND on the rear panel and adjust the trim pot.

The voltage measured should be 5/16 (.3125) times the input voltage applied to the CV input. A reasonable way to tune the scale is to use an adjustable voltage source to generate 4 volts then adjust the BI tuning trim until the test points read 1.2500 V.

Basimilus Iteritas can also be tuned using a reference supply capable of generating a 1 V difference and using a stroboscope such as the Peterson 490 to tune to an octave interval. This method is preferred to the meter only method.

Voltage supply#

Basimilus Iteritas can run its processor on the 5 V eurorack power rail to reduce noise and load on the 12 V bus. There are two different versions of the CPU board one which uses a switch to select and one which uses a jumper. For the switch version, gently push the switch tab in the direction of the desired rail to use. For the jumper version, put the jumper from the center pin to the pin marked with the rail that is desired.

Picture of voltage selection switches

Genesis & design Notes#

Basimilus Iteritas started out as something very different than where it ended. I had been reading Stefan Bilbao's "Numerical Sound Synthesis" and was thinking about building a drum simulator out of a set of numerical oscillators. I looked at spectrograms of many kick drums and settled on a one oscillator per drum mode possibly doing adding interesting cross mode interactions.

A few hours into a software prototype convinced me this was not going to be a simple program. Numerical oscillator implementation has a number of practical problems and pitfalls that I was falling deeply into. Taking this difficulty as a reason to reflect, I asked myself, "What would analog do?" I answered "construct a similar sound out of multiple easy to implement elements". This led me directly to a simple wavetable additive architecture with exponential envelopes and noise. Each oscillator is an analog of one mode of a drum. There is a touch of irony as the analog oscillators used in actual analog kicks are actually more closely related to the numerical methods than the additive wavetable architecture that was finally settled on. This new architecture was very suited to parameterization from musical terms rather than the terms that numerical models demand. Even such basic things as pitch can be somewhat tricky with the methods in Bilbao.

The hardware development for Basimilus Iteritas went very smoothly. Only three PCB revisions exist and the last two were almost identical apart from some minor changes to the ADC overvoltage protection.

The CPU daughter-board was developed to be used in a wide range of future modules. It uses the XMOS XS1 processor which is a great blend of flexible, powerful, and affordable. Basimilus Iteritas was written in XC and C using the XMOS IDE. The algorithm was prototyped in C# and C as a windows application to quickly iterate on the parameterization.

The internal signal chain is 8.24 fixed point which is quantized to be 16-bit for the DAC (TI 8411). As discussed before Basimilus Iteritas uses a dynamically adjustable sample rate to help move alias power to be at frequencies related to the fundamental pitch of the drum and therefore be more musical. The oscillators are essentially wavetable though they are evaluated on the fly as this is needed for the Morph knob. They have a period of 65536 samples but are decimated by a different amount depending on the octave of the pitch. The noise generator is a simple linear congruential generator decimated by octave similar to the waveform oscillators. The Metal setting is classic 80's "who cares about aliasing?" frequency modulation in all of its noisy glory.

Analog drums sound awesome in folders so a folder was an obvious add. One advantage of digital folding over analog is that additional sections are essentially free. Basimilus Iteritas adds as many fold secions as will still continue to fold to maximize the amount of produced harmonics. It as well cleanly compensates for the volume changes that occur during folding. The final touch was to re-apply the overall envelope to the signal after the folder which gave back a lot of the dynamics that are lost when folding to produce a kick that still has some percussive umph after being massively folded.

The real complexity of sound comes through the Harm and Spread knobs. Spread is quite simple in the implementation as it adjusts the intervals between the drum modes from the harmonic series to the prime series. Harm is quite a bit more complicated as it adjusts the decays and amplitudes of the oscillators to produce a wide variety of tonal structures. The goal was to be able to produce both one and two tone analogish drums, drums with a lot of modal power that decays quickly and drums that have long decaying modes.

I hope you have as much fun with Basimilus Iteritas as I had designing it!

Special thanks#

  • Kris Kaiser
  • Shawn Jimmerson
  • William Mathewson
  • Mickey Bakas
  • Tyler Thompson
  • Alex Anderson