matrix method midi controller

Hi,

I would like to build a midi controller for my Roland D50 synthesizer which has around 68 CC editable parameters.
I could use multiplexing and add 56 knobs but that would be too expensive.
I prefer to use a matrix method and have only 6 or 8 knobs and use tactile switches to be able to access all parameters.
Similar matrix methodology was used to ''waldorf blofeld'' synthesizer.

Is it doable ? Any help on how to achieve it ? what coding practices should be used and what hardware is required ?

I have an arduino uno.

There is a section where you can hire somebody to do the design and software but it will cost you. Why not generate a proposal schematic, not a frizzy drawing, showing all the hardware and the links thereinto. When that is finished add one piece of hardware and gain control of it and understand your code, then the next etc. As far as coding drink lots of caffeine and stay awake all night, like a lot of us.

I don´t know this synth.

Suggestion :install control surface library .
First you want to declare your 8 pots or knobs as bankable (example for 4 bankable pots,do the same for 6 or 8 )

#include <Control_Surface.h> 
USBMIDI_Interface usbmidi; 

/*Declare a bank named bankamp.<10>bank positions.and(8)incrementDecrement CC value */
Bank<10> bankamp(8); 

/**Declare 4 potentiometers as bankable::ccpotentiometer type and 
 * connected to pins A8-A11  in arduino,  
 * declared as analog inputs,and named POTSbankCC. 
 * (this potentiometers will increment or decrement (8) values (CC)
 *  in <10> each bank position (bankamp).(First potentiometer starts on position one
 *  1 CC and last position  82 CC).*/
 Bankable::CCPotentiometer POTSbankcc[] = {   
  
  {bankamp, 8, 1},  //bank assigned "bankamp",  analog input A8 , CC1
  {bankamp, 9, 3},  //bank assigned "bankamp",  analog input A9 , CC3
  {bankamp, 10, 4},  //bank assigned "bankamp",  analog input A10 , CC4
  {bankamp, 11, 6},   //bank assigned "bankamp",  analog input A10 , CC6
 };


/** Declare two buttons as Incrementdecrementselectorleds type 
 * (this buttons will increment or decrement bank position
 *  in bankamp.(Starts on position one and finishes in position ten)
 *  declared as digital inputs,and named "bankSelectorbankamp" 
 * This buttons will show bank position 1-10 with ten 
 * different leds*/
 IncrementDecrementSelectorLEDs<10> bankSelectorbankamp = {   
  bankamp,
  {14, 15},                                // buttons connected to digital inputs 14 and 15 in arduino and ground
  {38, 43, 44, 41, 42, 39, 40, 45, 46, 47},        // LED pins connected to digital inputs 38-47 in arduino.and ground
  };

void setup() {
     Control_Surface.begin();    // Control surface library init

     pinMode(14,INPUT_PULLUP);
     pinMode(15,INPUT_PULLUP);
}
void loop() {
  Control_Surface.loop();
}

four pots..arduino uno..more pots arduino mega..you can add multiplexers and are something cheap in aliexpress see CD74HC4067 or 4051.
Control surface its something you really want to see

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.