Use Instrument in ofxAbletonLive

I just got ofxAbletonLive up and running for the first time. Props to @genekogan for a great addon! Does anyone know if there’s a way to send midi data to an instrument track? Thanks!

Oh great. I didn’t know this addon existed. I just checked Github and it seems it only communicates via OSC. The list of OSC commands does not include anything about note, velocity, etc. So I think you just have to use ofxMidi.

Yes, I didn’t see anything in there, but was hoping I missed something. I’ve only ever used ofxMidi to get input from a midi controller. Any idea how to actually send output from it to Ableton?

correct, ofxAbletonLive is an OSC-only addon. in the future i might add midi behind the scenes but for now ofxMidi is your best bet.

check the ofxMidi folder, there is another folder called midiOutputExample. I haven’t tried it but it seems after the usual setup it’s as easy as:

midiOut.sendNoteOn(channel, note, velocity);
midiOut.sendControlChange(channel, 10, pan);
midiOut.sendPitchBend(channel, bend);

Yeah I saw that a bit earlier and it wasn’t working for some reason. Restarted Ableton though and now it seems to be receiving perfectly! I’m running Ableton in Wine and it can be somewhat buggy, so I think it just derped for a minute. Thanks for the help guys! And Gene, I’d love to see that functionality merged into ofxAbletonLive. Maybe I’ll try it myself when I find a moment.

Not sure if that is necessary. It sure would be possible to transmit notes via OSC, but you’d need to implement it in a controller template as well. Live speaks MIDI natively. And MIDI works well, so why replace it?

On the other hand, it’s great to see all the stuff in LiveOSC which is not covered by MIDI.

If you’re on Mac there’s OSCulator which lets you to map/route OSC messages to midi. That could solve your problem, but I’m not sure if it affects the latency much…

I didn’t mean to use OSC instead of MIDI, but to add some simple wrappers for MIDI messages into the Ableton addon - or even just to include it in the examples - just so it’s all in one place. Just a way to make it even more user friendly :smile: