Ah okay, there you go. I've taken out the second analogReads for the pots as that was not working. Like I say, I have a 10k resistor between the soft pot and ground to pull down, but I'm still having this problem of a very low pitched note when the soft pot isn't pressed, as well as the VolPin and ResPin changing the pitch (as well as the things they're meant to change) when the soft pot isn't pressed
/**RIBBON SYNTH ARDUINO CODE**/
/*Analogue pins*/
const int VolPin = A13; // Master volume Pin set to A13 (moved from A0 to A13)
const int RibbonPin = A1; // Ribbon pot pin set to A1
const int SweepSpeed = A2; // Sweet speed pot pin set to A2
const int SweepDepth = A3; // Sweep depth pot int set to A3;
const int CenterFreqPin = A4; //Filter frequency Pin set to A4
const int ResPin = A5; //Resonance pin on A5
const int RevDryWet = A8; // Reverb Dry Wet set to A8;
const int RevRoomsize = A9; // Reverb room size set to A9;
const int RevDamping = A10; // Reverb damping set to A10;
/*Digital pins*/
const int switchPin = 12; // On/off toggle set to Digital 12
const int led = 10; // On LED set to Digital 8
/*Variable declarations*/
int VolValue = 0;
int RibbonValue = 0;
int SSpeedValue = 0;
int SDepthValue = 0;
int CenterFreqValue = 0;
int ResValue = 0;
int DryWetValue = 0;
int RoomsizeValue = 0;
int DampingValue = 0;
/*Scaled values to be used in map functions*/
int scaled_VolValue;
int scaled_RibbonValue;
int scaled_SSpeedValue;
int scaled_SDepthValue;
int scaled_CenterFreqValue;
int scaled_ResValue;
int scaled_DryWetValue;
int scaled_RoomsizeValue;
int scaled_DampingValue;
int switchState;
/*Setup Function*/
void setup()
{
Serial.begin(31250);
pinMode(led, OUTPUT);
pinMode(switchPin, INPUT);
pinMode(VolPin, INPUT);
pinMode(RibbonPin, INPUT);
pinMode(SweepSpeed, INPUT);
pinMode(SweepDepth, INPUT);
pinMode(CenterFreqPin, INPUT);
pinMode(ResPin, INPUT);
pinMode(RevDryWet,INPUT);
pinMode(RevRoomsize, INPUT);
pinMode(RevDamping, INPUT);
}
/*Main Loop*/
void loop() {
VolValue = analogRead(VolPin); // Reads second value from the VolPin
scaled_VolValue = map(VolValue, 0, 1023, 0, 127); // Scales voltage levels to midi values
RibbonValue = analogRead(RibbonPin); // Reads second value from the Ribbon Pin
scaled_RibbonValue = map(RibbonValue, 0, 1023, 0, 127); // Scales voltage levels to midi values
SSpeedValue = analogRead(SweepSpeed); // Reads the value from the Sweep Speed Pin
scaled_SSpeedValue = map(SSpeedValue, 0, 1023, 0, 127); // Scales voltage levels to midi values
SDepthValue = analogRead(SweepDepth); // Reads the value from the Sweep Depth Pin
scaled_SDepthValue = map(SDepthValue, 0, 1023, 0, 127); // Scales voltage levels to midi values
CenterFreqValue = analogRead(CenterFreqPin); // Reads the value from the CenterFreqPin
scaled_CenterFreqValue = map(CenterFreqValue, 0, 1023, 0, 127); // Scales voltage levels to midi values
ResValue = analogRead(ResPin); // Reads the value from the Res Pin
scaled_ResValue = map(ResValue, 0, 1023, 0, 127); // Scales voltage levels to midi values
DryWetValue = analogRead(RevDryWet); //Reads the value from the DryWet pin
scaled_DryWetValue = map(DryWetValue, 0, 1023, 0, 127); //Scales voltage levels to midi values
RoomsizeValue = analogRead(RevRoomsize); //Reads the value from the Roomsize pin
scaled_RoomsizeValue = map(RoomsizeValue, 0, 1023, 0, 127); //Scales voltage levels to midi values
DampingValue = analogRead(RevDamping); //Reads the value from the Damping pin
scaled_DampingValue = map(DampingValue, 0, 1023, 0, 127); //Scales voltage levels to midi values
switchState = digitalRead(switchPin); //Reads the state of the toggle switch pin
//if the switch is high, turn on LED and send 'ON' data to the line object in PD
if (switchState == HIGH)
{
digitalWrite(led, HIGH);
Serial.write(0xB0);
Serial.write(13);
Serial.write(1);
}
//else, LED is turned off and send 'OFF' data to the line object in PD
else
{
digitalWrite(led, LOW);
Serial.write(0xB0);
Serial.write(14);
Serial.write(0);
}
//Code to send scaled MIDI values from potentiometers to control sliders in PD
//Volume MIDI
Serial.write(0xB0);
Serial.write(1);
Serial.write(scaled_VolValue);
//Ribbon MIDI
Serial.write(0xB0);
Serial.write(2);
Serial.write(scaled_RibbonValue);
//Sweep Speed MIDI
Serial.write(0xB0);
Serial.write(3);
Serial.write(scaled_SSpeedValue);
//Sweep Depth MIDI
Serial.write(0xB0);
Serial.write(4);
Serial.write(scaled_SDepthValue);
//Centre Freqency MIDI
Serial.write(0xB0);
Serial.write(5);
Serial.write(scaled_CenterFreqValue);
//Resonance MIDI
Serial.write(0xB0);
Serial.write(6);
Serial.write(scaled_ResValue);
//Reverb DryWet MIDI
Serial.write(0xB0);
Serial.write(9);
Serial.write(scaled_DryWetValue);
//Reverb Roomsize MIDI
Serial.write(0xB0);
Serial.write(10);
Serial.write(scaled_RoomsizeValue);
//Reverb Damping Value
Serial.write(0xB0);
Serial.write(11);
Serial.write(scaled_DampingValue);
delay(1); //Small delay for more accurate potentiometer readings
}