RE: [oasys-pci] OASYS SYSEX
- It sounds more like a case of what people at Logic should do not at Korg!
From: Douglas Kraul [mailto:drk@...]
Sent: 31 October 2000 19:56
Subject: [oasys-pci] OASYS SYSEX
I have been fiddling with the OASYS trying to create environment
components for it in Logic. I have discovered some interesting
tidbits which others may find helpful. Also I am finding it
difficult to use Logic and/or an external fader controller to control
OASYS synths and effects.
From what I can gather by examining SYSEX dumps from panel control
movements the basic sysex command is pretty straight forward [I will
post documentation on this as I complete it]. Each control on a
panel is addressed by its mixer channel and its patch slot (the two
places you can assign patches to each program). These values span 0-
11 and 0-1 respectively.
Each parameter appears to be assigned a two digit (each 7 bits) code
or address. Can't say if all are used, or even if there is a
pattern. At this point all I know is that two sysex bytes are
Now the interesting part. The value of the parameter is sent as four
sysex bytes (a sysex byte is actually only 7 bits of data). It
therefore appears that 28 bits are used to represent a parameter's
value. These 28 bits represent a signed, twos complement value
(sorry for the geek talk). So parameters can represent values
positive or negative.
The maximum positive value I have seen so far is 3 in the upper most
sysex byte. So it seems that only 23 of the possible 28 bits are
used. Therefore it seems reasonable to assume that OASYS uses 24 bit
values (23 active bits plus a sign bit).
This is very cool as it gives you lots of resolution for tweaking in
values. Many times quantizing a parameter value to only 7 bits (0-
127) places restrictions on the types of sounds you can achieve as
sometimes the desired value lies between. And of course there is
also "zippering" problems as values change in too coarse a fashion.
So Korg has once again done right with this approach to parameter
Unfortunately, it plays havoc with trying to create custom control
panels using Logic's environment and other tools, including fader
Here's my current challenge. I want to have standard control panels
in Logic for each of the synths and effects I commonly use. This is
for convienence of working within Logic, but also to allow me to use
an external fader box to do parameter adjustment. Yes, I know you
can use the Oasys's very ample modulation assignments to do some of
this but that's not what I am after. For one reason is that it is
hard to save patches tweaked in such a way for ready recall later.
I have labored with Logic faders in the environment and there seems
to be no straight forward solution. Maybe a Logic wizzard listening
has some suggestions.
Not sure what, if anything, Korg can do about this. On one hand it
would be nice to be able to use tools like Logic's environment and
external programmable fader boxes to control these parameters. On
the other, I don't think squishing down parameters into 128 values is
- Hi Dan,
Reversal of max and min values is not a problem. What I was trying
to avoid is having to traverse the whole range of values in order to
define it. Was hoping I could just use the max an min values, but if
the direction is changing or some parameters use unsigned integers
(that is larger than 8388607) there might be a problem distinguish
them. If you could look into it at some point and let me know would
I did e-mail Norsez in back in January but never got a reply, I
guess he was too busy or not interested, and I have to get on with
One of the things I want to do on the randomiser is to make it learn
from previous settings. That is it could look at at multi and
program files and extract the settings into a database where it can
use them later.
Is there a chance of having a look at the file format specification?
Thanks a 10^6,
--- In oasys-pci@y..., Dan Phillips <dan@k...> wrote:
> RE:Re: OASYS SYSEX 7:55
> "jamesgone008" <fromOASYS@0...> writes:
> > I was trying to get away with it by just "listening" for the
> > smallest and the largest SysEx values and then extrapolating
> > the in between values.
> Sounds like a good idea. Note that the polarity of the knob
> might be reversed, so that the "max" setting of the knob
> would actually be the *lowest* internal value.
> > Can I assume that the SysEx value changes monotonically
> > (continuously up OR down) as the knobs turn?
> Yes, I think so.
> > Is there any way of knowing if the SysEx I'm getting from a
> > particular knob is just an integer larger than 8388607 or a
> > negative one?
> > I want to use the utility as a "smart randomiser" so is
> > important to know if the SysEx value I get is between -8388608
> > and 8388607 OR between 0 and 16777215
> I haven't looked at this specifically, so I can't say for
> certain. However, in general the internal values are bipolar
> (although many knobs will be limited to *sending* unipolar
> values, and the underlying algorithm might react unpleasantly
> to values outside the range sent by the knob - come to think
> of it, I don't know if OASYS PCI would respond to out-of-range
> values or not).
> > Unfortunately Norsez's OASYS utility never worked on my system
> > that's why I'm making one from scratch.
> I wonder if it would make sense to collaborate with Norsez on
> this? He seems like a pretty smart fellow to me...
> Best regards,
> Dan Phillips
> Product Manager
> Korg Research and Development
> Personal website: http://www.danphillips.com
> OASYS PCI: http://www.korg.com/oasyspci.htm
> OASYS PCI email list: http://groups.yahoo.com/group/oasys-pci