The LFO2CC patch can now be downloaded from: http://milkcrate.com.au/_other/downloads/max_patches/lfo2cc/
This requires the Max/MSP runtime version 4.6 or later. It should work on both Mac OS X 10.3.9 or later and Windows XP.
You can see this version of the patch in action here:
Let's have a look at the GUI. There are two main sections. The global header section and the eight instances of the oscillator controls. Each of the eight instances are the same.
This is the global header section. It has two parameters. These parameters affect all oscillators.
Base frequency: Sets the fundamental frequency from which the frequencies of all of the LFO's are derived. It is measured in Hz. Changing this will change the frequency of all of the LFO's.
Fade In / Out: Sets the control waveform fade in / out in milliseconds. This allows for smooth transitions from a non-modulated state to a modulated state over time.
This is an LFO whose output is routed to a MIDI continuous controller. This section has many controls. Each of the eight LFO's have the same type of control as is described here.
Output Device: Sets the MIDI bus along which the CC data is sent.
Channel: Sets the MIDI channel (1 - 16) along which the CC data is sent.
CC#: Sets the continuous controller number (0 - 127) to which the data values from the LFO are sent.
Active: When selected, makes the LFO active and sends data values along the MIDI CC#, channel and device selected. When deselected, mutes the output of the LFO. When the LFO is either made active or inactive, a fade in / out of the waveform is created whose length is set by global Fade In / Out parameter.
SpeedX: Short for Speed Multiplier. Sets the frequency ratio of the LFO in comparison to the global base frequency. This number is a ratio. For example, if the global speed is set to 10Hz and the SpeedX parameter of a given LFO is set to 0.5, then the frequency of the LFO is 5Hz (because 10 multiplied by 0.5 equals 5).
Depth: Sets the depth (in data points) of the waveform. If this is set to 0, no waveform will be visible.
DSpeedX: Short for Depth Speed Multiplier. Sets the frequency of depth modulation. If this is set to 0, no depth modulation will take place.
Offset: Sets the offset (in data points) for the LFO waveform from the 0 mark along the vertical axis.
Interval: Sets the conversion rate of the waveform to data in milliseconds. It is recommended that the parameter is to minimum (20ms) unless performance issues are experienced.
Mod Type: Four different waveforms are available to choose from for the LFO. These are sine, triangle, pulse and sawtooth.
Finally, the waveform of each LFO can be seen to the right hand side as a green representation. The horizontal axis is time and the vertical axis is data. The bottom of the vertical axis is 0 and the top is 127.
Setting it up
Here is an example video of setting up the patch in Max/MSP Runtime under Mac OS X 10.4.11