Hi all
I created a 5 potentiometer midi controller using an Arduino Pro micro.
Problem
The controller is detected in the Windows device manager but not in FL studio's MIDI output and input sources.
- did PC restarts, FL studio's refresh device lists, but no luck.
NOTE:
I had some trouble using the MIDI controller code by Nerd Musician, so I gave CHATgpt a try.
- Using EDI 2.0.3
- Getting no errors with upload and a consistent read in serial monitor.
Question:
- any ideas why FL studio is not detecting the device?
- is this a case of using third party software to trick a DAW like FL studio into detecting the device?
- am I missing something here?
Library NOTE:
I've tried writing the code with the following midi libraries but it only works with <MIDI.h>
The following libraries don't seems to work with CHATgpt (the code looks right, but getting upload errors. Mentioning just to rule out:
*<MIDI_Controller.h>
*<MIDIUSB.h>
*<MIDIUSB_Defs.h>
*<frequencyToNote.h>
*<pitchToFrequency.h>
*<pitchToNote.h>
Here is the working ChatGPT code that is being used & detected in Windows, but not FL:
#include <MIDI.h>
const int potPin1 = A0;
const int potPin2 = A1;
const int potPin3 = A2;
const int potPin4 = A3;
const int potPin5 = A9;
int potVal1 = 0;
int potVal2 = 0;
int potVal3 = 0;
int potVal4 = 0;
int potVal5 = 0;
MIDI_CREATE_DEFAULT_INSTANCE();
void setup() {
pinMode(potPin1, INPUT);
pinMode(potPin2, INPUT);
pinMode(potPin3, INPUT);
pinMode(potPin4, INPUT);
pinMode(potPin5, INPUT);
MIDI.begin();
// Initialize Serial Communication
Serial.begin(9600);
}
void loop() {
potVal1 = analogRead(potPin1);
potVal2 = analogRead(potPin2);
potVal3 = analogRead(potPin3);
potVal4 = analogRead(potPin4);
potVal5 = analogRead(potPin5);
//Send MIDI control change message for each potentiometer
MIDI.sendControlChange(1, map(potVal1, 0, 1023, 0, 127), 1);
MIDI.sendControlChange(2, map(potVal2, 0, 1023, 0, 127), 1);
MIDI.sendControlChange(3, map(potVal3, 0, 1023, 0, 127), 1);
MIDI.sendControlChange(4, map(potVal4, 0, 1023, 0, 127), 1);
MIDI.sendControlChange(5, map(potVal5, 0, 1023, 0, 127), 1);
// Send potentiometer values to serial monitor
Serial.print("Potentiometer 1: ");
Serial.println(potVal1);
Serial.print("Potentiometer 2: ");
Serial.println(potVal2);
Serial.print("Potentiometer 3: ");
Serial.println(potVal3);
Serial.print("Potentiometer 4: ");
Serial.println(potVal4);
Serial.print("Potentiometer 5: ");
Serial.println(potVal5);
Serial.println();
delay(100);
}