[linux-audio-user] real-time MIDI scripting?
Florian Schmidt
mista.tapas at gmx.net
Sat Mar 10 13:32:56 EST 2007
On Saturday 10 March 2007, Larry Troxler wrote:
> Hi. Is there any scripting language out there that can read and write
> Alsa MIDI? I want to do things like remapping, intelligent, dynamic,
> keyboard splitting, assigning certain notes to close-open applications,
> sending alternate notes to different MIDI channels, and things like that.
>
> pd of course is a possibility, but at the moment I'm having problems
> getting pd-extended to run in 64studio, and regardless, I'd like to
> explore the text-language route.
>
> Larry
Well, SuperCollider can hande midi on the language side (the server side of SC
doesn't even know what midi is)
Implementing a simple midi filtering function should be a three liner once one
has got a grip on SC.
(
MIDIIn.connect; // init for one port midi interface
// register functions:
MIDIIn.noteOff = { arg src, chan, num, vel; [chan,num,vel / 127].postln; };
MIDIIn.noteOn = { arg src, chan, num, vel; [chan,num,vel / 127].postln; };
MIDIIn.polytouch = { arg src, chan, num, vel; [chan,num,vel /
127].postln; };
MIDIIn.control = { arg src, chan, num, val; [chan,num,val].postln; };
MIDIIn.program = { arg src, chan, prog; [chan,prog].postln; };
MIDIIn.touch = { arg src, chan, pressure; [chan,pressure].postln; };
MIDIIn.bend = { arg src, chan, bend; [chan,bend - 8192].postln; };
MIDIIn.sysex = { arg src, sysex; sysex.postln; };
MIDIIn.sysrt = { arg src, chan, val; [chan,val].postln; };
MIDIIn.smpte = { arg src, chan, val; [chan,val].postln; };
)
This code example for example opens a midi port and simply prints some midi
event informations.
Flo
--
Palimm Palimm!
http://tapas.affenbande.org
More information about the Linux-audio-user
mailing list