ofxMidi send controller change not working
fdiba opened this issue · comments
I'm trying to use ofxMidi to control a midi interface and I need to send some controller change.
I have tried to use midiOut.sendControlChange(channel, number, value).
The messages are correctly sended but it's like they are not understood (I know thanks to a led that messages are correctly sent).
For information, I am used to do the same thing with different midi interfaces using Processing, themidibus library and function like sendControllerChange(channel, number, value) and it works perfetly. I have also used previously ofxMidi to receive midi messages without any problem.
I have chosen the correct port in the ofApp setup function and I'm using the function sendControlChange in mousePressed. I'm sure about the port and the number. Both are 0 and I have chosen values between 0 and 127 while using sendControlChange(channel, number, value).
Do you know what I'm missing ? I'm using windows 10 (hope it's not related).
I have written some basic code here (that doesn't work as expected) : https://github.com/fdiba/BTM/tree/master/midi_test
MIDI messages values use the range 0-127. Using 255 will probably either wrap the number beyond 127 and/or get clipped, which might explain when you're seeing.
Trying changing the 255 to 127.
I made that mistake indeed but it's still not working when I replace 255 by 127. Is there another way to send a controller change with the values 0, 0, and 0 for the channel, number and value ?
ps: I don't get any error message.
Does the midiOutputExample program work? Can you see the control messages, etc coming through?
One thing to note: ofxMidi channel ranges are 1-16 not 0-15. Try sending to channel 1 instead of channel 0.
Ok that was it: the channel. Whith 1 it works perfectly. I'm used to midibus and with 0 it was working (not 1). Thank you.
Cool. I decided on using 1-16 since that matches the channel displays on old synths and most DAWS but of course it's easy to mix that up with 0-indexed arrays, etc in C++.
It makes sense. Thanks again.