| Author |
Message |
davebr

Joined: Jun 09, 2007 Posts: 198 Location: portland, or
|
Posted: Sun Jan 18, 2009 3:12 pm Post subject:
Software Klee Sequencer implementation Subject description: Implementing Klee functionality on a ComputerVoltageSource module |
 |
|
I decided to prototype a Klee sequencer in software on my ComputerVoltageSource module. I've implemented the basic shift register functionality for the 16 bit mode using a random number generator to define the input for the first stage of the shift register. I also implemented dual 8 bit shift registers with the ability to divide the clock to each shift register independently.
I implemented an auto-scale function which reads the 16 knobs and calculates a gain factor so the output will always scale over 10 volts. Then I use a range factor to scale the output over the desired number of octaves (1-9) and add an octave offset (0 to 9 limited by the range) and quantize the output. The LCD shows the range, offset, note number (e.g. D4#), and the shift register bits.
The auto-scale function works pretty well. As you change the settings of the individual knobs it gives you different note intervals within the same overall note range. The number of active knobs changes the number of discrete notes but again within the same overall note range. I'm going to add MIDI output and will have the sequencer change the instrument type per the sequence. I haven't quite decided on how to best do that.
I need to add the gate and trigger functions and will use a numeric keypad to enter the basic pattern. I need to study the Klee some more to figure out exactly how the gate generator functions.
I'll play with this as I have time and see how much I can implement and where it evolves.
Dave
 Last edited by davebr on Sun Jan 25, 2009 4:31 pm; edited 1 time in total |
|
|
Back to top
|
|
 |
janvanvolt

Joined: Nov 24, 2005 Posts: 285 Location: Mainz, Germany
|
Posted: Wed Jan 21, 2009 8:09 am Post subject:
Re: Software Klee Sequencer implementation Subject description: Implementing Klee functionality on a ComputerVoltageSource module |
 |
|
Hi Dave,
since i got a klee and a CVS, will you share the CVS code with me ? _________________ Homepage - http://www.czmok.de
My dIY - http://diy.czmok.de
Film/Music - http://gfm.me |
|
|
Back to top
|
|
 |
davebr

Joined: Jun 09, 2007 Posts: 198 Location: portland, or
|
Posted: Wed Jan 21, 2009 8:47 pm Post subject:
Klee Software Subject description: CVS Code |
 |
|
| Sure. I can't find your email address on any of your sites. Send me an email and I'll email you the code I have. My email is on my page http://modularsynthesis.com/ |
|
|
Back to top
|
|
 |
EdisonRex
Site Admin

Joined: Mar 07, 2007 Posts: 4579 Location: London, UK
Audio files: 172
|
Posted: Thu Jan 22, 2009 2:35 am Post subject:
|
 |
|
Dave, have you caught up on the gate bus logic? Conceptually it's actually rather simple, and from the point of the CVS (something I've been reading a lot about on your site btw) I don't think it would be that hard to do either.
All that's happening in the gate bus is that as the pattern steps through, the gate is enabled and routed to one of the 3 gate busses. One gate bus will always be selected. In the Klee there is no onboard selection of more than one gate bus at a time in the switches (other than via the master) nor is there a concept of "rest" (other than the obvious, ie choose a gate bus for the resting and don't use it!) That's not to say you can't mix gate bus outputs further down the chain, but it's just not implemented in the Klee rev 2 hardware (except the aforementioned master gate which is the logical OR of all three gate busses).
How would you go about implementing the live performance features of the Klee on the CVS? IMO the ability to load patterns and swap gate busses on the fly is important. _________________ Garret: It's so retro.
EGM: What does retro mean to you?
Parker: Like, old and outdated.
Home,My Studio,and another view |
|
|
Back to top
|
|
 |
davebr

Joined: Jun 09, 2007 Posts: 198 Location: portland, or
|
Posted: Thu Jan 22, 2009 8:31 am Post subject:
Software Klee Subject description: Gate Bus |
 |
|
No, I haven't spent any more time on it. For my sequencer, I have two gate outputs and I enter the values for each step using the LCD. All of that functionality is in the software so it would be easy to expand it.
For real-time, you would need more switches. I designed a simple I/O expansion board that provides 16 addtional digital and 16 additional analog inputs.
http://www.modularsynthesis.com/i2c-exp/i2c-exp.htm
One could easily add this and read the switches in real time for control. I won't go to that route but someday I should build an external module with the controls and switches.
Right now I'm just experimenting with this. I wrote some software some time ago that is pretty similar and my most used program. I implemented four counters of arbitrary length. The default (I think) is /4, /5, /6, and /7. I took the output of each counter, attenuated it through a potentiometer, and summed and scaled it for the output. I also quantize it and generate a MIDI output as well. That gave me very nice repeating sequences. I used the start and stop switches to extend the sequences (I don't remember how). You set the counters and adjust the controls until you get a pattern you like. I'm not sure the Klee will be that much different. I will be adding MIDI and setup using the LCD to the program.
| EdisonRex wrote: | | Dave, have you caught up on the gate bus logic? Conceptually it's actually rather simple, and from the point of the CVS (something I've been reading a lot about on your site btw) I don't think it would be that hard to do either. All that's happening in the gate bus is that as the pattern steps through, the gate is enabled and routed to one of the 3 gate busses. |
|
|
|
Back to top
|
|
 |
davebr

Joined: Jun 09, 2007 Posts: 198 Location: portland, or
|
Posted: Sun Jan 25, 2009 1:09 pm Post subject:
Software Klee Subject description: Program and sample |
 |
|
I've had a couple of requests for my code. Rather than keeping track and sending out revisions I put the development program on my programs page.
This morning I added gate, trigger, and MIDI functionality along with the beginnings of a setup menu. This isn't a faithful replication of a Klee but has evolved and is more inspired by it.
The program now consists of single 16 bit shift register or dual 8 bit shift registers. In dual shift register mode the lower shift register is clocked at half rate. I use a random function to set the lower bit of the shift registers. There are three CV outputs (16 bits, high 8 bits, low 8 bits) corresponding to bits in the shift register attenuated by the corresponding front panel control, auto-scaled, quantized, ranged, and offset to provide a narrower range of CV outputs. There are three gate outputs corresponding to the three CV outputs generated by comparing the shift register with a gate mask. There are two trigger outputs corresponding to the clock and half clock rate. MIDI notes corresponding to the 16 bit CV output is sent along with a program change corresponding to the lower 6 bits of the high byte of the shift register. The LCD menu selects the gate mask and MIDI offset.
This program is on my page at http://modularsynthesis.com/programs/programs.htm
I made a quick sample of the program. It is a very simple patch consisting of the sequencer in dual 8 bit mode driving two VCOs and a MIDI synth. The VCOs are each driven by the 8 bit shift registers. Their output is mixed through a VCF and VCA controlled by the gate output with a slight bit of lag. The output is mixed with the MIDI synth and separated in my FFB into a right and left channel. There is a bit of spring reverb on the output.
The sample is on my page at http://modularsynthesis.com/samples/samples.htm
Comments welcome. - Dave |
|
|
Back to top
|
|
 |
|