The Model 2 Klee Sequencer

Home

VCA-1
Voltage Controlled Quadrature Function Generator
8038 Audio Generator Project
VCO-1
UD-1 Drum Voice
SN-Voice
XR VCO
Mega Percussive Synthesizer (MPS)
Bass Plus-Plus Drum Voice
The Appendage Ribbon/Touch Controller
Triple Wilson SVVCF
MultiPhase Project Journal
MultiPhase Project
The Mutant Vactrol Filter
Looney Mod For Ray Wilson's Wacky Sound Generator (WSG)
Sundry Items
Dim C/TZF
Construction of the Dim C/TZF
Dim C Finished!
Dual René Schmitz Late MS-20 Filter
The Model 2 Klee Sequencer
Klee Samples
The New and Improved Scott Stites Synth DIY

A Slightly Different Way To Look At Step Sequencing

Q: What is a Klee Sequencer?

A: A Klee Sequencer is a compositional tool that perhaps could be thought of as an almagm of the concept behind (but not the implementation of) the Triadex Muse coupled to a step sequencer. Klee Sequencing relies upon the composer's innate ability to discern patterns of musical worth from a variety of rhythms and pitches produced through a method that is often impossible to predict through interaction with the controls. Often, through manipulation of a single control or switch, the Klee Sequencer can reveal a new direction or approach to an already established Klee Sequence.

Birth of the Klee Sequencer

In March of 2004, I breadboarded a specialized sort of sequencer inspired by Don Buchla's Quantized Random Voltage function in his 266 Source of Uncertainty module and Ken Stone's Gated Comparator.

At the heart of this sequencer was a CD4006 shift register. The CD4006 was configured as a 16 bit shift register. The signal on the fourth, eighth, twelfth and sixteenth bit of this shift register each was buffered and fed to its own pot, each of which was configured as a voltage divder. The outputs of all four pots were summed together to form a stepped voltage.

A random pattern was inserted into the shift register by placing a comparator at the input of the shift register. A fluctuating voltage source (LFO, Noise Source, etc) was applied to the comparator to randomly or pseudo-randomly produce a high or a low at the output of the comparator. While the comparator was fluctuating between both states, it was fed to the input of the shift register. As the shift register was clocked, the comparator would set bit one of the shift register either high or low, depending on the state of the comparator when the shift register was clocked. This process would produce a constantly changing random sixteen bit pattern within the shift register.

An additional switch was used to switch the input of the shift register from the input comparator to the last bit of the shift register. This allowed a randomly acquired bit pattern to be recycled endlessly through the shift register, changing its behavior from unpredictable randomness to a predictable sequence of bits.

As the active bits passed by the 'windows' at the fourth, eighth, twelfth, and sixteenth bit, the pots associated with these bits would produce the voltage that they had been set for. If bit 4 was set for 1V, it would produce 1V when bit 4 went high, if bit 8 was set for .5V, it would produce .5V when bit 8 was high, and so on. The voltages produced by these bits was added, so if bit 1 and bit 8 were high, the output voltage would be 1.5V. Of course, not mentioned here is the fact that bit 12 and bit 16 would also produce their voltages and be added in when bit 12 and bit 16 were high. So, from four pots, a sixteen bit sequence could be programmed.

However, this sequencer was not programmed in the same manner as a 'normal' step sequencer. A 'normal' step sequencer is essentially a shift register that only has one bit active at any time. The voltage set on one step of a step sequencer is not added to any other voltage produced by any other step. Adjusting the voltage for step 1 will affect the sequence only for step 1. This was not the case of this shift register based sequencer.

Because more than one bit can be active at any time, and the voltages set by the pots are actually added together, adjusting the voltage of bit 4 would affect the entire sequence. Back to our example above: If only bit 1 is active, the output voltage is 1 volt. If only bit 8 is active, the output is 0.5V. If bits 4 and 8 are high at the same time, the output voltage is 1.5V. Now, if we set bit 4's voltage to .5 volt, then when bit 4 only is active, the output is 0.5V. If bit 8 only is active, the output is 0.5V. If both bits are active, the output is now 1V.

In my original 'Birth of a Synth' mention of this circuit, I wrote:

"Setting it up to perform a 'sequence' is very different than a step sequencer - it's like molding clay more than anything, because each pot not only affects the level of its bit, it also influences the mixed output level of the other bits when it's high at the same time. It can, however, be a very creative process."

A while later, Romeo Fahl built a sequencer based on this design. He dubbed it the "Klee Sequencer", after the artist Paul Klee. This name immediately stuck in my mind, because Paul Klee's art is beautifully abstract, much like the results of this sequencer, and the name 'Klee' is actually pronounced as 'clay', as in my mention of the process of programming the thing. Thus, the name 'Klee Sequencer' was born.

One final aspect of the Klee Sequencer is that, aside from a stepped voltage pattern, a gate and trigger pattern could be derived from the bits as well. This was a subtle aspect of the first Klee sequencer, but is fully exploited in the Model 2 Klee Sequencer.

Here is a composition, using only the original Klee sequencer as a controller, using the gate outputs it generated as well to control the envelope generator, while the voltage controlled the pitch of the VCO's and cutoff of the filter:

Shift Register Magnum Opus (5.1 MB)

The Klee was a wonderfully powerful little device, in my opinion - for very little panel room, one could have a device that could produce random 16 step patterns from which good usable sequences could be obtained. The main drawback was that once you turned the synth off, any pattern that was stored in it was gone forever. It was possible to sit down and tediously record the on/off state of each LED to get an idea of what the bit pattern was, and I had worked out ways to manually enter patterns, but nothing 'non-tedious' really occurred to me short of creating something much more complex and RAM based.

I played with the Klee for a month or two, and, at some point, disassembled the breadboard to make way for a new project, keeping in mind that I would return to it and flesh it out.

Months passed, then years. On occasion, while going through old CD's, I'd come across recordings I'd made using the Klee and be reminded that it certainly was worth pursuing, but there was always some current project being fiddled with.

In August of 2006, my workspace had become so disorganized that I felt the time had come to stop and take inventory of what I had and attempt to organize things better. I started on my stock of ICs, and while going through them, ran across some CD4034s I had purchased from Hosfelt Electronics years before. As I was counting them and putting them in their little package the thought struck me - here was an ideal IC on which to base a newer version of the Klee upon; a more powerful and controllable Klee - a Super Klee!

The Model 2 Klee Sequencer

After the idea struck me, I started a thread on the Electro-Music forum. It's still there, and, though having slowed down a bit, and can be reached via this link:

Electro-Music Super Klee Thread

It's a very long thread, 17 pages, 416 entries as of this writing. It has slowed to a crawl mainly because everything for the Model 2 is pretty much in the can - except for PC boards. I never have designed PC boards for my projects, but rather build them on various types of prototyping boards. This method is fine for me - no matter how large or daunting the project is, I go ahead and do it. In fact, a wonderful stripboard layout was designed by the wizard of stripboard wizadry himself, Australia's own Andrew Sharp. However, many people would much rather build from printed circuit boards, and this has pretty much stopped the thread in its tracks. I myself fully intend to finish the Model 2, and that's sort of why this page is here to begin with. That, and I thought it would be nice to put everything down on a page without forcing one to trudge through an overly long thread (though more detail may be found in the thread).

The CD4034 and the Model 2 Klee Sequencer

Basing the Model 2 Klee on the CD4034 provides several major advantages over using the CD4006:

* The parallel load capability of the CD4034 provides the ability to program the shift register bit pattern through means other than random input.

* Parallel load provides the ability to easily 'save' a bit pattern on power down.

* The CD4034 provides the output of each bit in the register, which means more than four pots can be used to program the voltage output. The four pots of the original Klee (the post-named 'Model 1') did provide plenty of variation; moreover, having more pots contributing to the stairstep output does increase the complexity of the 'molding the sequence out of clay' analogy, but I've found having more pots does provide quite a bit of variation to the stepped output without becominmg 'uncontrollable', when programming in moderation. One huge avantage to being able to supply one pot per bit output is the fact that the Model 2 Klee can now act like a 'normal' step sequencer - with only one bit programmed into the register, it does just that.

* The CD4034, because it provides one output per bit in the register, provides the opportunity for a more complex gate bus system.

* Using two CD4034s to provide the sixteen step pattern of the Model 1 Klee provides the opportunity to split the pattern up into two eight step patterns.

Programming the Klee Bit Pattern

To keep things relatively simple (har har), I once again avoided the route of storing bit patterns in RAM. The advantage of using RAM would obviously be that a number of different patterns could be stored, but it would add more to the complexity of the circuit, and I wanted to keep that aspect of the Model 2 to as low of a roar as possible. In fact, shortly after working out the details, I noticed all sorts of Kitchen Sinkery that could be injected into the Model 2, but I sidestepped my predilection for such tom-foolery by mentally reserving all of the things that could be added for future models of the Klee.

I opted for combining the programming and 'storage' into one system of switches that would be used to both program the bit pattern and serve as a sort of hardware memory.

Each bit of the shift register (there are actually two shift registers, but that will be covered elsewhere - for now we'll look at it as one sixteen bit register) has a switch associated with it. Above each of these sixteen switches is an LED. In addition to the sixteen switches, there is a momentary load switch.

The pattern is programmed quite simply by setting each bit on or off with its associated switch. Once the switch positions are set, the load switch is pressed, and the data programmed by the switches is transferred into the shift register. The row of LEDs display the pattern in programmed into the shift register. At the point the load switch is pressed, the LED's above the switches in the 'ON' position will illuminate, and the LED's above the the switches in the 'OFF' switches will not illuminate. Each time the shift register is clocked, the LED's will shift right one step. At this point, you are now sequencing.

The original random programming method of the model 1 is preserved in the model 2. An input is provided so that a fluctuating voltage will program the shift register as in the original model. A switch is provided so that the sequence can wrap around or constantly change with the random input.

Back to the shift register - as mentioned in an aside, the sixteen bit shift register is, in actuality, two eight bit shift registers cascaded together. The Model 2 Klee Sequencer emulates the function of the Model 1 by treating both of these shift registers as one shift register. However, it is possible to split sixteen bit shift register and treat the two eight bit shift registers as separate entities, though, in the Model 2, they are still clocked by the same clock signals and both still provide input to the common gate bus (explained later). Each eight bit register can cycle its own content. In fact, it is possible to have one shift register programmed by its associated pattern switches, while the other shift register is programmed by random input.

One other method of truncating the length of the pattern is by either inserting an external load signal pulse into the provided jack or by allowing Gate Bus 1 to load the programmed pattern when Gate Bus 1 goes high. Either of these events will instanteously load the pattern programmed on the register switches, and could be considered analogous to a 'reset' function in a 'normal' sequencer.

Programming the Klee Stairstep Output

As opposed to the four programming pots provided on the Model 1, the Model 2 Klee Sequencer has sixteen programming pots, each assigned to one of the sixteen shift register positions. When a shift register position associated with a particular pot is high, the pot generates its programmed voltage level; when the shift register position for that pot is low, 0V is generated. The voltage levels programmed on each of these pots are summed together to form the stairstep output of the Klee Sequencer.

An important addition to the Model 2 is the ability to set the maximum voltage a programmed pot can generate when its associated shift register position is high. This function serves to help limit the range of a Klee sequence, and also provides an alternate method of progamming the output voltage.

Imagine, for example, each pot is set for 1V - if, for some reason, all bits in the register are high (a pattern that would serve no purpose other than generate a constant voltage level on the output), the voltages would all add up to +16V. In reality, the Klee could not produce this voltage level, as its internal voltage supply goes no higher than +15V. This example serves to illustrate and remind the reader that the voltages programmed on the pots add up. A small amount of voltage programmed on each pot has the potential to produce a much greater voltage on the output of the Klee, depending on the bit density of the pattern. Therefore, limiting the maximum range of the pots is one way to be able to more easily control the progress of "molding the clay" of the Klee Sequencer.

Another advantage to setting the maximum range of the pots is in the 'alternate' method of programming. The 'normal' method of programming is to adjust the position of each pot and listen to the effect on the output voltage. These adjustments are normally made in fine increments. The alternate method of setting a maximum voltage each pot is producing is to set the maximum voltage to some musically significant V/Oct level, such as a fifth or a third, or even an octave, and then using the pots more as switches than as variable resistors - full CCW producing no voltage or full CW contributing the selected interval to the output of the Klee.

The Model 2 designs actually provide three alternative methods for setting the maximum voltage:

Method 1: A rotary switch providing a series of fixed voltages.

Method 2: A rotary switch providing a smaller range of of voltages with a pot to variably increase the voltage.

Method 3: A rotary switch that provides voltages in half step increments in the range of an octave, and a second rotary switch that provides stepped octave adjustments.

In addition to the summed output of all sixteen pots, the Model 2 Klee Sequencer also provides the summed output of the first bank of eight shift register stage pots (Bank A) and the summed output of the second bank of eight shift register stage pots (Bank B). Thus the Model 2 Klee Sequencer provides three unique stairstep voltage outputs.

Each of the three outputs are provided with a linear glide control to provide smooth gliding from value to value.

The Klee Gate Bus

The signals produced by the gate bus are a prime element of the Klee sequence. In fact, I've often thought the gate bus in itself would create a wonderful module.

The gate bus is actually made up of three separate busses. Each bus has two outputs - one output produces trigger signals and the other output produces gate signals. A fourth set of outputs constantly generates trigger and gate signals with each pulse of the sequencer's clock (which is provided by an external signal).

The gate bus is programmed by an additional set of sixteen three position switches. Each switch is associated with a shift register position, just as the pattern programming switches and voltage programming pots.


This functionality is true when the 'Merge' switches are off:

When a switch is placed in the up position, a gate and trigger combination is generated on the Gate Bus 1 output when that register position transitions to a high (IE, when the LED for that position becomes illuminated). The trigger puts out a 1 ms wide pulse on the transition, and the gate stays high for as long as the clock signal is high. If the switch is placed in the center position, the trigger and gate signals are produced on Bus 2 *only if there are no active register steps assigned to Bus 1 or Bus 3*. If the switch is placed in the down position, the gate and trigger signals are produced on Bus 3. Note that, with this arrangement, the on time of the gate is directly proportionate to the on time of the clock signal, allow variation of gate time within a sequence by varying the duty cycle of the clock signal.

Note also the fact that Gate Bus 2 is the NOR output of gate busses 1 and 3. Also note that the number of switches assigned to a bus does not strictly define when and how many times during a sequence repetition the bus will produce its gate and trigger signals (remember, a bus may have more than one active bit assigned to it at any time, but a bus is only capable of producing one set of trigger and gate signals per step). This arrangement,coupled with varying register patterns, produces an astounding variety of rhythmic possibility.

Gate Bus 1, Gate Bus 2, and Gate Bus 3 each have an assigned Merge switch. The Merge switch takes advantage of the fact that, unlike a 'normal' step sequencer, the Model 2 Klee Sequencer can have more than one active stage at a time. The Merge switch allows two or more adjacent active steps to merge together and form one gate and one trigger as they 'pass by' the switch that assigns them to the bus the merge switch is associated with.

Say, for example, bit position 1 and bit position 2 are both programmed as 'high'. Once the clock starts shifting these bits right, they will begin to shift down the row of LEDs (just as one bit shifts right on a 'normal' step sequencer). Now, let's say the switch for the fifth step is switched to Bus 1, and the Bus 1 Merge Switch is on. When the first bit of our two active bits (position 2) shifts into the fifth step, a trigger will be generated and the gate will go high on the Bus 1 trigger and gate outputs. If the Merge switch were off, the gate would go low when the clock went low, but our Merge switch is on, so the gate stays high. Now the clock transitions low then high again, sliding our two bits right - now the first position of our bit pattern slides into step five. The gate signal on Bus 1 will therefore remain high, and a trigger will *not* be generated (much like 'legato' on a keyboard). If our Merge switch had been off, another trigger would have been generated and the gate would have transitioned from low to high again.

This method provides a way to create 'extended' notes in a sequence as well as provide dramatic timing varation for a given shift register and gate bus switch program. Note that when the Merge switch for a bus is on, the gate will always stay high for as long as the associated bit is high, and will not transition low when the clock goes low.