danomatika / ofxMidi

(maintained) Midi addon for openFrameworks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ofxMidi send controller change not working

fdiba opened this issue · comments

commented

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.

commented

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.

commented

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++.

commented

It makes sense. Thanks again.