Saturday, October 29, 2011

Solaris architecture, part 1: Signal sources and routing

Here's a quick look at the Solaris architecture. At this point, I'm still studying the manual and experimenting with the synth, so my understanding is incomplete and some of what I say here may be subject to correction later. So be aware of that. Nonetheless, here goes.

At first glance, the voice architecture of the Solaris appears to be a basic four-layer setup with conventional oscillator-filter-amplifier chains. However, the routing is far more flexible than that: components can be swapped back and forth between layers, components can appear in more than one layer at a time, and feedback loops between layers are possible. Strange as it may sound, the best way to understand the voice architecture is to start in the middle, with the mixers.

There are four mixers, each of which has four signal inputs and two control inputs. The mixers serve the purpose of combining up to four signal inputs, and also act as VCAs under the control of the two control inputs. On the input side of the mixers are all of the signal sources:
  • Four oscillators
  • One white noise source
  • One pink noise source
  • Two vector processors
  • Two rotors
  • Two AM processors
  • External inputs
  • Four mixer outputs
  • Four VCA outputs
  • Five LFOs
  • Six envelope generators
  • Four lag processors
  • Arpeggiator
  • Step sequencer
  • One envelope follower
  • Velocity and aftertouch
  • Performance devices: Joystick, ribbon controller, assignable buttons, and assignable knobs
  • Expression pedal input jack
  • MIDI continuous controllers
A few things to note here. The first is that mixers can process audio signals, control signals, or any combination. Mixer outputs can in fact be routed as control signals back to various places. The second is that feedback is possible: a mixer's output can be routed back to itself, or to other mixers.

On the output side of the mixers are these signal destinations:
  • Four filters
  • Four insert effects slots
  • Four VCAs
The possible routings on this side of the mixer are: An insert effect can be before or after a filter, and either the filter or the insert effect can be the input to the VCA.

Audio Signal Sources

Let's look at the input sources. The mixers can accept either audio or low frequency sources, but I'll do the audio sources first. The original source of all audio signals within the synth (other than external inputs) is the four oscillators. You can choose from six different implementations for each oscillator. Two of them are analog emulations, a Minimoog and a Curtis VCO (I presume this means the CEM 3340); they offer the same waveforms as the originals. The multimode "MM1" offers all of the standard synth waveforms, plus some continuously morphable waves a la the EML 1o1, proper white noise (computed, not a sample playback), a low-frequency rumbling noise referred to as "S/H", and a supersaw that appears in the display as "Jaws". There's a set of single-cycle waveforms taken from the Prophet VS, a set of wavetables (which can be scanned using the "shape" parameter) from the Waldorf Microwave, and a sample playback mode into which you can load your own samples via the synth's USB interface. An oscillator can accept up to four modulation sources (which can be low or audio frequency, and includes pretty much every signal source in the synth), and each modulation source can be routed to modulate frequency, shape (the effect of which depends on the mode and waveform selected), or linear FM.

The white and pink noise sources do what you expect. Note that they are both computed rather than sampled, which means that they sound the same no matter which note you play, and there is no clocking noise.

The vector processors emulate the vector synthesis method used on the Prophet VS, Korg Wavestation and Yamaha SY77. The vector is basically a four-way mixer, with two sources at each end of an X axis and two more at the ends of a Y axis. (What they don't have is the ability to memorize a manual joystick movement and store it with the patch, which the synths named above do have. However, you could do this via an external sequencer.) By default, the vector inputs are tied to the panel joystick, but you can route any modulation parameter to either axis. The rotors are a variation on the vector synthesis idea: imagine a vector synthesis machine with a motor tied to the joystick, capable of making it move in a circle at audio rates. That's what the rotors do, crossfade between the four sources in a circular pattern. This amounts to a form of audio-rate wave scanning. The rotors track the keyboard (or not, if you switch it off), and otherwise act like oscillators.

The AM processors implement several possible amplitude modulation techniques, with one of the choices being "standard" AM, and another choice being ring modulation. I haven't played with this much yet and I don't yet understand all of the algorithms or parameters. Any signal sources can be selected as the carrier or modulation.

There are six external inputs -- four analog input jacks, and the left and right channels of the SPDIF input. They can be routed to audio and control destinations the same way that internal signal sources can. The mixer outputs can also be routed back to the mixer inputs. The Solaris makes no attempt to prevent feedback loops from being created, and in fact feedback loops can be used in patches.

Filters and Effects

The mixers output to a chain that consists of "enable part" switches, insert effects, filters, VCAs, and effects channels. Signal routing on this side of the mixers is more limited; any signal can be routed to the input of a filter, but the insert FX can only accept input from the mixer or filter of the same number (e.g., insert FX 1 can only accept input from mixer 1 or filter 1); the VCA can only accept input from the insert FX or the filter of the same number, and an FX channel can only accept input from the VCA of the same number, or from another FX channel or external input. (It does appear that clever use of the external outputs and inputs could get around some of these limitations, but I haven't tried that yet.) The "enable part" buttons, when turned off, cut off the output of the corresponding mixer to whatever comes after it, but they do not cut off the mixer from places where it has been routed to a modulation input.

The filters and insert effects come first, and can be placed in either order by means of selecting their respective inputs. (They can also be fed back to the mixer inputs.) The filters, like the oscillators, have several selectable implementations. The "MM1" multimode filter is the most versatile; it is a 4-pole filter that allows a number of pole combinations of low pass, high pass, bandpass, and band reject, in the style of the Oberheim Xpander. The "SSM" type emulates the 4-pole, SSM low pass filter as was implemented in the Rev 2 Prophet-5. The "Mini" type emulates the Moog 4-pole low pass transistor ladder filter, including its distortion and overdrive characteristics. "Obie" emulates the 2-pole filter as was implemented in the Oberheim SEM and other early Oberheim models; it is switchable to low pass, high pass, band pass, or band reject modes. The "Comb" fitler generates a comb-filter response as produced by a flanger or cardboard-tube echo; there are two variants. The "Vocal" filter produces vowel formants, and can be varied between vowel sounds. The insert FX are all waveform modification effects. The "Decimator" reduces the sample rate of the signal; I haven't tried it yet. The "BitChop" is a bit crusher, and there's a soft clipping distortion.

The next bit, I'm a bit confused about. The four VCAs each accept signal input from the corresponding filter or insert FX. There are two modulation inputs, one for level and one for pan, or they can be cut off which leaves the VCA wide open. The reason this doesn't result in an infinite sustain is that, apparently, all of the VCAs sum down to a fifth VCA which is hard-wired to envelope generator 6, and it provides the master control over the output. The effects channels then accept input from the master VCA, or from another FX channel or external input. The reason I say I'm not clear about this is because it's not quite what the manual shows, but I think it's correct, and you'll see why in a moment.

Each FX channel has four FX slots, each of which can hold one effect. The four available effects are the chorus/flanger, phaser, delay, and EQ. (They are all stereo.) The effects are "pooled" such that a given effect can only appear in one slot, in one FX channel, in a patch. Contrary to the manual, these appear to be after the master VCA, and here's why I say that: I played with the delay parameters and found that the maximum delay time is a whopping 20 seconds. And... if you set a long delay and then play some notes, the delay will continue to sound until the echoes die out, long after the master VCA has shut off. Statescape time! (And in fact, I'm already thinking about doing that... have to build a clever patch for it...)

Finally, there are five pairs of stereo output channels, four analog pairs and one SPDIF pair. Each FX channel can be routed to one pair, or the "dry" output of the master VCA can be routed out. This, for example, would let you send a dry output to an external effect, and a chorused output directly to your mixer or DAW.

Finally: I have found what appear to be a few bugs (not unexpected since the OS is version 1.0). I managed to crash the Solaris by twiddling the knobs under the large screen while I was on the second patch-store page (the one where you name the patch). Don't do that. Also, the keyboard velocity does not seem to work, and the aftertouch is odd -- it only outputs values of 0 or 63.

There's a lot more to the architecture; I haven't touched on the modulation sources yet. More in part 2.

No comments: