<br><br><div class="gmail_quote">On Thu, Feb 10, 2011 at 5:56 PM, Alessandro Preziosi <span dir="ltr"><<a href="mailto:lsnpreziosi@gmail.com">lsnpreziosi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
i need to do something relatively simple, but i cant figure out how to do it, or what software i need...<div>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???</div>
<div><br></div><div>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. </div>
<div>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).</div>
<div>Any ideas?</div><div><br></div><div>Thank you very much,</div><div><br></div><font color="#888888"><div>Alessandro Preziosi<br><div><br><br></div></div></font></blockquote><div><br><br>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 <br>
</div></div><br>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<br>
<br>ah yes, once you have supercollider installed you could simply run it from command line with "sclang <a href="http://jack-switcher.sc">jack-switcher.sc</a>"<br><br>HTH,<br>renato<br><br><br><a href="http://jack-switcher.sc">jack-switcher.sc</a>:<br>
(<br>//var midichan, files = "jsfiles".getenv.split($ );<br>var midichan, files;<br>files = ["/home/renato/Audio/1.snp","/home/renato/Audio/2.snp"]; //these have to be files obtained through "jack_snapshot save 1.snp"<br>
<br>//Starts MIDI client<br>MIDIClient.init;<br>MIDIIn.program = {arg src, chan, prog; <br> <br> [src,chan,prog].postln;<br> <br> ("jack_snapshot restore "++files[prog.min(files.size)]).unixCmd; <br>
};<br><br>)<br><br>