MIDI CC Help! For Hardware Synth Control

For the love of everything that is good I do not understand how to get this to work!

Here's a quick overview of my project:

I have a Sequential Circuits Six Trak Synth which allows its parameters (i.e. vco, vcf ,lfo,vca...etc)to be controlled via midi cc.

Id like to make a simple controller to allow me to do this. The controller is designed but i cant figure out a nice clean program to use for inputing the control data. Most midi cc I've seen examples for have been for controlling things like , volume, pitch, or software not to much on controlling hardware parameters.

Can someone please give me some direction on where to start code wise and more specifically what values from the attached chart need to be implemented into the code for me to properly map the cc to an encoder or pot.

sendControlChange(Control Number,Control Value, Channel) <------(what from the attached chart do i

plug in here)

I want to map all 35 parameters but id like to do a proof of concept using the cutoff, and resonance parameter cc21 , cc22 (per the attached sheet)

Im not asking someone to write the program just need to be pointed in the right direction forgive my ignorance please be kind and constructive i have put a lot of time and research into this, i would not be posting if it wasn't a last ditch effort

six_trak_cc_chart.pdf (68.7 KB)

From the table it appears that you would send (19, 21, value, channelNumber) for cutoff frequency and (20, 22, value, channelNumber) for resonance. value and channelNumber are up to you to set to the required values.

DISCLAIMER : I know nothing about MIDI and/or MIDI interfaces.

The control number for cutoff is 21 and for resonance is 22. The control value for cutoff can be any number from 0 to 127. For resonance the control value can be from 0 to 63.
The channel is whichever MIDI channel your synth is set up to use. For example, to set the resonance to its full value on MIDI channel 3 you would use:

sendControlChange(22,63,3);

Pete

Thanks Pete that's exactly the the answer i was looking for! Now the code that comes before that is how i would assign the pot value with an analog read function correct?

Something like this?

AnalogValue0 = analogRead(0); //knob 1 cutoff
  //  convert to a range from 0 to 127:
  cc = AnalogValue0/8;
  // check if analog input has changed
  if (abs(lastAnalogValue0 - cc)>1 {
    MIDI.sendControlChange(21,127,1);
    // update lastAnalogValue zero variable
    lastAnalogValue0 = cc;

AnalogValue1 = analogRead(1); //knob 2 resonance 
  //  convert to a range from 0 to 63:
  cc = AnalogValue1/8;
  // check if analog input has changed
  if (abs(lastAnalogValue1 - cc)>1 {
    MIDI.sendControlChange(22,63,1);
    // update lastAnalogValue one variable
    lastAnalogValue1 = cc;

I've fixed up some syntactic errors in your code and changed it so that it sends 'cc' instead of a constant when either pot changes value:

  AnalogValue0 = analogRead(0); //knob 1 cutoff
  //  convert to a range from 0 to 127:
  cc = AnalogValue0 / 8;
  // check if analog input has changed
  if (abs(lastAnalogValue0 - cc) > 1) {
    MIDI.sendControlChange(21, cc, 1);
    // update lastAnalogValue zero variable
    lastAnalogValue0 = cc;
  }
  AnalogValue1 = analogRead(1); //knob 2 resonance
  //  convert to a range from 0 to 63:
  cc = AnalogValue1 / 8;
  // check if analog input has changed
  if (abs(lastAnalogValue1 - cc) > 1) {
    MIDI.sendControlChange(22, cc, 1);
    // update lastAnalogValue one variable
    lastAnalogValue1 = cc;
  }

Pete

el_supremo:
I've fixed up some syntactic errors in your code and changed it so that it sends 'cc' instead of a constant when either pot changes value:

  AnalogValue0 = analogRead(0); //knob 1 cutoff

//  convert to a range from 0 to 127:
 cc = AnalogValue0 / 8;
 // check if analog input has changed
 if (abs(lastAnalogValue0 - cc) > 1) {
   MIDI.sendControlChange(21, cc, 1);
   // update lastAnalogValue zero variable
   lastAnalogValue0 = cc;
 }
 AnalogValue1 = analogRead(1); //knob 2 resonance
 //  convert to a range from 0 to 63:
 cc = AnalogValue1 / 8;
 // check if analog input has changed
 if (abs(lastAnalogValue1 - cc) > 1) {
   MIDI.sendControlChange(22, cc, 1);
   // update lastAnalogValue one variable
   lastAnalogValue1 = cc;
 }




Pete

Dude you are amazing! thanks so much Pete I'll let you know how it goes with in the next couple of days