I'm just going to ramble and hopefully maybe someone has had a similar issue and can shed some light. I built a cool little MIDI controller and got it running on the UNO. I had lots of issues along the way but finally got it working pretty well. FL Studio would always recognize it or at least show that some midi data was showing up even if it was unusable. However, MidiOx always hated my build no matter what I did. I would get all kinds of crazy data or nothing at all etc.
Anyway, I finally decided that overall it would probably be better to try out the Teensy platform because I could run direct thru USB without the crazy converter cable and all the extra MIDI spec parts etc. So I finally get a basic two button code working for testing purposes and lo and behold MidiOx loves it! Super stable and does what it's supposed to etc. It also performs well in Bome's Sendsx app. However, FL Studio completely ignores it! I don't even get a little blinkage of the midi icon let alone the ability to actually turn things on and off in it.
Has anyone had a similar experience? It could well be some simple little thing I'm overlooking or am not aware of but I'm hoping someone else may have had a similar experience and will recognize the issue. (Searching 'FL Studio' on here hasn't turned up any leads.)
Thanks.
P.S. So far I'm extremely impressed with the Teensy platform. I doubt it's an issue with the Teensy itself but perhaps a quirk of some sort or a user error that I haven't encountered yet.
Here is the basic two button code to adhere to forum etiquette:
const int LEDA = 11;
const int LEDB = 12;
const int buttonPinA = 7;
const int buttonPinB = 6;
int buttonStateA = 0;
int buttonStateB = 0;
int lastButtonStateA = 0;
int lastButtonStateB = 0;
int toggleStateA = 0;
int toggleStateB = 0;
const int channel = 1;
void setup () {
pinMode (buttonPinA, INPUT);
pinMode (LEDA, OUTPUT);
pinMode (buttonPinB, INPUT);
pinMode (LEDB, OUTPUT);
}
void loop () {
buttonStateA = digitalRead (buttonPinA);
buttonStateB = digitalRead (buttonPinB);
// check whether the input is HIGH (button pressed)
if (buttonStateA == HIGH){
digitalWrite (LEDA,HIGH); // turn LED on
}else{
digitalWrite (LEDA,LOW);
}
if (buttonStateA != lastButtonStateA && buttonStateA == 1 && toggleStateA == 0) {
usbMIDI.sendControlChange (1, 127, 1);
delay (50);
toggleStateA = 1;
}
else if (buttonStateA != lastButtonStateA && buttonStateA == 1 && toggleStateA == 1) {
usbMIDI.sendControlChange (1, 0, 1);
delay (50);
toggleStateA = 0;
}
lastButtonStateA = buttonStateA;
// check whether the input is HIGH (button pressed)
if (buttonStateB == HIGH){
digitalWrite (LEDB,HIGH); // turn LED on
}else{
digitalWrite (LEDB,LOW);
}
if (buttonStateB != lastButtonStateB && buttonStateB == 1 && toggleStateB == 0) {
usbMIDI.sendControlChange (2, 127, 1);
delay (50);
toggleStateB = 1;
}
else if (buttonStateB != lastButtonStateB && buttonStateB == 1 && toggleStateB == 1) {
usbMIDI.sendControlChange (2, 0, 1);
delay (50);
toggleStateB = 0;
}
lastButtonStateB = buttonStateB;
while (usbMIDI.read()) {} // read and discard any incoming MIDI messages
}
Anyway, I finally decided that overall it would probably be better to try out the Teensy platform because I could run direct thru USB without the crazy converter cable and all the extra MIDI spec parts etc. So I finally get a basic two button code working for testing purposes and lo and behold MidiOx loves it! Super stable and does what it's supposed to etc. It also performs well in Bome's Sendsx app. However, FL Studio completely ignores it! I don't even get a little blinkage of the midi icon let alone the ability to actually turn things on and off in it.
Has anyone had a similar experience? It could well be some simple little thing I'm overlooking or am not aware of but I'm hoping someone else may have had a similar experience and will recognize the issue. (Searching 'FL Studio' on here hasn't turned up any leads.)
Thanks.
P.S. So far I'm extremely impressed with the Teensy platform. I doubt it's an issue with the Teensy itself but perhaps a quirk of some sort or a user error that I haven't encountered yet.
Here is the basic two button code to adhere to forum etiquette:
const int LEDA = 11;
const int LEDB = 12;
const int buttonPinA = 7;
const int buttonPinB = 6;
int buttonStateA = 0;
int buttonStateB = 0;
int lastButtonStateA = 0;
int lastButtonStateB = 0;
int toggleStateA = 0;
int toggleStateB = 0;
const int channel = 1;
void setup () {
pinMode (buttonPinA, INPUT);
pinMode (LEDA, OUTPUT);
pinMode (buttonPinB, INPUT);
pinMode (LEDB, OUTPUT);
}
void loop () {
buttonStateA = digitalRead (buttonPinA);
buttonStateB = digitalRead (buttonPinB);
// check whether the input is HIGH (button pressed)
if (buttonStateA == HIGH){
digitalWrite (LEDA,HIGH); // turn LED on
}else{
digitalWrite (LEDA,LOW);
}
if (buttonStateA != lastButtonStateA && buttonStateA == 1 && toggleStateA == 0) {
usbMIDI.sendControlChange (1, 127, 1);
delay (50);
toggleStateA = 1;
}
else if (buttonStateA != lastButtonStateA && buttonStateA == 1 && toggleStateA == 1) {
usbMIDI.sendControlChange (1, 0, 1);
delay (50);
toggleStateA = 0;
}
lastButtonStateA = buttonStateA;
// check whether the input is HIGH (button pressed)
if (buttonStateB == HIGH){
digitalWrite (LEDB,HIGH); // turn LED on
}else{
digitalWrite (LEDB,LOW);
}
if (buttonStateB != lastButtonStateB && buttonStateB == 1 && toggleStateB == 0) {
usbMIDI.sendControlChange (2, 127, 1);
delay (50);
toggleStateB = 1;
}
else if (buttonStateB != lastButtonStateB && buttonStateB == 1 && toggleStateB == 1) {
usbMIDI.sendControlChange (2, 0, 1);
delay (50);
toggleStateB = 0;
}
lastButtonStateB = buttonStateB;
while (usbMIDI.read()) {} // read and discard any incoming MIDI messages
}