My hybrid Modular
Digital music electronics offers fantastic possibilities, especially for controlling synthesizers. Digital sounds often lack some kind of sensual factor to me, which is why I prefer analog modules over digital in most cases. The feeling of playing with digital or analog sound creation is very different. Analog sound generators always show an 'individual characteristic' and a mixture of strengths and weaknesses - much like people - and the weaknesses can be extremely charming and decisive! They are what makes a character 'perfect'. With digital sound generators, even with digital emulations of analog devices, on the other hand, there are no weaknesses, only "weak points" - i.e. imperfections in the virtual image. Nevertheless, of course I use a lot of digital sound generation - perhaps rather in the background. Most of the digital stuff I do in MAX (Cycling74). However, using analog sound generators were the reason for the realization of my hybrid instrument.
On this page the control data and their conversion into CV (10V pp Control Voltage) are therefore in the focus. For example, envelopes can be created or complex MPE (MIDI) controllers can be seamlessly integrated into the analog environment. With the release of the Expert Sleepers modules ( Audio-to-CV and CV-to-Audio) in 2012, my experiment of connecting MAX/MSP and a synthesizer finally got a free ride. These modules were the "missing link"!
In order to realize this, the synthesizer must of course be expanded on the hardware side. Indispensable for this are a computer and an audio interface, which at least consists of a SPDIF (digital stereo output). Via this stereo output, an Expert-Sleepers ES-40 (Eurorack module) with 5 associated CV expansion modules can supply a whole 40 CV or Gate outputs separately. I use 32 x CV and 8 X Gate in my Buchla. If the audio interface is larger (as in my case) it's a very good opportunity to realize a multi-channel audio setup.
Since the chosen Modular Synthesizer format (e.g. Eurorack, MOTM, MU, Buchla, etc.) is irrelevant and a matter of personal preferences, I'm mainly writing about the aspects in MAX/MSP here. The Expert-Sleepers modules are only available in Eurorack format - but even that is irrelevant, because almost any format has 10V pp CV. The "pp" means that the range is 10V - so it can be ±5V (so -5V to 5V) as well as 0-10V.
The following video should give a first impression: At the top the used envelope (in MAX) can be seen, next to it are 5 "modules", each for one oscillator. The thick white numbers indicate the MIDI channel from which the control data is received - I'm playing with my RISE keyboard on (MIDI) channel 1 only. At the bottom of the module are the names of the oscillators (in this case "158A", for the first oscillator of the Buchla double oscillator Model 158) and below that is the individual calibration curve, because each oscillator reacts slightly differently to incoming control voltages. This way all oscillators can be brought perfectly "in tune". To the left of the curve is a number representing the CV output of the generated CV values (on the Expert-Sleepers Expansion Module).
In the upper area the two menus can be seen, which determine how the keyboard or "keybed" (RISE) is handled - on the left the trigger behavior and on the right the note priority.
In the center area the transmitted controller parameters can be seen, which are much more extensive on the RISE, an "MPE" controller, than on a regular MIDI keyboard. I use them in the analog domain as Gate (on/off), Pressure (aftertouch), Velocity, Slide (vertical "sliding" on the keys, or "keywaves" of the RISE) and OFF (release speed). Pressure, Velocity, Slide and Off have normal MIDI resolution 0-127 (7 bit). With "important" parameters I usually work with a finer 10 bit resolution (0-1023). The number behind Portamento defines the milliseconds (2 seconds = 2000 ms). The maximum length has no limitation. To the right is Coarse - it is the transposition in semitones - and Fine tuning (± 1 semitone). Next comes the MIDI receive channel and the Pitchbend range (max 48 semitones). The pitchbend is laid out in 14 bit, that is 16384 steps. There are two 7 bit strings as "MSB/LSB" (most significant byte / last significant byte), so on each of the 128 values of the first string there are 128 steps of the second string, so 128 x 128 = 16384 = 14 bit.
The bottom row contains the menu for selecting the oscillator to which the data will be transmitted. With the oscillator selected, the associated calibration curve is automatically loaded. The envelope seen in the video controls the VCA module, which in this case is Buchla's "LoPass Gate Model 292" (instead of the Buchla "Quad Function Generator Model 281" module that holds this task in the regular setup).
The next video shows the three envelopes (of the many) that are looped. Tip: The envelope on the top right is easiest to identify from minute 01.00, as it affects the pitch.
It should be apparent at this point that I could actually remove the "Quad Function Generator Model 281" (or in another format the "Envelope Generator") from the instrument, because the MAX envelopes are not only arbitrarily duplicable, but also quite decisively more complex. In the video the envelope is AADSR (2x Attack!) with changeable levels instead of the simple AD "function curve" of the Model 281. The 281 can also do "a kind of" ADSR, if 2 channels are connected together - in that case, however, only 2 instead of 4 envelopes. Thus, no comparison!
Serge synthesizers are known for their special envelope generators in which the curves are blendable. Here is an example with a "MAX Serge Envelope". Furthermore you can also hear a MAX Formant Filter. Just the two Buchla modules shown are active.
You might also notice that the combination of oscillator and LoPass Gate already provides the characteristic Buchla sound, i.e. the most minimalistic form of an "Electric Music Box". Even the formant filter programmed in MAX does not break the characteristic Buchla sound.
Progression curves can also be implemented very well. Shown here are 4 curves that run simultaneously from the beginning to the end (or vice versa) within a desired time period. Instead of the automated progression, a slider can also be used for positioning. The lower gray bar shows the current position.
For the purpose of editing, the desired curve is brought into the foreground. Horizontal and vertical zooming is provided. At the top right there are 4 menus in which the names of the parameters are (may be) shown.
You can never have enough LFOs! This is a little "stress test" with a MAX LFO that can do anything you might expect from an LFO. Again only two Buchla modules can be heard: again the VCO Model 158 and the "Frequency Shifter Model 285" (as ring modulator).
Classical sequencers are not really my cup of tea, but the following can certainly be considered to be a form of sequencing. I organized "clocked" rhythmic groups, which are connected in tempo via a "Conductor Clock" ("Master") and run a number of "Performer [or Assistant] Clocks" ("Slave") in relation to each other, which access different note lengths. [Master & Slave are two such outdated terms, which I strongly refuse to accept.]
In doing so, I don't start a sequence, but trigger "performer clocks" using the keyboard. This makes it possible to play and does not reduce me to a starter/stopper. Here is another short example:
At this point I feel it would be useful to briefly mention the controller data. The key for the playability of the hybrid modular synth are the controllers. Shown here is the panel for the RISE keyboard, which I programmed myself (as a tab). This is where all the sections, separated from each other, can be set and all incoming and outgoing data can be viewed. The 5 curves are for setting the "5 Dimensions" of the Roli Rise and I have set myself 5 more curves for adjusting the curves to my playing manner (velocities etc.). Easily recognizable is the curve under "Press", which shifts the onset of the pressure curve a bit backwards, so only at more significant pressure begins to read out the upper curve. This way I don't have pressure (aftertouch) data all the time and with each remaining touch, but only when I really want it. And of course I can save different curves as presets in MAX. I am thrilled with the RISE Keyboard. To me it is ideal for playing synths, since I don't want to play the modular synth like a pianist.
In addition to the Roli Rise, I use one or two iPads and a few pedals. The iPads are very good controllers and are well suited for a 10bit controller resolution (0-1023). The computer doesn't need to be in view, but rather serves as a terminal - unobtrusive in the background. More about this can be found on this page under the menu Programming / Control.
The MIDI data generated here will be combined and "housed" in a stereo audio signal, which will be sent as SPDIF (digital) to the Expert Sleepers ES 40 module, and there again separated and routed to one of the 40 CV (or gate) outputs.
This shows the RISE well. In addition to the Buchla, you can also hear a comb filter which I programmed in MAX. Here, too, I find the integration of the digital sound to be just perfect.
An older video - still with Eurorack - in which I had additionally made an iPad screenshot video. Seriously a fantastic controller! In the meantime I have learned to program much more complex setups. You will also find more about this under the Programming menu Programming / Control
Here's a slightly messed up video about the automatic calibration and my Calibration Module - for all 11 Buchla oscillators in my instrument.
This is an audio matrix - to be heard only in stereo, in this example however 5 inputs are switched back and forth to 3 outputs. A matrix like this is a tricky business, because you have to make sure that the last output is switched off before the next one is switched on, otherwise amplifiers or speakers might be destroyed. At this speed it is breathtaking.
Also interesting: Replicate modules!
In the beginning, directly after the launch of the Expert Sleepers modules, I had recreated existing modules (programmed in MAX). Eventually, I had been using modular synthesizers for less than two years - a lot of things were not yet clear to me and it had been a pretty huge change after 30 years with ARP - nor did I have that much money for buying everything I was interested in. Two modules I never owned were the godfathers here: the "Rotating Clock Divider" from 4MS, which I however had extremely enhanced in MAX. You could not only perform simple divisions but also enter arbitrary values as divisors, e.g. in Fibonacci series. In addition, all parameters could be changed by controllers in real time and I had added an endless shift controller. The functions of the original module I had learned from the manual and watching several videos with it.
For the "Richter Noisering", a Random Generator built around a Shift-Register, I even found a block diagram - just what I needed to rebuild it using MAX! Like most shift registers (at least in the Eurorack) it is built around an 8bit chip (256 steps), white noise, two comparators, switches (gates) and an inverter for the "old bit" - and voila! More than one owner of a Noisering module assured me that they could not find differences to the module.
It was an interesting experience discovering that the MAX modules were acting exactly like the hardware modules.
Ein Shift-A Shift Register passes the value of the first digit to the second digit, to the third, etc., as soon as the input value changes. This can be implemented in MAX, for example, as follows:
Example of a 5-digit shift register, which can be used as a gate selector or as a slider value.