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);
);
I adapted this script to send RMS to my AKAI midi controller
// 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);