Basimilus Iteritas Magnus#

Analog inspired parametrized digital drum synthesizer

Overview#

Basimilus Iteritas Magnus 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.

Basimilus Iteritas Magnus is the 5U version of Basimilus Iteritas Alter.

Interface#

Illustration of Basimilus Iteritas Magnus's interface

Pitch
An encoder. The default is fine tune so it is hard to knock out of tune. For coarse tuning, press and turn the knob. 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 adjust the decay for all oscillators. The knob offsets the CV input. When fully CW, BIM enters free-running mode.
Morph
The morph knob and CV control the waveform of all oscillators. This blends through sine, triangle, saw, and square continuously. The knob offsets 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 signal 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 offsets the CV input.
Attack
The attack knob and CV input adjust the attack for all oscillators. When left of 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 offsets the CV input.
Harm
The harmonic knob and CV control the harmonic decay of the oscillators. When fully 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 offsets the CV input. Fully left 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 very inharmonic.
Skin/Liquid/Metal (S/L/M)
The mode switch selects between the three modes. Skin is a six-operator additive synth for tonal sounds. Liquid is a six-operator additive synth with a pitch envelope to add extra kick. Metal is a six operator FM synth for producing noisy and alien sounds. This setting can be controlled by CV into the S/L/M jack.
Bass/Alto/Treble (B/A/T)
The range switch offsets the pitch by two octaves in Alto mode and four octaves in Treble mode relative to Bass mode. This setting can be controlled by CV in the B/A/T jack.
Trigger
The trigger input triggers the start of a sound. It is a rising-edge trigger which has a threshold of around 3v.
Hit
Manually triggers Basimilus Iteritas Magnus.
Out
The output is a low-impedance audio source. The output varies significantly based on the parameterization as compensation for loudness occurs.

Tone generation#

Basimilus Iteritas Magnus uses six tonal and one noise oscillator in three configurations to generate sound. The Skin setting is a basic additive synthesizer meant to simulate instruments that have modes that do not interact. Liquid is the same as skin but with a pitch envelope for all oscillators. The first oscillator frequency is determined by the pitch input. The Metal setting modulates the oscillators by each other to simulate instruments that have a lot of modal interaction. 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 a threshold-reflection folder with amplitude compensation and the ability to dynamically add more fold stages. 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 is remains punchy under the most extreme folding.

Simplified synthesis diagram

Variable sample rate#

Basimilus Iteritas Magnus uses a sample rate that is 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 well for settings with a strong harmonic structure (spread fully CW or fully CCW) and adds unique aliasing character for other tones.

Tuning calibration#

Basimilus Iteritas Magnus comes pre-calibrated and should not need adjustment. On the off chance the trimpot gets bumped and needs a tuneup, follow this procedure to calibrate your module.

Pitch calibration is controlled by an 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 V then adjust the 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 is method is preferred to the meter-only method.

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 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 an opportunity 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 parametrization.

The internal signal chain is 8.24 fixed point which is quantized to 16-bit for the DAC (TI 8411). 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. Once advantage of digital folding over analog is that additional sections are essentially free. Basimilus Iteritas adds as many fold sections 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 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.

After two years of Basimilus Iteritas being in the wild, a number of design improvements had become obvious. As part of ongoing engineering improvements we needed to change the CPU board that was used on the original Basimilus and this became an opportunity to do a more in-depth revamp.

The single biggest change was the addition of Liquid mode. Pitch envelopes are a pretty obvious thing to do with something like the Basimilus and a lot of people do it externally. Chris Randall sent me a Neuron to play with which made me very quickly realize how much fun a pitch envelope would be. Within a few hours this was prototyped and was slated for inclusion on the upcoming hardware revision.

A few years later, we had repeated requests to put the module out in large format, and after a little experimenting, and a few prototypes, we had Basilimus Iteritas Magnus.

We hope you have as much fun with BIM as we have had with its journey!

Special thanks#

  • Shawn Jimmerson
  • Christopher Randall
  • William Mathewson
  • Mickey Bakas
  • Tyler Thompson
  • Alex Anderson
  • Noisebug of Pomona, CA