Internally, the channels actually process data for each clock cycle in a series of phases. The following diagram illustrates the Husserl structure at a high level.

Sequencer Channel Architecture


The easiest way to understand this is to consider an example.

Dataflow Example

Here is how Husserl handles a snapshot configuration where the clock triggers channel 1, and notes from channel 1 trigger channel 2.

  1. Upon receiving a clock pulse, channel 1 divides it down and if it's time, advances the beat filter. If the beat filter step is on, the pattern advances. At the end of the pattern, the bar sequence may also advance. The trigger then passes through the matrix to channel 2.
  2. The second channel performs the same activities to generate modulations, which are then passed to all other channels, including the one that triggered it. So for example, pitch values from channel 2 can change channel 1 in the same step, even though channel 1 actually triggered channel 2.
  3. When all triggers have completed processing, each channel adds up the modulations it has received from other channels. Then, and only after that, the notes from all triggers in the clock phase are output, all at the same time.
  4. The notes then pass into separate voice allocators: one for the on-screen display, 16 for the 16 MIDI output channels, and 4 for other instruments in the Reaktor ensemble. Each voice allocator maintains its own polyphony, with solo and mute applied across all 20 instrument outputs.

There are many other possibilities. MIDI can also trigger channels, as well as the clock. Triggered channels can themselves trigger other channels too. For example, low MIDI notes could step channel 2, which trigger channels 3, 4 and 5. High MIDI notes could trigger channel 6, which itself triggers channels 7, 8 and 9. Thus the combined channels can provide complex rhythmic and melodic responses for real-time performance.

Intermodulation Details

Perhaps the most unique facet of Husserl is its built-in intermodulation. The design is intuitive and flexible; generally, when you set a modulation, it occurs where you expect. Conversely, if you don't want a modulation, you can stop it from happening. For example, Husserl separates triggers and gates from pitch, velocity, and duration information. If you want one sequencer to trigger another, but not change the note pitch, you can leave the pitch modulation off. If you want a sequence to modulate another's pitch, but not trigger it, you can set the pitch modulation without a trigger. And if you want a note to modulate the note which triggered it, you can do that too.

In Husserl, pattern steps can do more than simply trigger or gate another pattern step. Multiple patterns can also gate a clocked sequence polyphonically, or trigger entire fugues of chords running concurrently. Simultaneously, patterns can modulate each other without triggering them. To do so, Husserl internally handles notes from modulation and trigger sources differently, while providing a consistent and simple interface for both.

For example, if a trigger starts a fugue, and it also modulates the fugue's pitch, then all the notes in the fugue are transposed by the trigger note's pitch, but not by other notes from the same sequencer. Other notes from the same trigger source start other fugues, which are transposed separately. So, if the trigger sequence is C3, C4, C5, then triggers start consecutive fugues that differ in pitch from the previous one by an octave, and the single-octave transposition remains for all notes in the entire length of each fugue separately, even if the fugues overlap.

At the same time, other sequencers can modulate the fugue pitch but not trigger the fugue itself. In that case, the fugue sequencer samples the pitch from the modulation source each time a note plays, in every single sequence. It then applies that transposition to all fugue notes, no matter when or who triggered them, until it receives a different pitch from the modulation source. Now in writing, that is quite difficult to explain, and probably difficult to understand. But when the result is heard, it sounds intuitively correct.

In terms of musical control, a matrix of over 1,000 pins interconnects 16 sequencers. But each sequencer's panel contains just its own trigger and modulation sources, keeping the interface simple; and in the global panels, all the interconnections are accessible on one unified view, with lights to indicate trigger firings. So the complexity is contained, but totally accessible.

Intermodulation can occur not only in fugues, but also in polyphonic layered and stepped sequences, in exactly the same way. If pitch modulation is not turned on, then the trigger source advances the step or gates the layer, but the trigger's pitch does not affect the step or layer pitch. If pitch modulation is turned on for the trigger source, then the trigger source's pitch applies to that step, or to that layer, but not to other steps or layers from the same sequencer. However, if a third sequencer is modulating pitch, but not triggering the step or layer, then the third sequencer's pitch affects all notes on the triggered step or layer until the third sequencer changes pitch, or the modulation is deactivated.

And just so, as for pitch modulation, so also for velocity and duration modulation. Husserl contains complex logic to distinguish multiple modulations from different sequencer sources, and depending on whether they are triggers or not, handles the modulations differently. But the end result is an intuitive sound, exactly as one expects, within a single, simple, unified, and prebuilt interface.

Reflective Modulation

Modular designers are well familiar with timing and synchronization problems. In Husserl, the modularity is built in, so the most complex timing and synchronization is already pre-assembled for you. With the embedded modulation matrix architecture, all notes can modulate all others--even notes which triggered them--which is a very difficult level of synchronization to achieve, even with dedicated hardware.

In the above example for instance, a fugue can modulate the pitch of the sequence which triggered it, while simultaneously being modulated by other sequences. By varying the tempo and timing of the fugue and other sequences, and muting a few modulation sources, this creates rich melodies which sound deep, yet not random. Our ears pick out the hidden ordered relationships between the notes, but obscured by unknown layers of patterns, we are uncertain exactly what the relationship actually is. The effect is independent of music genre--the melody can be in a rock beat, or in a slow ambience, or in a jazz piece, or in the slow movement of classical strings, or in a fast paced electronica trancescape, and the same fascination results. With just three or four sequences, Husserl mysteriously makes its own melodies to enchant composers, musicians, and audience alike. And there are 16 sequencers, and many other ways to massage the sound.

User Interface

To provide rapid access to any panel control with just a few clicks, Husserl has two panelsets, arranged as A and B panels.

The panels provide different views in different slices. The A view integrates all the controls for each sequencer channel in one simple panel. The B view contains cross-sections of specific functions across all sequencers: snap data, modulation matrices, I/O configuration, and pitch maps.

Later sections describe the panelsets in detail.