Waldorf M – INSIDE BITS AND QCOMP TWEAK

Since Till Kopper has such a great website on the Waldorf M, I keep this one brief. In the first half I give a technical analysis of the M voice structure, and in the second half you find a hardware modification for passband level loss compensation for the analogue filter.

SOME BITS AND BOBS INSIDE THE M

The Waldorf M is a wavetable plus analogue backend synthesiser, and this is clearly reflected int the circuit board layout. There’s a Cirrus Logic CS42888 for converting the digital oscillator outputs to the analogue filter and VCAs, and four DAC8586 eight-channel DACs for controlling sound parameters (filter cutoff, filter Q, and VCA L/R).

shoddy pic, sorry

Of course, the VCF-VCA interests me most as its here where a lot of the sound character happens. Apparently, Vladimir, the brains behind this machine, had proposed different kinds of VCF-VCA backends at a prototype stage, and eventually Walldorf opted for the SSI 2144 ladder filter, a remake of the SMM2044 as used in the PPG Wave 2.3, amongst other synths. For VCAs, SSI2164 are used (one for left and one for right, so you get panning for individual voices).

The SSI2164 makes a good clean VCA (I like them in my Prophet 5 Rev4 module too), and is used here in a linearised fashion (see Mick Irvin’s ideas described in detail by Phil Gallo). 

Yet while the SSI2144 is a quite popular a filter, I personally would have preferred a 2140 or at least an option for level loss compensation, so that all sonic beef is retained when resonance goes up. There are well documented ways to achieve the latter (see SSI datasheet, but also Sequential‘s Rev4), but Waldorf went nope (for reasons of space). First I assumed that this could even be delivered by a firmware update, yet someone with all the inside knowledge soon got in touch and explained to me how this would create unwanted artefacts in the sound. So…

TINKERING WITH ANALOGUE QCOMP

A couple of different sounds with QCOMP in place:

Impatient and curious (or crazy), I wanted to see what’s what here in terms of passband level loss compensation. The SSI datasheet describes an elegant (actually two) method for an output compensation scheme. By increasing resonance you increase the filter output level. Curious how an input compensation scheme would work, i.e. increasing resonance also increases filter input level, I somehow ended up with a quick and dirty trick used in old Wah-Wah pedals and the Roland TR909. At first I though this would result in nonsense but was then surprised how well this works here…

What happens: you use a NPN transistor across the resistor attenuating the incoming audio to the filter. The control voltage for opening this transistor is the same that controls the resonance level circuit inside the SSI2144. The effect, then, is that overall resistance/attenuation into the filter is decreased when resonance is increased.

WORDS OF CAUTION: transistors do not really work in a linear fashion and that a sweeter way of doing this would be to use OTA cells, but as stated, oddly, this minimum setup here has been working quite well. The DAC outputs are protected and the control voltage at the q-vca resistor of the 2144 ranges between zero and some +2volts, so no excess/overshoot is to be expected. Note that collector and emitter in the additional NPN transistor are connected in opposite fashion, as this stabilises the circuit (see also comment #1 here). This kind of trick is used in quiet a couple of old circuits, and to be honest, Waldorf’s bare minimum approach kinda tickled me to go minimal style in response.

AUDIO RECORDINGS OF RESULTS

The following clips demonstrate before/after QCOMP modification. The basic sound and chord/line is always the same.

Clip one is just a single note with square wave on one oscillator. The note is held and then resonance puled up and down again. The second pass shows QCOMP.

In the second clip I repeat a three note chord w the same basic sound. Between chords I pull up resonance by a value of 10 (in the end I jump from 110 to 128, *YOLO!*). Then I start again at zero with a second pass that does the same thing, except with QCOMP engaged.

This this clip again does three note chord with resonance being pulled up by a value of 10 – this time, however, you hear before and after side by side, i.e. unmodded and modded audio alternates so that first chord is unmodded, second modded, third unmodded etc.

Visualised this looks like this in terms of levels. Notes marked azure are with QCOMP (and notes marked black are without QCOMP. (Lesser QCOMP value was used here than in the recorded clips above, so the initial level drop on azure notes is less pronounced in the final version). 

Right, that much so far. NB this modification is for private use (and experimental in nature – I hope SSI don’t scold me for this!). In creative commons lingo: the above QCOMP modification is published as CC-BY-SA-NC (maffez, 9 October 2023).

Here are some more musical demos with QCOMP active on each voice:

QCOMP ADDON BOARD

At the start of 2024, a couple more people expressed interest in this, so I started toying around with a concept for a fixed QCOMP mod board. Fixed as in QCOMP is and remains active. (I see more disadvantages in having this as an on/off thing, plus I personally like the QCOMP character).

I made a simple PCB that can serve a 8 voice or a 16 voice M – unused parts are simply not connected. The little extension board is placed near the SD card reader, and connections are made by p2p wiring. The latter has the advantage that you can undo this mod 100& if you ever want to, and it also leaves the main voice circuits fully intact, so no need for complicated surgery.

As for installing one of these, LED man (well known in the DIY community) ofdered to be of service: https://www.diysynth.de/shop_content.php?coID=7 (though they don’t seem to be very responsive…) Alternatively, here are the GERBER files:

NB I do not earn any money by this but expect folks to donate a bit either to Saffron Musik (UK) or the Women‘s Audio Mission. Also, you install this mod at your own risk.