Midi for capacitive sensor

im doing this proyect, but i want that when i touch the drawing, a midi message is sent.

This is the code that im trying to use, with the MIDI library. Im also using loopmidi to create a virtual midi port and Hairless midi.

the error is "'Button' does not name a type; did you mean 'ultoa'?"

can anybody explain to me what i have to do for this to work?

#include <MIDI.h>


// Pin for the LED
int LEDPin = 13;
// Pin to connect to your drawing
int capSensePin = 2;
// This is how high the sensor needs to read in order
//  to trigger a touch.  You'll find this number
//  by trial and error, or you could take readings at 
//  the start of the program to dynamically calculate this.
int touchedCutoff = 60;


#include <MIDI.h>
  MIDI_CREATE_DEFAULT_INSTANCE();
int nota;

byte NUMBER_BUTTONS = 1;
Button BU1(2, 0, 60, 1, 5 );

Button *BUTTONS[] {&BU1};

void setup(){

  // Set up the LED
  pinMode(LEDPin, OUTPUT);
  digitalWrite(LEDPin, LOW);

MIDI.begin();
      Serial.begin(115200); //Cambiamos la velocidad del puerto serie
  
}

void loop(){
  // If the capacitive sensor reads above a certain threshold,
  //  turn on the LED
  if (readCapacitivePin(capSensePin) > touchedCutoff) {
    digitalWrite(LEDPin, HIGH);
    MIDI.sendNoteOn(60, 127, 1);
  delay (100);
  MIDI.sendNoteOff(60, 127, 1); //ilencia la nota
  delay (100);
  }
  else {
    digitalWrite(LEDPin, LOW);
  }
  
  // Every 500 ms, print the value of the capacitive sensor
  if ( (millis() % 500) == 0){
    Serial.print("Capacitive Sensor on Pin 2 reads: ");
    Serial.println(readCapacitivePin(capSensePin));
  }
}

// readCapacitivePin
//  Input: Arduino pin number
//  Output: A number, from 0 to 17 expressing
//          how much capacitance is on the pin
//  When you touch the pin, or whatever you have
//  attached to it, the number will get higher
//  In order for this to work now,
// The pin should have a 1+Megaohm resistor pulling
//  it up to +5v.
uint8_t readCapacitivePin(int pinToMeasure){
  // This is how you declare a variable which
  //  will hold the PORT, PIN, and DDR registers
  //  on an AVR
  volatile uint8_t* port;
  volatile uint8_t* ddr;
  volatile uint8_t* pin;
  // Here we translate the input pin number from
  //  Arduino pin number to the AVR PORT, PIN, DDR,
  //  and which bit of those registers we care about.
  byte bitmask;
  if ((pinToMeasure >= 0) && (pinToMeasure <= 7)){
    port = &PORTD;
    ddr = &DDRD;
    bitmask = 1 << pinToMeasure;
    pin = &PIND;
  }
  if ((pinToMeasure > 7) && (pinToMeasure <= 13)){
    port = &PORTB;
    ddr = &DDRB;
    bitmask = 1 << (pinToMeasure - 8);
    pin = &PINB;
  }
  if ((pinToMeasure > 13) && (pinToMeasure <= 19)){
    port = &PORTC;
    ddr = &DDRC;
    bitmask = 1 << (pinToMeasure - 13);
    pin = &PINC;
  }
  // Discharge the pin first by setting it low and output
  *port &= ~(bitmask);
  *ddr  |= bitmask;
  delay(1);
  // Make the pin an input WITHOUT the internal pull-up on
  *ddr &= ~(bitmask);
  // Now see how long the pin to get pulled up
  int cycles = 16000;
  for(int i = 0; i < cycles; i++){
    if (*pin & bitmask){
      cycles = i;
      break;
    }
  }
  // Discharge the pin again by setting it low and output
  //  It's important to leave the pins low if you want to 
  //  be able to touch more than 1 sensor at a time - if
  //  the sensor is left pulled high, when you touch
  //  two sensors, your body will transfer the charge between
  //  sensors.
  *port &= ~(bitmask);
  *ddr  |= bitmask;
  
  return cycles;
}

Typically, 'Button' refers to a type of object that comes with a button library. You need to include that at the top of your sketch along with that #include "Midi.h"

Cross-posted: https://forum.arduino.cc/index.php?topic=640885.msg4337169#msg4337169

You don't use these in the sketch, get rid of them.

byte NUMBER_BUTTONS = 1;
Button BU1(2, 0, 60, 1, 5 );

Button *BUTTONS[] {&BU1};

When you draw your touch spot make it extra heavy and dark to get more graphite on the spot.

If you surround your spot(s) with a grounded e-h-d-graphite outline (especially if you have > 1 touch spot ) you will get more sure touch detects.

You might also do a search on capacitive touch slider. A long thin triangle will couple with a finger more at the wide end than at the point end.

@Alejocorti

DO NOT CROSS POST.
Other deleted.

Could you READ THIS POST before further use of the forum as it will aid you in getting the most out of it.

Bob.

Also you can draw on one side, turn the paper over and touch the other, which may have a printed design. No tape needed.