Re: [LAU] Usage of undefinded MIDI mesages

From: Crypto <crypto@email-addr-hidden>
Date: Wed Oct 01 2008 - 23:09:27 EEST

Hi,

as there seemed to be some interest in how I get on with my project:

I have made at least some progress concerning the conversion of my analogue
organ. Finally, I have found a way to switch sounds like stops.

There are now up to 20 different sounds playing on channel #1, 8 different
sounds for channels #2 and #3. I can press the old switch buttons of the
organ which I have converted to digital and I get the sounds switched on and
off.

Some big problems that yet have to be solved:

That many different sounds playing at the same time is too much. I haven't yet
tried all alternatives and finetuned the RT settings etc., but the sound is
stuttering and crackling rather quickly, when I have set all 20 sounds to
play on channel #1.

I know it is rather unlikely that all 20 switches (stops) are pulled at the
same time. I have of course done anyway as a test.

I think I need some kind of "NO SOUND" preset, that does not consume any or
nearly no processing power? At the moment I had to switch to the sounds I
want (= a pulled stop; sound is ON) or switch to another sound as a "neutral"
sound. Just to hear the difference of it, if is it working at all.

How did I do it?

First, I run a CLI script that runs fluidsynth with 48 virtual MIDI channels
via a named pipe and then runs keykit.

Then I run a keykit function. This sends system messages to the system
commandline and from there to fluidsynth via the named pipe. The function
reacts upon incoming MIDI events and when it finds a special SYS EX message I
have created for each switch it turns the sounds on and off.

To get several sounds to play at the same time on the same channel I have
programmed lots of router commands. Channel #1 alone is routed to 20 virtual
channels which are all active at the same time. This is where the problem
arises that I get crackled sound: After the router rules have been set up all
of the virtual channels need a preset to play. There seems to be no way
to "mute" or de-activate a particular router roule. One can only delete all
of them or add a single one to the router rule "chain". I have created 36
router rules.

If You have got a nice hint about how to create a "no sound" preset, mute a
channel alltogether (simply setting volume to 0 will not be sufficient) and
the crackled sound problem, then I'm looking forward to reading about it
here.

Regards,
Crypto.

Am Saturday 27 September 2008 12:55:52 schrieb Crypto:
> Hi,
>
> I have turned an old analogue electric organ into a MIDI controller. All
> the old push buttons, switches, pots, drawbars can now trigger MIDI events.
>
> Because I would like to make the MIDI messages static (i.e. they are linked
> with particular buttons and faders and will not be changed) I have thought
> of using an external application (keykit in this case) to work on incoming
> MIDI events of the MIDI controller, filter them and trigger newly defined
> MIDI events with it.
>
> I would like to make the MIDI messages transmitted by the controller as
> short as possible. I have thought of assigning the Bx (Control Change)
> command to the buttons and faders, but this would mix with/overwrite other
> control change commands sent by other MIDI devices.
>
> It has to be possible to distinguish between the buttons/faders by the MIDI
> message that each one triggers.
>
> How about the System Common Message F4 and F5 which are not yet defined in
> the MIDI standard? Could I add some extra data bytes to identify the type
> (button or fader), the number and value?
>
> Like this:
> F4 125 70 (Fader 125 sends value 70)
> keykit would recognize this fader and set volume level for channel 2 for
> fluidsynth.
> Or, in another situation, increase sustain value for channel 3 for
> fluidsynth.
>
> or:
> F5 10 1 (Button 10 sends value ON)
> keykit would recognize the button and turn on sustain for channel 1.
>
> Thanks for any hint and kind regards,
> Crypto.
> _______________________________________________
> Linux-audio-user mailing list
> Linux-audio-user@email-addr-hidden
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
Received on Thu Oct 2 00:15:03 2008

This archive was generated by hypermail 2.1.8 : Thu Oct 02 2008 - 00:15:03 EEST