This space given up to GeoCities quest to bore.

You should not normally see this.

 

 

 


HdK Synthesis Tips

Generating MIDI Synched LFOs
 

 


Generating MIDI Synched LFOs

BACKGROUND
For those of you who like to start up some arpeggio and tweak knobs for effect, this tip may prove useful. In this tip, I'll explain how to make a CC# LFO that is synched to the MIDI clock using typical hardware. I find this technique useful for maintaining slow evolving movements in the sound, that would normally require a hand for knob tweaking, while I use my two hands for something else. People who sequence entire songs on computers will find little value in this technique because it is oriented towards real-time playing.

More recent synths (the E-Mu Audity2000 for example), have had the addition of MIDI synched LFOs that can have their period set to four measures (again, for example) and assigned to, perhaps, cutoff frequency. This makes a cool effect with arpeggios or trance-like patterns. This MIDI synched LFO is what I wanted without having to buy additional equipment.

STEPS TO REALIZATION
In order to make your own MIDI synched LFO, there are really only a few steps to take. Create the data, synch the data, modify the data, merge the data, use the data. To illustrate these steps I'll have to use examples I am familiar with, which will expose my low grade equipment.

Create the data
I used a computer to create a series of CC data to simulate an LFO waveform. In my case, this means Cakewalk 3.0 on a 486. I started out with something real simple, like triangle waves. I created four waveforms to test the waters. These waveforms had periods of 1-measure, 2-measures, 4-measures, and 8-measures as shown in figure 1.

figure 1

In my case, I wanted very generic data, so I arbitrarily chose channel 16 CC#50. Why 16 and 50? Well, why not. To fulfill my desire to have generic waves, I had the data swing from 0 to 127. Anyway, once the waves of CC data are created on the computer, I downloaded them to an MMT-8 sequencer. Since the longest pattern is 8 measures long, I had to repeat the other patterns to fill out the equivalent space. With data stretching from 0 to 127, an 8-measure triangle wave will require 256 events while eight measures of a 1-measure wave will require 2048 events. The four waves described here will then require a total of 3840 events. Some data thinning may be in order for the shorter period waveforms.

Synch the data
Once the MMT-8 was four tracks loaded with CC waveforms (each with a different frequency), I could then sync it to my sequencer I use for note data, the MC-303 (hey, please don't laugh). The MC-303 is routed to a Prophecy to play the notes (temporarily) and to the MMT-8 to make it spit out CC data in sync. Changing the MC-303 tempo changes the LFO data rate to stay synchronized with the notes.

Modify the data
Next step is to modify the generic template data coming from the MMT-8 before it is usable by the Prophecy. First off and foremost, the data ranging from 0 to 127 is not too usable for filter cutoff or conceivable other uses. Except for panning, then the full range may be useful. For real-time data manipulation, I know of no better processor than the MEP4. For what I wanted, I used a multiplication factor of 0.25 and then followed that with an offset of around 13. This is where the generic template is tailored to the particular use, so experimentation is required for each application. The last bit of processing changed the CC# from 50 to the desired 18. I could have just as easily changed the Prophecy assignments of its knobs to match the data stream. But, I felt it would be easier to modify the processor to change functions rather than reassign knobs every time I wanted to try something different. The last function of the MEP4 is to assign a MIDI channel to the data, and this time I made it match the channel used for notes coming out of the MC-303.

Merge the data
By now I've got two sources of data, the MC-303 with note info and the MEP4 with LFO info. I then merged these two steams with a Synapse to combine everything onto one cable. This then drove the Prophecy. There's not much more you can say about merging. A diagram of the hardware connections is shown in figure 2.

figure 2

Use the data
Now comes the acid test. Does this indeed work? It does, and how. The Prophecy shows knob position on its LCD screen and it was gratifying to see it move left and right with the music. Changing selected tracks on the MMT-8 indeed changes the speed of the LFO. Finally I had a MIDI synchable LFO that could be assigned to any function. An unexpected surprise was to select two tracks on the MMT-8 simultaneously. When the two waveform's data was close to each other in value, there is not much change or effect. But, as the programmed values diverged, an interesting "FM" filter effect was created. Then the waveforms would converge again resulting in no "FMing".

GOING FURTHER
The next step would be to create more waveforms like ramps, sines, and exponentials. Plus, even more waves could be made that have different phase relationships with each other. Examples of these waves may be found in figure 3.

figure 3

Another something to try could be to assign different CC# to each of the stored waves. This would allow simultaneous waves to be used for different functions in the same or different synth. The previous suggestion of data thinning should probably be followed. Just these four test waveforms (unthinned) use about 60% of the MMT-8's memory (or so it claims). Also, some may not see the beauty of generic templates of waves and create specific waves of limited ranges on certain channels and CC#s. This would get rid of the need for an MEP4 or other processor. Oh the possibilities. Hope this was useful.