[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