[LAU] live performance, midi program change from the keyboard

Renato Budinich rennabh at gmail.com
Fri Feb 11 08:51:39 UTC 2011


On Thu, Feb 10, 2011 at 5:56 PM, Alessandro Preziosi
<lsnpreziosi at gmail.com>wrote:

> i need to do something relatively simple, but i cant figure out how to do
> it, or what software i need...
> basically i have to play a certain song where i need to switch between
> different sounds (say, a piano at the beginning using qsyinth and then a
> synth created with zynaddsubfx). I want to be able to switch between one
> setup to the other quickly, possibly using the program change from my
> keyboard. How do i do that???
>
> On my keyboard i can create different programs, each using different sounds
> (patches) and switch between them with the click of a button. I want to use
> that, but I want to generate the sounds with my computer.
> I think I need a way to 'map' midi channels to different programs or midi
> patches to specific programs (like, when i select piano on the keyboard
> (patch0, bank0) it uses qsynth, and when i select a synth it uses
> zynaddusbfx).
> Any ideas?
>
> Thank you very much,
>
> Alessandro Preziosi
>
>
>

It probably is an overkill for your problem, but I did this small
supercollider program; basically it makes an Alsa midi client to which you
send program changes and it changes through jack connections created by
jack_snapshot. So to use it you would create a jack_snapshot for each
synth/set of connections, save them and put the in "files" variable

Hope it works since I haven't time to test it now and it's been a while
since I've used it... also I remember for some strange reason if I gave it
many program changes rapidly one after the other it would clog the cpu

ah yes, once you have supercollider installed you could simply run it from
command line with "sclang jack-switcher.sc"

HTH,
renato


jack-switcher.sc:
(
//var midichan, files = "jsfiles".getenv.split($ );
var midichan, files;
files = ["/home/renato/Audio/1.snp","/home/renato/Audio/2.snp"]; //these
have to be files obtained through "jack_snapshot save 1.snp"

//Starts MIDI client
MIDIClient.init;
MIDIIn.program = {arg src, chan, prog;

                [src,chan,prog].postln;

                ("jack_snapshot restore
"++files[prog.min(files.size)]).unixCmd;
                };

)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-user/attachments/20110211/89577950/attachment.htm>


More information about the Linux-audio-user mailing list