hypercyclic is an LFO-driven MIDI arpeggiator, gate effect and step sequencer for mangling MIDI input chords. It won 2nd place in the KVRAudio.com Developer Challenge '07.

Two tempo-synced LFOs can be used to modulate various parameters to create interesting rhythmic effects and chord variations. A unique feature is the possiblity to modulate the sequencer step size itself, which is useful for creating glitchy stuttering effects.

The sweetspot for hypercyclic is the narrow border between chaos and regularity. Or, in other words, how to induce a certain pleasant randomness, yet forcing everything to align again on the bar or beat boundaries.

The product is further complemented by a groove function for playing slightly off the beat. The groove parameters can also be modulated over time by the LFOs, adding to the rhythmic variation.

The main use for hypercyclic is to generate midi that can be recorded and/or sent to other plugins. However it also features a simple built-in synth for testing purposes.

Try out the plugin in your favourite host. If you have no host or no time, try the no-setup standalone version.

The preset demo gives you a quick idea of what hypercyclic can do.

Hypercyclic is freeware. Please read the license for terms of use.

MIDI OutputBy default MIDI is sent to the built-in synth which sends audio to the host. That's OK for quick testing and works with any host. However, if you like to drive other synths you have to send MIDI out of hypercyclic, using the midi to control.

With the VST plugin version it's recommended to send midi directly to the host application (if it supports it) and then route it to another plugin within the host. Some hosts that are known to support this are Ableton Live 5 & 6, EnergyXT 1 & 2, Sonar 6, Cubase 3 & 4.

With standalone and AU versions, or VST hosts that don't support midi-out from a plugin, you can also send the MIDI output to an external midi device. This way you can drive for instance outboard synths. If the external device is a MIDI loopback adapter (such as MIDI Yoke on Windows, or the MIDI IAC bus on Mac OSX), you can capture that midi again in your host and route it to another plugin.

Note that the best possible performance and timing accuracy is reached with VST plugins that send midi directly to the VST host. The other techniques will cause additional latency from the detour via the external midi bus and/or timing fluctuations.

Note also that for this same reason, rendering audio will only work reliably with VST plugins that send midi directly to the VST host.

Rendering audio with non-VST versions

The audio rendering limitation above can be circumvented by first using hypercyclic to generate a midi track (and capturing that in your host, possibly using a loopback adapter). Once the midi track is captured you can play it within almost any host and render audio with it the usual way.

Also, there is no reason why the host that captures the midi should be the same host that does the further mixdown. For instance you could prototype the hypercyclic settings in Ableton Live, and also capture it using Live, but subsequently process the generated midi track further with Logic, routing it maybe to the Logic synth of your choice.

Configuring the VST MIDI output in Hypercylic

This applies only to the VST plugin version. First, set the midi to control (upper left) to VST host. Then route the VST output within the host to the destination plugin or track. A manual for this is still under construction. (update: the manual is now available) Meanwhile, you can use this older tutorial for tonespace, selecting hypercyclic wherever you would select tonespace.

Configuring the AU MIDI output in Hypercylick

This technique applies to the AU plugin version, but can also be used from VST and standalone versions. First, within the midi to combo box, select Configure... The midi device settings dialog box will appear. Check one or more of the midi output devices you like to send midi to. Then set the midi to combo box to one of these selected output devices. If the device is named IAC driver... then you can use this device elsewhere as input device and receive the hypercyclic output that way.