Sending RMS audio meter data to midi

A handy superdirt snippet, sends rms (audio meter) data for the first 8 orbits to MIDI cc numbers 1 .. 8, useful for visualising channels on external gear:

(
f = { |msg, time, addr|
    if(msg[0] == '/rms') {
		var o = msg[2];
		var vol = (msg[4] + msg[6]);
		if (o < 8) {
			~midiOut.control(0,o+1,(vol*255).min(127));
		}
    }
};
thisProcess.addOSCRecvFunc(f);
);
5 Likes

I adapted this script to send RMS to my AKAI midi controller
VID20260517002202


// Run this to start sending the RMS OSC messages to SC.
~dirt.startSendRMS;



(
f = { |msg, time, addr|
    if(msg[0] == '/rms') {
		var o = msg[2];
		var basenote = 64;
		var note = 0;
		var vol = (msg[4] + msg[6]);
		var voltresh = 0;
		if (o < 8) {
			voltresh = vol*20;
			i = 0;
			while { i < 8} {
				note = basenote + o + (i*8);
				if (i < voltresh) {
					~midiOut.noteOn(9,note,5);
				} {
					~midiOut.noteOff(9,note,5);
				};
				i = i + 1;
			};
		}
	}
}
thisProcess.addOSCRecvFunc(f);

);



thisProcess.removeOSCRecvFunc(f);

very useful, I can use it as a VU meter now

1 Like

looks great !