Oberheim Cyclone

Hi,

Working on an implementation for the Oberheim Cyclone. SYSEX isn’t documented anywhere so it’s been tricky. I can select parameters for editing, but to set the value, the Cyclone expects a note number. As strange as it sounds, playing a note will change the values of a selected parameter.

I’m hoping to:

  1. Create a LUA enabled button that does nothing more than send a note increment and another LUA enabled button that sends a note decrement.
  2. Create a LUA enabled encoder that sends notes, from 0 to whatever.

If anyone can get me started on how to approach this, I would greatly appreciate your help.

1 Like

I used to own a couple of these back in the day. Fantastic machine, frustrating UI.
At one point, I had sketched out a design for a larger enclosure with additional dedicated controls and larger display to make it easier to edit.

I had a bunch of documentation on the Cyclone and other Perf/X boxes; I’ll see if they’re still on some hard drive somewhere. Do you have any sysex/MIDI information you can share?

what I would try first is to use a CC7 fader, set the type to Virtual, set the MIDI range to 0 and 127 and then add a function in the “LUA Function” section of the control – maybe call it sendNote

Then, go into the LUA editor and try something like this:

function sendNote(valueObject, value)
   -- where the 1, 1 is the port and MIDI Channel; adjust as necessary
   midi.sendNoteOn(1, 1, value, 127)
   midi.sendNoteOff(1, 1, value, 127)
   -- note that if the Cyclone can handle Note On with velocity set to 0, you can use this line instead
   -- midi.sendNoteOn(1, 1, value, 0)
end

The increment/decrement buttons are actually a bit harder since MIDI notes are absolute values and you have to know “incrementing from what starting value” in order to send a new number

1 Like

yes, I wanted to propose exactly the same. Please give it a try and let us know if it works. if it does, we can talk about further steps.

Thanks @oldgearguy @martin

I’ll keep you posted on progress

The basics of the sysex are similar for each Perf/X box, so I was able to glean a bit from the other versions.

The basics of the Sysex command are:
F0
10
08
01
06 (edit)
Low, High
F7

Sorry for the delay @martin and @oldgearguy

Finally figured things out on my end. Here’s the function that works well. I’m in the process of competing the patch and will share once done.

This certainly is making the Cyclone a lot easier to understand and enjoy.

function sendControl(valueObject, value)
local message = valueObject:getMessage ()
local controlID = 0x00 + message:getParameterNumber ()
midi.sendSysex (PORT_1, {16,08,01,06, controlID})
midi.sendNoteOn(PORT_1, 1, value, 127)
midi.sendNoteOff(PORT_1, 1, value, 127)
end

Another revelation and more progress. This seems to have done the trick. Done with that note on/off nonsense.

[
“F0”,
“10”,
“08”,
“01”,
“06”,
“00”,
{
“type”: “value”,
“rules”: [
{
“parameterNumber”: 0,
“parameterBitPosition”: 0,
“byteBitPosition”: 0,
“bitWidth”: 4
}
]
},
{
“type”: “value”,
“rules”: [
{
“parameterNumber”: 0,
“parameterBitPosition”: 4,
“byteBitPosition”: 0,
“bitWidth”: 4
}
]
},
“F7”
]

If you have any preset work you’d like to share publicly (or semi-publicly) let me know.
I decided to purchase a Cyclone (yet again - had a few over the past 25 years or so but always sold them). I can’t promise how much dedicated time I’ll have to work on the preset, but it will be a priority for whatever free time I have.

I can gen one up from scratch based on the other Oberheim docs plus the work you’ve posted so far, but if you have something running, it’s better to start from that.

Hi,

Welcome back to the Cyclone club! The Cyclone preset is posted in the Electra App Presets area. Let me know it works out.

The tricky part is toggling the “control” midi channel with the “perform” midi channel. Sometime it works out great, sometimes.

-m

Great! I’ll check it out later today. The Cyclone is still making its way to me, so for the moment, I’ll just check out the preset in isolation.

Also - I sent you a PM.

@oldgearguy ,What makes the Cyclone so special you bought it again?
@mIIwaukee , They used to be a bit buggy, especially if fed with unstable tension. Is that still the case?

I’ll let you know if it’s still buggy. The one arriving (eventually) has that last OS (1.2) which was supposed to be much better.

Why buy it again? Partly as research for another project I’m involved in, partly because it’s a fun machine that always seems to produce musical results. I’ve owned a lot of sequencers and arpeggiators and such (things like Kordbot, NDLR, FutureRetro Zillion, etc) and I always liked what the Cyclone could produce.

Back in the day when I had one, I really didn’t try to take full advantage of all it’s capabilities and didn’t fully integrate it into my setup. I wasn’t using a DAW, most of my gear was cv/gate, and of course doing any kind of real editing on a patch was very painful.

The Electra One opens up a better view of the internal settings and makes it easier to see (and change) the behavior. Having a good MIDI patchbay that lets me easily merge data from the Electra One with a sequencer/DAW/keyboard means I can use and tweak the Cyclone more naturally and be able to capture its output for use later.

Who knows, right? I may end up selling it again 6 months later. lol

1 Like

@milwaukee and other Cyclone owners - I’ve been making decent progress deciphering the sysex dumps and now have a version of the Cyclone preset that will pull back a specific preset and update most of the values.

I should be able to make it a bit more generic to grab any preset (above 15 for reasons I’ll explain separately - Oberheim did a lot of weird things) and update the current values in the next day or so.

Question for the group - I don’t necessarily want to post this as a new preset since the bulk of the initial work and layout was done by milwaukee. Is there any way I can update his version so he still gets the main acknowledgement? Without his efforts, this wouldn’t have been possible at all.

1 Like

if you export the project to a file, then @mIIwaukee can import the file as a new revision of his preset.