Vu meter what is wrong

it cant be so hard when you bress a button to run this

void loop() {
  MIDI.read();
  VUbuttonvalue = digitalRead (VUbutton);  //WHEN THE BUTTOS IS PRESS I WANT TO CHOOSE THE VUMETER (RIGHT AND LEFT)
  if (VUbuttonvalue == 0) {
    delay(50);
    VUbuttonvalue = digitalRead (VUbutton);
    if (VUbuttonvalue == 1) {
      value1_ = old + 1;
    }
  }
}
else {
  value1_ = old
            delay (500);
}
switch (value1_) {
case 1, 2, 3, 4, 5, 6, 7, :
  break;
}

////////////////////////////////////////////
//VU METER LEFT CD PLAYER

void VUmeter(byte channel, byte number, byte value) {
  int value1_ = value;
  if (value1_ != VUbuttonvalue) {
    // Left VU
    if (number == 12) {

      switch (value1_) {
        case 0:
          for (int i = 0; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          break;
        case 1:
          for (int i = 1; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          ShiftPWM.SetOne(VuL[0], green);
          break;
        case 2:
          for (int i = 2; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 2; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 3:
          for (int i = 3; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 3; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 4:
          for (int i = 4; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 4; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 5:
          for (int i = 5; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 6:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          break;
        case 7:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          ShiftPWM.SetOne(VuL[6], red);
          break;
      }
    }
  }
}


// VUMETER RIGHT CDPLAYER
if (number == 13)
  switch (value1_) {
    case 0:
      for (int i = 0; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      break;
    case 1:
      for (int i = 1; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      ShiftPWM.SetOne(VuR[0], green);
      break;
    case 2:
      for (int i = 2; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 2; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 3:
      for (int i = 3; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 3; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 4:
      for (int i = 4; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 4; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 5:
      for (int i = 5; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 6:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      break;
    case 7:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      ShiftPWM.SetOne(VuR[6], red);
      break;

  }

and when you press the same button to run this.

VUbuttonvalue = value;


////////////////////////////////////////////
// led feedback  1

void VUmeter_main (byte channel, byte number, byte value) {

  //int value_ = round(map(value, 0, 127, 0, 7));
  int value_ = value;

  if (value_ != VUbuttonvalue) {

    if (number == 14)

      switch (value_) {
        case 0:
          for (int i = 0; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          break;
        case 1:
          for (int i = 1; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          ShiftPWM.SetOne(VuL[0], green);
          break;
        case 2:
          for (int i = 2; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 2; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 3:
          for (int i = 3; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 3; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 4:
          for (int i = 4; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 4; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 5:
          for (int i = 5; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 6:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          break;
        case 7:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          ShiftPWM.SetOne(VuL[6], red);
          break;
      }
  }
}


////////////////////////////////////////////
// led feedback  1

if (number == 15) {

  switch (value_) {
    case 0:
      for (int i = 0; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      break;
    case 1:
      for (int i = 1; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      ShiftPWM.SetOne(VuR[0], green);
      break;
    case 2:
      for (int i = 2; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 2; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 3:
      for (int i = 3; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 3; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 4:
      for (int i = 4; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 4; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 5:
      for (int i = 5; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 6:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      break;
    case 7:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      ShiftPWM.SetOne(VuR[6], red);
      break;

  }
  VUbuttonvalue = value;

No more help from me until you post your complete sketch rather than unconnected bits and pieces

this is all the sketch i post it and before

const int ShiftPWM_latchPin = 8;
#define SHIFTPWM_NOSPI
const int ShiftPWM_dataPin = 11;
const int ShiftPWM_clockPin = 12;

const bool ShiftPWM_invertOutputs = false;
const bool ShiftPWM_balanceLoad = false;

/////////////////////////////////////////////
// LIBRARIES
#include <ShiftPWM.h>  // Bit shifter library >> https://github.com/elcojacobs/ShiftPWM - include ShiftPWM.h after setting the pins!
// If using with ATmega328 - Uno, Mega, Nano...
#include <MIDI.h> // MIDI library (by Forty Seven Effects) >> https://github.com/FortySevenEffects/arduino_midi_library/releases/tag/4.3.1
MIDI_CREATE_DEFAULT_INSTANCE();

/////////////////////////////////////////////
// midi
byte midiCh = 1; // *Canal midi a ser utilizado
byte note = 36; // *Nota mais grave que sera utilizada
byte cc = 1; // *CC mais baixo que sera utilizado

/////////////////////////////////////////////
// Leds
const byte ledNum = 24; // total number of leds used
unsigned char maxBrightness = 255;
unsigned char pwmFrequency = 75;
unsigned int numRegisters = 3;
unsigned int numOutputs = numRegisters * 8;
unsigned int numRGBLeds = numRegisters * 8 / 3;
unsigned int fadingMode = 0; //start with all LED's off.

unsigned int VuL[7] = {1, 2, 3, 4, 5, 6, 7}; // VU left pins  MULTIPLEXER PINS
unsigned int VuR[7] = {15, 14, 13, 12, 11, 10, 9}; // VU righ pins  MULTIPLEXER PINS

unsigned int red = 180;
unsigned int green = 255;
unsigned int blue = 10;
unsigned int yellow = 100;

//////////////////////////////////////////////
//button
#define VUbutton 10   // BUTTON ON PIN 10
int value1_ = 0;      // TO HOLD THE OLD BUTTON STATE
int old = 0;          // TO HOLD THE LAST STATE
int VUbuttonvalue = 1;


/////////////////////////////////////////////
void setup() {

  Serial.begin(115000);

  MIDI.turnThruOff();
  pinMode (VUbutton, INPUT_PULLUP ); //PIN 10 IS INPUTT

  /////////////////////////////////////////////
  // Midi in
  MIDI.setHandleControlChange(VUmeter_main);
  MIDI.setHandleControlChange(VUmeter);


  // Sets the number of 8-bit registers that are used.
  ShiftPWM.SetAmountOfRegisters(numRegisters);
  ShiftPWM.SetAll(0);
  // Sets the number of 8-bit registers that are used.
  ShiftPWM.SetAmountOfRegisters(numRegisters);
  ShiftPWM.SetPinGrouping(1); //This is the default, but I added here to demonstrate how to use the funtion
  ShiftPWM.Start(pwmFrequency, maxBrightness);
}

void loop() {
  MIDI.read();
  VUbuttonvalue = digitalRead (VUbutton);  //WHEN THE BUTTOS IS PRESS I WANT TO CHOOSE THE VUMETER (RIGHT AND LEFT)
  if (VUbuttonvalue == 0) {
    delay(50);
    VUbuttonvalue = digitalRead (VUbutton);
    if (VUbuttonvalue == 1) {
      value1_ = old + 1;
    }
  }
}
else {
  value1_ = old
            delay (500);
}
switch (value1_) {
case 1, 2, 3, 4, 5, 6, 7, :
  break;
}

////////////////////////////////////////////
//VU METER LEFT CD PLAYER

void VUmeter(byte channel, byte number, byte value) {
  int value1_ = value;
  if (value1_ != VUbuttonvalue) {
    // Left VU
    if (number == 12) {

      switch (value1_) {
        case 0:
          for (int i = 0; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          break;
        case 1:
          for (int i = 1; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          ShiftPWM.SetOne(VuL[0], green);
          break;
        case 2:
          for (int i = 2; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 2; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 3:
          for (int i = 3; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 3; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 4:
          for (int i = 4; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 4; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 5:
          for (int i = 5; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 6:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          break;
        case 7:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          ShiftPWM.SetOne(VuL[6], red);
          break;
      }
    }
  }
}


// VUMETER RIGHT CDPLAYER
if (number == 13)
  switch (value1_) {
    case 0:
      for (int i = 0; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      break;
    case 1:
      for (int i = 1; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      ShiftPWM.SetOne(VuR[0], green);
      break;
    case 2:
      for (int i = 2; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 2; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 3:
      for (int i = 3; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 3; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 4:
      for (int i = 4; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 4; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 5:
      for (int i = 5; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 6:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      break;
    case 7:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      ShiftPWM.SetOne(VuR[6], red);
      break;

  }



VUbuttonvalue = value;


////////////////////////////////////////////
// led feedback  1

void VUmeter_main (byte channel, byte number, byte value) {

  //int value_ = round(map(value, 0, 127, 0, 7));
  int value_ = value;

  if (value_ != VUbuttonvalue) {

    if (number == 14)

      switch (value_) {
        case 0:
          for (int i = 0; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          break;
        case 1:
          for (int i = 1; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          ShiftPWM.SetOne(VuL[0], green);
          break;
        case 2:
          for (int i = 2; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 2; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 3:
          for (int i = 3; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 3; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 4:
          for (int i = 4; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 4; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 5:
          for (int i = 5; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 6:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          break;
        case 7:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          ShiftPWM.SetOne(VuL[6], red);
          break;
      }
  }
}


////////////////////////////////////////////
// led feedback  1

if (number == 15) {

  switch (value_) {
    case 0:
      for (int i = 0; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      break;
    case 1:
      for (int i = 1; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      ShiftPWM.SetOne(VuR[0], green);
      break;
    case 2:
      for (int i = 2; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 2; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 3:
      for (int i = 3; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 3; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 4:
      for (int i = 4; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 4; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 5:
      for (int i = 5; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 6:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      break;
    case 7:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      ShiftPWM.SetOne(VuR[6], red);
      break;

  }
  VUbuttonvalue = value;

type or paste code here

the latest code still has the extra brace and a compiler error, and therefore cannot run

}
// VUMETER RIGHT CDPLAYER
if (number == 13)

Start by fixing the obvious problems

Here is one

else {
  value1_ = old
            delay (500);

it crazy.. full off error now that i remove the extra brace } from take a look at the full code above my friend, am sure you find what is the wrong

C:\Users\alina\Documents\traktorino-master\traktorino-master\Code\Traktorino__play_with_leds\Traktorino__play_with_leds_no_compile\Traktorino__play_with_leds_no_compile.ino: In function 'void setup()':
Traktorino__play_with_leds_no_compile:58:31: error: 'VUmeter_main' was not declared in this scope
   MIDI.setHandleControlChange(VUmeter_main);
                               ^~~~~~~~~~~~
C:\Users\alina\Documents\traktorino-master\traktorino-master\Code\Traktorino__play_with_leds\Traktorino__play_with_leds_no_compile\Traktorino__play_with_leds_no_compile.ino:58:31: note: suggested alternative: 'VUmeter'
   MIDI.setHandleControlChange(VUmeter_main);
                               ^~~~~~~~~~~~
                               VUmeter
C:\Users\alina\Documents\traktorino-master\traktorino-master\Code\Traktorino__play_with_leds\Traktorino__play_with_leds_no_compile\Traktorino__play_with_leds_no_compile.ino: At global scope:
Traktorino__play_with_leds_no_compile:83:1: error: expected unqualified-id before 'else'
 else {
 ^~~~
Traktorino__play_with_leds_no_compile:87:1: error: expected unqualified-id before 'switch'
 switch (value1_) {
 ^~~~~~
C:\Users\alina\Documents\traktorino-master\traktorino-master\Code\Traktorino__play_with_leds\Traktorino__play_with_leds_no_compile\Traktorino__play_with_leds_no_compile.ino: In function 'void VUmeter(byte, byte, byte)':
Traktorino__play_with_leds_no_compile:246:59: error: a function-definition is not allowed here before '{' token
 void VUmeter_main (byte channel, byte number, byte value) {
                                                           ^
Traktorino__play_with_leds_no_compile:328:11: error: 'value_' was not declared in this scope
   switch (value_) {
           ^~~~~~
C:\Users\alina\Documents\traktorino-master\traktorino-master\Code\Traktorino__play_with_leds\Traktorino__play_with_leds_no_compile\Traktorino__play_with_leds_no_compile.ino:328:11: note: suggested alternative: 'value1_'
   switch (value_) {
           ^~~~~~
           value1_
Traktorino__play_with_leds_no_compile:393:24: error: expected '}' at end of input
   VUbuttonvalue = value;
                        ^
Traktorino__play_with_leds_no_compile:393:24: error: expected '}' at end of input
exit status 1
'VUmeter_main' was not declared in this scope

Do you want the display to switch to the alternative display whilst the button is pressed or should it stay on the alternative display until the button is pressed a second time ?

something is very wrong in this part.. i don't know how to toggle the switch, when press it to call the one function, and when press it again to call the other. functions i mean is the led cases. am sure you understand what i want to do.

void loop() {
  MIDI.read();

  int VUbuttonvalue = digitalRead (VUbutton);  //WHEN THE BUTTOS IS PRESS I WANT TO CHOOSE THE VUMETER (RIGHT AND LEFT)
  if (VUbuttonvalue == 0) {
    delay(50);
    VUbuttonvalue = digitalRead (VUbutton);
    if (VUbuttonvalue == 1) {
      value1_ = old + 1;
    }
  }
}
else {
  value1_ = old
            delay (500);
}
switch (value1_) {
case 1, 2, 3, 4, 5, 6, 7, :
  break;
}

it should stay to the alternative display until the button is pressed a second time, when presed seccond time to return to the first display

Hi,
Where did you get the MIDI.h library from?

Tom... :smiley: :+1: :coffee: :australia:

from here my friend

Progress !
You need to detect when the button becomes pressed rather than when it is pressed

An example

byte currentState;
byte previousState;
const byte inputPin = A3;
byte state;

void setup()
{
  Serial.begin(115200);
  while (!Serial);
  pinMode(inputPin, INPUT_PULLUP);
}

void loop()
{
  currentState = digitalRead(inputPin);
  if (currentState != previousState & currentState == LOW) //button became pressed
  {
    state = !state;
  }
  if (state == 0)
  {
    function0();
  }
  else
  {
    function1();
  }
  previousState = currentState;
}

void function0()
{
  Serial.println("in function0");
}

void function1()
{
  Serial.println("in function1");
}

Note that the functions must not block free running of the loop() function

i will figure out how is work... thank you

I hear you. It’s great for hair, color or quantity, as well. :wink:

It gets easier, we are all born tots ignorant.

It does seem, at a glance, that you would benefit from following a course of basic instruction on using and programming the Arduino.

There are a crap-ton of options, find something that matches your learning style and current level of experience and realize that it will take some time and effort before you can pull off something like this in a manner other than one mismatched brace at a time.

a7

1 Like

are u sure is this i am looking for?

Serial.println("in function0");

Prints data to the serial port as human-readable ASCII text followed by a carriage return character (ASCII 13, or '\r') and a newline character (ASCII 10, or '\n'). This command takes the same forms as Serial.print().

i dont want to print anything to a serial port, i dont want to send date out of the arduino for my VUmeter. port receive data from DAW softwear, and this data i want to drive leds.

it just the one channel.

I know, but suppose that instead of printing something you did what you really wanted to ?

My example was to show you how to detect that a button had become pressed and to do something different when the button was pressed again.

You need to incorporate that principle into your sketch. Instead of calling function0() or function1() call the function that you want to execute

Hi,

You should be using Serial print here to help you debug your code.
Once you have it working you can remove them.
Serial comms allows you to see what value your variables have and adding flag variables work out where your code flow is going.

I know its frustrating still trying to get your code to work, but this is how you debug code with Arduino.
Thankyou for posting your errors, hopefully you will learn how to read what they mean.

Tom.... :grinning: :coffee: :coffee: :australia:

i cant do it.. this is the best i can do, another 3 hours of my life.. xaxaxaxa

the error code and is following complete sketch how is now.

C:\Users\alina\Documents\traktorino-master\traktorino-master\Code\Traktorino__play_with_leds\Traktorino__play_with_leds_no_compile\Traktorino__play_with_leds_no_compile.ino: In function 'void setup()':
Traktorino__play_with_leds_no_compile:58:31: error: 'VUmeter_main' was not declared in this scope
   MIDI.setHandleControlChange(VUmeter_main);
                               ^~~~~~~~~~~~
Traktorino__play_with_leds_no_compile:59:31: error: 'VUmeter' was not declared in this scope
   MIDI.setHandleControlChange(VUmeter);
                               ^~~~~~~
C:\Users\alina\Documents\traktorino-master\traktorino-master\Code\Traktorino__play_with_leds\Traktorino__play_with_leds_no_compile\Traktorino__play_with_leds_no_compile.ino: At global scope:
Traktorino__play_with_leds_no_compile:92:1: error: 'previousSstate' does not name a type
 previousSstate = currentState;
 ^~~~~~~~~~~~~~
Traktorino__play_with_leds_no_compile:93:1: error: expected declaration before '}' token
 }
 ^
exit status 1
'VUmeter_main' was not declared in this scope

const int ShiftPWM_latchPin = 8;
#define SHIFTPWM_NOSPI
const int ShiftPWM_dataPin = 11;
const int ShiftPWM_clockPin = 12;

const bool ShiftPWM_invertOutputs = false;
const bool ShiftPWM_balanceLoad = false;

/////////////////////////////////////////////
// LIBRARIES
#include <ShiftPWM.h>  // Bit shifter library >> https://github.com/elcojacobs/ShiftPWM - include ShiftPWM.h after setting the pins!
// If using with ATmega328 - Uno, Mega, Nano...
#include <MIDI.h> // MIDI library (by Forty Seven Effects) >> https://github.com/FortySevenEffects/arduino_midi_library/releases/tag/4.3.1
MIDI_CREATE_DEFAULT_INSTANCE();

/////////////////////////////////////////////
// midi
byte midiCh = 1; // *Canal midi a ser utilizado
byte note = 36; // *Nota mais grave que sera utilizada
byte cc = 1; // *CC mais baixo que sera utilizado
int VUbuttonvalue = 0;

/////////////////////////////////////////////
// Leds
const byte ledNum = 24; // total number of leds used
unsigned char maxBrightness = 255;
unsigned char pwmFrequency = 75;
unsigned int numRegisters = 3;
unsigned int numOutputs = numRegisters * 8;
unsigned int numRGBLeds = numRegisters * 8 / 3;
unsigned int fadingMode = 0; //start with all LED's off.

unsigned int VuL[7] = {1, 2, 3, 4, 5, 6, 7}; // VU left pins  MULTIPLEXER PINS
unsigned int VuR[7] = {15, 14, 13, 12, 11, 10, 9}; // VU righ pins  MULTIPLEXER PINS

unsigned int red = 180;
unsigned int green = 255;
unsigned int blue = 10;
unsigned int yellow = 100;

//////////////////////////////////////////////
//button
byte currentState;
byte previousSstate;
const byte VUbutton = 10;
byte state;

/////////////////////////////////////////////
void setup() {

  Serial.begin(115000);

  MIDI.turnThruOff();
  pinMode (VUbutton, INPUT_PULLUP ); //PIN 10 IS INPUTT

  /////////////////////////////////////////////
  // Midi in
  MIDI.setHandleControlChange(VUmeter_main);
  MIDI.setHandleControlChange(VUmeter);


  // Sets the number of 8-bit registers that are used.
  ShiftPWM.SetAmountOfRegisters(numRegisters);
  ShiftPWM.SetAll(0);
  // Sets the number of 8-bit registers that are used.
  ShiftPWM.SetAmountOfRegisters(numRegisters);
  ShiftPWM.SetPinGrouping(1); //This is the default, but I added here to demonstrate how to use the funtion
  ShiftPWM.Start(pwmFrequency, maxBrightness);
}

void loop() {
  MIDI.read();

  currentState = digitalRead(VUbutton);
  if (currentState != previousSstate & currentState == LOW) //button became pressed
    delay(50);
  currentState = digitalRead(VUbutton);
  {
    state = !state;
  }

  if (state == LOW); {

    switch (blue);
  }
  if (state == HIGH); {

    switch (blue);
  }
}

previousSstate = currentState;
}

////////////////////////////////////////////
//VU METER LEFT CD PLAYER

void VUmeter(byte channel, byte number, byte value) {
  int value1_ = value;
  if (value1_ != VUbuttonvalue) {
    // Left VU
    if (number == 12) {

      switch (value1_) {
        case 0:
          for (int i = 0; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          break;
        case 1:
          for (int i = 1; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          ShiftPWM.SetOne(VuL[0], green);
          break;
        case 2:
          for (int i = 2; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 2; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 3:
          for (int i = 3; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 3; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 4:
          for (int i = 4; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 4; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 5:
          for (int i = 5; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 6:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          break;
        case 7:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          ShiftPWM.SetOne(VuL[6], red);
          break;
      }
    }
  }
}



// VUMETER RIGHT CDPLAYER
if (number == 13)
  switch (value1_) {
    case 0:
      for (int i = 0; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      break;
    case 1:
      for (int i = 1; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      ShiftPWM.SetOne(VuR[0], green);
      break;
    case 2:
      for (int i = 2; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 2; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 3:
      for (int i = 3; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 3; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 4:
      for (int i = 4; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 4; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 5:
      for (int i = 5; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 6:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      break;
    case 7:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      ShiftPWM.SetOne(VuR[6], red);
      break;

  }



VUbuttonvalue = value;


////////////////////////////////////////////
// led feedback  1

void VUmeter_main (byte channel, byte number, byte value) {

  //int value_ = round(map(value, 0, 127, 0, 7));
  int value_ = value;

  if (value_ != VUbuttonvalue1) {

    if (number == 14)

      switch (value_) {
        case 0:
          for (int i = 0; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          break;
        case 1:
          for (int i = 1; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          ShiftPWM.SetOne(VuL[0], green);
          break;
        case 2:
          for (int i = 2; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 2; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 3:
          for (int i = 3; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 3; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 4:
          for (int i = 4; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 4; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 5:
          for (int i = 5; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          break;
        case 6:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          break;
        case 7:
          for (int i = 6; i < 7; i++) {
            ShiftPWM.SetOne(VuL[i], LOW);
          }
          for (int i = 0; i < 5; i++) {
            ShiftPWM.SetOne(VuL[i], green);
          }
          ShiftPWM.SetOne(VuL[5], yellow);
          ShiftPWM.SetOne(VuL[6], red);
          break;
      }
  }
}


////////////////////////////////////////////
// led feedback  1

if (number == 15) {

  switch (value_) {
    case 0:
      for (int i = 0; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      break;
    case 1:
      for (int i = 1; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      ShiftPWM.SetOne(VuR[0], green);
      break;
    case 2:
      for (int i = 2; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 2; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 3:
      for (int i = 3; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 3; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 4:
      for (int i = 4; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 4; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 5:
      for (int i = 5; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      break;
    case 6:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      break;
    case 7:
      for (int i = 6; i < 7; i++) {
        ShiftPWM.SetOne(VuR[i], LOW);
      }
      for (int i = 0; i < 5; i++) {
        ShiftPWM.SetOne(VuR[i], green);
      }
      ShiftPWM.SetOne(VuR[5], yellow);
      ShiftPWM.SetOne(VuR[6], red);
      break;

  }
}
VUbuttonvalue1 = value;
}