Re: sysex filter ?

From: Alexandre Ratchov <>
Date: Thu May 28 2009 - 19:27:56 CEST
On Thu, May 28, 2009 at 05:16:38PM +0200, wrote:
> Hello
> I own an old Roland keyboard (pre-GM) that cannot send RPN message.
> But it can send short sysex messages when one moves some controls or push some
> buttons.
> Ex: cutoff control sends messages like this:
> f0 41 0 3e 12 0 3 42 3b f7
> ("0 3" is the address of the Cutoff parameter, "42" is the value)


is there a channel number somewhere in the message?

> I would like to translate these sysex messages to RPN/NRPN messages.
> Can minish do that ? (i'm affraid it cannot...)
> Do you think it would be easy to add this feature to minish ?
> (tips would be welcome ;)

Indeed midish can't do this.  The more natural approach I
see is to add ``user defined'' events, and then to use them
as ordinary events with the filter.

In the above example, the user could register a new event as
the ``f0 41 0 3e 12 0 3 * 3b f7'' pattern, and then use it
as a regular event. That's how rpn/nrpn events are currently

roughly the steps are:

1. define a new structure to hold event definitions (the
   pattern, the event name, etc), create a list/array/...  of
   such structures and populate it.

2. modify mux_sysexcb() to parse user events and
   mux_putev() to output them

3. add a new entry for the new event in ev_phase(),
   evspec_matchev(), state_match(), state_inspec(), etc ...

4. try recording, playing, editting tracks containing such events,

5. tweak the filter to allow mapping user defined events
   into rpn/nrpn or whatever

6. add the necessary built in functions in builtin.c to let the user
   define its own events

7. add the necessary bits in saveload.c, smf.c so event definitions
   are saved

8. go back to step 1 until you're satisfied :)

It might take a lot of time to experiment and to find the
best approach (ie simple and fast), but afaiu most of the
existing code should work as is with new event types, so,
hopefully no need to rewrite stuff.

Perhaps there are other, better, approaches; don't know


In my opinion having short and parametrable sysex events
is useful for GM synths too, ex. to create fade outs using
the gm master volume messages.

Don't hesitate to contact me if you have further questions
or whatever.

-- Alexandre
Received on Thu, 28 May 2009 19:27:56 +0200

This archive was generated by hypermail 2.1.8 : Wed Nov 08 2017 - 16:32:20 CET