Audio crafting #6 – Poly modal impulse resonator synth for Bitwig 2.5

Originally this was just an experiment that got a bit out of hand, but eventually I found the instrument to be so useful to me that I went through the considerable trouble of cleaning it up for release.

You can find the synth in the latest Wündertuete update under the name Poly Modal Impulse Resonator.

I will put this up on my webpage later, and add some sound here too I hope, but for now:

The chain is quite complicated, so a more in-depth explanation is in place.

The basic premise is resonating the input signal with three parallel Resonant Bank modules for a total of 18 narrow peaking filters. This creates harmonically dispersed partials that gives us the sensation of a tuned sound. Another name for this kind of synthesis is modal synthesis.

The effect is split to eight identical layers, and a Note Counter device that modulates the index is used to cycle throught the voices. Notice that out of simultaneous notes only one will play. So for hand programmed block chords and other similar clips a small humanize action will allow all notes to play. Until we get the Grid, this is the best that can be done.

The partials are allowed to bend in pitch, which will allow for quite realistic
physical modelling of sound. Wavetable synths and even most additive synthesisers usually don’t allow the pitch modulation of individual partials. This is a limitation that I wanted to overcome, since if you look at the spectra of acoustic sounds, you will see the partials will often have pitch movement that is unrelated to the fundamental.

Short bit of theory:

Everything we hear could theoretically be reduced to sine waves of different frequency and phase (the position inside one full cycle of vibration) characteristics. We perceive sounds as having a pitch when there is at least one clear narrow frequency peak (called the fundamental), and possibly further peaks placed more or less symmetrically above it. This placement of the frequency peaks is called the harmonic series. Typically the higher partials are progressively more quiet than the fundamental, the speed and envelope of this damping gives different instruments their timbre.

Practically all pitched acoustic instruments produce a series where the overtones are placed in a series that goes F,F*3,F*4,F*5, and so on. So when you pluck a guitar string tuned to 220hz, there will be overtones present at frequencies of 440hz, 660hz, 880hz, 1100hz, etc. Not all overtones are always present, and this relationship will get more chaotic the higher in the harmonic series is observed. There are exceptions to this, namely free metal bars & tubes, where the relationship is a bit different.

The synth allows for free morphing between the frequency characteristics of the typical odd+even harmonics, and free metal bar harmonics. The difference between additive and modal synthesis is that in modal synthesis the outcome only amplifies harmonically what is already in the signal, so for frequencies where there is no energy in the input, no partials are generated. This allows for much more organic sounds than typical additive synthesizers that create the sound only from sinewaves. It allows also to resonate acoustic sounds and other synths for very interesting results.

The parameters:

Affects the speed at which the higher partials decay. Models different materials like wood, metal, etc.

Resonance strength for all partials. Sets the energy in the resonance in the partials. Metallic materials have typically a lot of resonance strength because of low internal damping, for wooden materials short values are suitable.

Attack & Release
The master volume envelope of each voice, after all processing.

Vibrato & Vib Spd
Sets the strength of both frequency modulation of partials, as well as a static formant filter that creates an additional level of tremolo. There are four LFOs that modulate the 18 partials so the effect is not uniform.

A special kind of pitch bend where the fundamentals and the first few harmonics stay (almost) in tune, but the upper partials are progressively more bent. I tried to model the effect of a moving liquid on top of a resonating plate, where the mass of the liquid might not be enough to disturb the movement of the large standing waves, but shorter vibrations would be locally distorted.

Per-voice Peak Limiter

Freq Rnd
Amount of random placement for partials. This is not a feature of acoustic sounds, but can create nevertheless a more dynamic sound.

A RndAmt & A RndRate
Amount and rate of a non-symmetric random movement (a smoothed slow Random modulator) for the amplitude of partials. Four LFOs are used to modulate all 18 partials so the movement is not completely uniform. A crude model of the natural movement in the amplitudes of partials of vibrating objects.

Allows to set the volume of the fundamental frequency or remove it completely.

Imp Dec, Imp Sus & Imp Rel
Amplitude envelope of the impulse. Sharp decays are suitable for woodblock, string, marimba, celeste, etc sounds. Longer decays sound more synthetic. Notice that you can replace the default noise sample with anything, even multi-sampled acoustic voices! In such cases even long sustains and releases might sound natural.

Vel Sens
Velocity sensitivity of the synth

Imp Freq, Filter Env, Filter A & Filter Dec
Frequency, attack, decay and modulation strength of a low-pass filter on the impulse. Can be used to remove high partials in combination with the settings on the first page.


Sets the distribution of the partials. 0% is the normal set of odd and even partials, 100% models the partials of a free metal bar. Values in between produce various results.

More details for those interested:

To produce consonant intervals when playing sounds with unevenly placed partials in 12-tet (twelve tone equal temperament, where the octave is divide into 12 equally spaced semitones. The standard tuning these days that almost everything uses) tuning, a microtonal scale would be required.

The reason is that the current frequency ratios of 2:3, 3:4 and so on that the most consonant intervals (major third, fifth, so on) are based on the inherent properties of the harmonic scale where the first new note in the standard harmonic series is the fifth for example.

William Sethares goes to great length in his mind blowing book “Tuning, Timbre, Spectrum, Scale” to explore this idea. He explains a system where consonant semitone placements inside the octave can be calculated for sound with any harmonic series. You will need a good basic understanding of acoustics to understand his ideas, but I highly recommend the book. It’s the single mind-expanding resource on acoustics I have encountered. Sadly his ideas are still not widely explored and adopted in music technology. Even if you don’t want to compose “xenharmonic” music as he calls it, he opens a very interesting point of view into sound.

Usually microtonal music that uses scales like 19 notes per octave sound dissonant, and that is because it is! The reason is that the harmonic characteristics of most acoustic instruments and synths don’t allow easily the movement of partials, and they mostly produce the N1,2,3,4, etc based series always. So the familiar intervals of thirds etc sound good on them. (fun DIY project: place small bits of blue-tack, glue, wax, etc on strings to change their harmonic series)

One notable exception is gamelan music, where mainly metal instruments are used. To prove the practicality of his theory he shows that in Bali and elsewhere the microtunings are based on the harmonics characteristics of the instruments, thus producing consonant sounds outside the typical harmonic series.

Most importantly: the idea works the other way around too, and his formulae allow to design a consonant harmonic series for any tuning.

Bitwig does not easily allow for microtonal scales, only evenly spaced variations of the 12-tone scale can be easily made. I hope to have time in the future to design a version of this synth that for example allows to play in scales like 19-tet or 21-tet and avoid the unpleasantness typical to microtonal music.

Moves some partials around in mathematically relevant factors. In practice gives another, usually quite mellow variant of the sound. Physically close to impossible effect, but ends up sounding very natural anyway.

Sets the polyphony between 1 and 8. Notice that after a voice has been activated, it will keep using CPU! This is caused by the modulators inside the chains waking up and staying active even though the voices are not used anymore. So for best results set once before playing any notes, and let stay.

You can increase the amount of voices, but the controls only work for the first eight, unless you go through a very, very time consuming process of mapping the macro controls to the new voices too. If you are certain that the sound you need is OK and needs no tweaking, go ahead and: duplicate more layers, set the amount of voices in the Note Counter to reflect this, and increase the modulation amount from it towards the index to the max.

Amount of a dynamic reverb that gets longer with louder signals.

Further ideas:
Duplicate the instrument to a parallel layer, pan suitably, and set at least the “Water” and “Metal” knobs to very slightly different values to create a pleasant beating effect, that is actually close to how gamelan instruments are built, with often two resonating bodies per note to give an interaction instead of individual sound.

Modulate the amplitudes and pitches of partials in wild ways.

Load a multi-sample in the sampler to replace the noise.

Resonate a VST. (this requires capturing and re-inserting the signal at appropriate places with Audio Receivers because of the way I originally built the chain)

Change the keyboard scaling of the Resonant Bank layers for unexpected dissonant octaves with more than 12 tones.

Combine with my “Water Dance” generative preset in Wündertuete if you have the CPU power


The effect is very CPU hungry, I end up bouncing it a lot.


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.