buenas soy nuevo usuario en este foro pero lo sigo los post desde hace ya mucho y a cuenta de eso me a surgido interes x el tema de arduino y el midi. hace años monte esta controladora casera con un mando de la play, midiyoke y todo el tema pero la faena era que la señal q saca es en cc y me interesa en note para asi usar el drum rack de ableton.por otro lado era que cuando usaba en cc al intentar encender varias pista ala vez simulando un drum rack los programas se saturaban,bueno la duda es seria posible sacar de arduino señal en note atrabes del propio cable de usb para ya retomar este proyecto ya apartado gracias un saludo.
Drum pad con arduino
OFERTAS Ver todas
-
-20%Technics SL-1200M7 Lamborghini
-
-6%Elektron Digitakt II (B-Stock)
-
-7%Modal Argon8 (B-Stock)
bueno como veo que nadie responde actualizo el proyecto con material nuevo,asi en un futuro puede que alguien necesite algo de este post.
indagando y gracias al amigo the man with the x-ray eyes de este foro tube oportunidad de ir preparando mi arduino mega 2560.
el codigo es :
//linea 1
const int buttonDoPin = 2;//numeracion de pin
const int button2Pin = 3;
const int button3Pin = 4;
const int button4Pin = 5;
//linea 2
const int button5Pin = 8;
const int button6Pin = 9;
const int button7Pin = 10;
const int button8Pin = 11;
//linea 3
const int button9Pin = 22;
const int button10Pin = 24;
const int button11Pin = 26;
const int button12Pin = 28;
//linea 4
const int button13Pin = 23;
const int button14Pin = 25;
const int button15Pin = 27;
const int button16Pin = 29;
//linea 1
int noteDo = 36; //MIDI note 69=A (440hz)
int note2= 37;
int note3= 38;
int note4= 39;
//linea 2
int note5= 40;
int note6= 41;
int note7= 42;
int note8= 43;
//linea3
int note9= 44;
int note10= 45;
int note11= 46;
int note12= 47;
// linea4
int note13= 48;
int note14= 49;
int note15= 50;
int note16= 51;
int buttonDoState = 0;// current state of the button
int button2State = 0;
int button3State = 0;
int button4State = 0;
int button5State = 0;
int button6State = 0;
int button7State = 0;
int button8State = 0;
int button9State = 0;
int button10State = 0;
int button11State = 0;
int button12State = 0;
int button13State = 0;
int button14State = 0;
int button15State = 0;
int button16State = 0;
int lastButtonDoState = 0;
int lastButton2State = 0;
int lastButton3State = 0;
int lastButton4State = 0;
int lastButton5State = 0;
int lastButton6State = 0;
int lastButton7State = 0;
int lastButton8State = 0;
int lastButton9State = 0;
int lastButton10State = 0;
int lastButton11State = 0;
int lastButton12State = 0;
int lastButton13State = 0;
int lastButton14State = 0;
int lastButton15State = 0;
int lastButton16State = 0;
int val;
void setup() {
// initialize the button pin as a input:
pinMode(buttonDoPin, INPUT);
pinMode(button2Pin, INPUT);
pinMode(button3Pin, INPUT);
pinMode(button4Pin, INPUT);
pinMode(button5Pin, INPUT);
pinMode(button6Pin, INPUT);
pinMode(button7Pin, INPUT);
pinMode(button8Pin, INPUT);
pinMode(button9Pin, INPUT);
pinMode(button10Pin, INPUT);
pinMode(button11Pin, INPUT);
pinMode(button12Pin, INPUT);
pinMode(button13Pin, INPUT);
pinMode(button14Pin, INPUT);
pinMode(button15Pin, INPUT);
pinMode(button16Pin, INPUT);
// initialize serial communication:
// Set MIDI baud rate:
Serial.begin(31250);
}
void loop() {
buttonDoState = digitalRead(buttonDoPin);
if (buttonDoState == 0)
{ noteOn(0x90, noteDo, 0x00);}
else if (buttonDoState == lastButtonDoState)
{}
else { noteOn(0x90, noteDo, 0x45);}
button2State = digitalRead(button2Pin);
if (button2State == 0)
{ noteOn(0x90, note2, 0x00);}
else if (button2State == lastButton2State)
{}
else { noteOn(0x90, note2, 0x45);}
button3State = digitalRead(button3Pin);
if (button3State == 0)
{ noteOn(0x90, note3, 0x00);}
else if (button3State == lastButton3State)
{}
else { noteOn(0x90, note3, 0x45);}
button4State = digitalRead(button4Pin);
if (button4State == 0)
{ noteOn(0x90, note4, 0x00);}
else if (button4State == lastButton4State)
{}
else { noteOn(0x90, note4, 0x45);}
button5State = digitalRead(button5Pin);
if (button5State == 0)
{ noteOn(0x90, note5, 0x00);}
else if (button5State == lastButton5State)
{}
else { noteOn(0x90, note5, 0x45);}
button6State = digitalRead(button6Pin);
if (button6State == 0)
{ noteOn(0x90, note6, 0x00);}
else if (button6State == lastButton6State)
{}
else { noteOn(0x90, note6, 0x45);}
button7State = digitalRead(button7Pin);
if (button7State == 0)
{ noteOn(0x90, note7, 0x00);}
else if (button7State == lastButton7State)
{}
else { noteOn(0x90, note7, 0x45);}
button8State = digitalRead(button8Pin);
if (button8State == 0)
{ noteOn(0x90, note8, 0x00);}
else if (button8State == lastButton8State)
{}
else { noteOn(0x90, note8, 0x45);}
button9State = digitalRead(button9Pin);
if (button9State == 0)
{ noteOn(0x90, note9, 0x00);}
else if (button9State == lastButton9State)
{}
else { noteOn(0x90, note9, 0x45);}
button10State = digitalRead(button10Pin);
if (button10State == 0)
{ noteOn(0x90, note10, 0x00);}
else if (button10State == lastButton10State)
{}
else { noteOn(0x90, note10, 0x45);}
button11State = digitalRead(button11Pin);
if (button11State == 0)
{ noteOn(0x90, note11, 0x00);}
else if (button11State == lastButton11State)
{}
else { noteOn(0x90, note11, 0x45);}
button12State = digitalRead(button12Pin);
if (button12State == 0)
{ noteOn(0x90, note12, 0x00);}
else if (button12State == lastButton12State)
{}
else { noteOn(0x90, note12, 0x45);}
button13State = digitalRead(button13Pin);
if (button13State == 0)
{ noteOn(0x90, note13, 0x00);}
else if (button13State == lastButton13State)
{}
else { noteOn(0x90, note13, 0x45);}
button14State = digitalRead(button14Pin);
if (button14State == 0)
{ noteOn(0x90, note14, 0x00);}
else if (button14State == lastButton14State)
{}
else { noteOn(0x90, note14, 0x45);}
button15State = digitalRead(button15Pin);
if (button15State == 0)
{ noteOn(0x90, note15, 0x00);}
else if (button15State == lastButton15State)
{}
else { noteOn(0x90, note15, 0x45);}
button16State = digitalRead(button16Pin);
if (button16State == 0)
{ noteOn(0x90, note16, 0x00);}
else if (button16State == lastButton16State)
{}
else { noteOn(0x90, note16, 0x45);}
lastButtonDoState = buttonDoState;
lastButton2State = button2State;
lastButton3State = button3State;
lastButton4State = button4State;
lastButton5State = button5State;
lastButton6State = button6State;
lastButton7State = button7State;
lastButton8State = button8State;
lastButton9State = button9State;
lastButton10State = button10State;
lastButton11State = button11State;
lastButton12State = button12State;
lastButton13State = button13State;
lastButton14State = button14State;
lastButton15State = button15State;
lastButton16State = button16State;
}
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(byte (cmd));
Serial.write(byte (pitch));
Serial.write(byte (velocity));
}
y ya es funcional: http://www.youtube.com/watch?v=ca0SAXowqp0&feature=youtu.be
la siguiente modificacion sera instalar leds a cada pulsador,2 potenciometros para parametros de efectos etc....y si algun buen samaritamo me hechara una mano poner algun acelerometro o sensor de cercania para asi simular lo mejor posible un midi fighter 3d.
indagando y gracias al amigo the man with the x-ray eyes de este foro tube oportunidad de ir preparando mi arduino mega 2560.
el codigo es :
//linea 1
const int buttonDoPin = 2;//numeracion de pin
const int button2Pin = 3;
const int button3Pin = 4;
const int button4Pin = 5;
//linea 2
const int button5Pin = 8;
const int button6Pin = 9;
const int button7Pin = 10;
const int button8Pin = 11;
//linea 3
const int button9Pin = 22;
const int button10Pin = 24;
const int button11Pin = 26;
const int button12Pin = 28;
//linea 4
const int button13Pin = 23;
const int button14Pin = 25;
const int button15Pin = 27;
const int button16Pin = 29;
//linea 1
int noteDo = 36; //MIDI note 69=A (440hz)
int note2= 37;
int note3= 38;
int note4= 39;
//linea 2
int note5= 40;
int note6= 41;
int note7= 42;
int note8= 43;
//linea3
int note9= 44;
int note10= 45;
int note11= 46;
int note12= 47;
// linea4
int note13= 48;
int note14= 49;
int note15= 50;
int note16= 51;
int buttonDoState = 0;// current state of the button
int button2State = 0;
int button3State = 0;
int button4State = 0;
int button5State = 0;
int button6State = 0;
int button7State = 0;
int button8State = 0;
int button9State = 0;
int button10State = 0;
int button11State = 0;
int button12State = 0;
int button13State = 0;
int button14State = 0;
int button15State = 0;
int button16State = 0;
int lastButtonDoState = 0;
int lastButton2State = 0;
int lastButton3State = 0;
int lastButton4State = 0;
int lastButton5State = 0;
int lastButton6State = 0;
int lastButton7State = 0;
int lastButton8State = 0;
int lastButton9State = 0;
int lastButton10State = 0;
int lastButton11State = 0;
int lastButton12State = 0;
int lastButton13State = 0;
int lastButton14State = 0;
int lastButton15State = 0;
int lastButton16State = 0;
int val;
void setup() {
// initialize the button pin as a input:
pinMode(buttonDoPin, INPUT);
pinMode(button2Pin, INPUT);
pinMode(button3Pin, INPUT);
pinMode(button4Pin, INPUT);
pinMode(button5Pin, INPUT);
pinMode(button6Pin, INPUT);
pinMode(button7Pin, INPUT);
pinMode(button8Pin, INPUT);
pinMode(button9Pin, INPUT);
pinMode(button10Pin, INPUT);
pinMode(button11Pin, INPUT);
pinMode(button12Pin, INPUT);
pinMode(button13Pin, INPUT);
pinMode(button14Pin, INPUT);
pinMode(button15Pin, INPUT);
pinMode(button16Pin, INPUT);
// initialize serial communication:
// Set MIDI baud rate:
Serial.begin(31250);
}
void loop() {
buttonDoState = digitalRead(buttonDoPin);
if (buttonDoState == 0)
{ noteOn(0x90, noteDo, 0x00);}
else if (buttonDoState == lastButtonDoState)
{}
else { noteOn(0x90, noteDo, 0x45);}
button2State = digitalRead(button2Pin);
if (button2State == 0)
{ noteOn(0x90, note2, 0x00);}
else if (button2State == lastButton2State)
{}
else { noteOn(0x90, note2, 0x45);}
button3State = digitalRead(button3Pin);
if (button3State == 0)
{ noteOn(0x90, note3, 0x00);}
else if (button3State == lastButton3State)
{}
else { noteOn(0x90, note3, 0x45);}
button4State = digitalRead(button4Pin);
if (button4State == 0)
{ noteOn(0x90, note4, 0x00);}
else if (button4State == lastButton4State)
{}
else { noteOn(0x90, note4, 0x45);}
button5State = digitalRead(button5Pin);
if (button5State == 0)
{ noteOn(0x90, note5, 0x00);}
else if (button5State == lastButton5State)
{}
else { noteOn(0x90, note5, 0x45);}
button6State = digitalRead(button6Pin);
if (button6State == 0)
{ noteOn(0x90, note6, 0x00);}
else if (button6State == lastButton6State)
{}
else { noteOn(0x90, note6, 0x45);}
button7State = digitalRead(button7Pin);
if (button7State == 0)
{ noteOn(0x90, note7, 0x00);}
else if (button7State == lastButton7State)
{}
else { noteOn(0x90, note7, 0x45);}
button8State = digitalRead(button8Pin);
if (button8State == 0)
{ noteOn(0x90, note8, 0x00);}
else if (button8State == lastButton8State)
{}
else { noteOn(0x90, note8, 0x45);}
button9State = digitalRead(button9Pin);
if (button9State == 0)
{ noteOn(0x90, note9, 0x00);}
else if (button9State == lastButton9State)
{}
else { noteOn(0x90, note9, 0x45);}
button10State = digitalRead(button10Pin);
if (button10State == 0)
{ noteOn(0x90, note10, 0x00);}
else if (button10State == lastButton10State)
{}
else { noteOn(0x90, note10, 0x45);}
button11State = digitalRead(button11Pin);
if (button11State == 0)
{ noteOn(0x90, note11, 0x00);}
else if (button11State == lastButton11State)
{}
else { noteOn(0x90, note11, 0x45);}
button12State = digitalRead(button12Pin);
if (button12State == 0)
{ noteOn(0x90, note12, 0x00);}
else if (button12State == lastButton12State)
{}
else { noteOn(0x90, note12, 0x45);}
button13State = digitalRead(button13Pin);
if (button13State == 0)
{ noteOn(0x90, note13, 0x00);}
else if (button13State == lastButton13State)
{}
else { noteOn(0x90, note13, 0x45);}
button14State = digitalRead(button14Pin);
if (button14State == 0)
{ noteOn(0x90, note14, 0x00);}
else if (button14State == lastButton14State)
{}
else { noteOn(0x90, note14, 0x45);}
button15State = digitalRead(button15Pin);
if (button15State == 0)
{ noteOn(0x90, note15, 0x00);}
else if (button15State == lastButton15State)
{}
else { noteOn(0x90, note15, 0x45);}
button16State = digitalRead(button16Pin);
if (button16State == 0)
{ noteOn(0x90, note16, 0x00);}
else if (button16State == lastButton16State)
{}
else { noteOn(0x90, note16, 0x45);}
lastButtonDoState = buttonDoState;
lastButton2State = button2State;
lastButton3State = button3State;
lastButton4State = button4State;
lastButton5State = button5State;
lastButton6State = button6State;
lastButton7State = button7State;
lastButton8State = button8State;
lastButton9State = button9State;
lastButton10State = button10State;
lastButton11State = button11State;
lastButton12State = button12State;
lastButton13State = button13State;
lastButton14State = button14State;
lastButton15State = button15State;
lastButton16State = button16State;
}
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(byte (cmd));
Serial.write(byte (pitch));
Serial.write(byte (velocity));
}
y ya es funcional: http://www.youtube.com/watch?v=ca0SAXowqp0&feature=youtu.be
la siguiente modificacion sera instalar leds a cada pulsador,2 potenciometros para parametros de efectos etc....y si algun buen samaritamo me hechara una mano poner algun acelerometro o sensor de cercania para asi simular lo mejor posible un midi fighter 3d.
Mola!
Buen curro...
Si me permites una sugerencia, estaría bien que colgases también el esquema para que sea útil para cualquiera que caiga en este post (y para documentarlo para ti tambiénYo suelo usar el Fritzing, que es muy fácil de usar y te permite hacer una imagen gráfica, el plano lógico y el de impresión para pcb. Además es software libre.
Saludos!
Buen curro...
Si me permites una sugerencia, estaría bien que colgases también el esquema para que sea útil para cualquiera que caiga en este post (y para documentarlo para ti tambiénYo suelo usar el Fritzing, que es muy fácil de usar y te permite hacer una imagen gráfica, el plano lógico y el de impresión para pcb. Además es software libre.
Saludos!
muchas gracias por la informacion subire varios esquemas por que puede que alguien se limite a solo los 16 pads pero yo ire algo mas lejos o esa es la intencion: leds a cada boton,montar 4 pulsadores mas 2 potenciometros para efectos y ya seria la leche meterle un acelerometro para controlar algun parametro mas.en cuanto pueda subo el esquema de este de 16.
ultima actualizacion
nuevo codigo drum pad 16 botones 16 leds:
//linea 1
const int buttonDoPin = 2;//numeracion de pin
const int button2Pin = 3;
const int button3Pin = 4;
const int button4Pin = 5;
//linea 2
const int button5Pin = 8;
const int button6Pin = 9;
const int button7Pin = 10;
const int button8Pin = 11;
//linea 3
const int button9Pin = 22;
const int button10Pin = 24;
const int button11Pin = 26;
const int button12Pin = 28;
//linea 4
const int button13Pin = 23;
const int button14Pin = 25;
const int button15Pin = 27;
const int button16Pin = 29;
//linea 1
int noteDo = 36; //MIDI note 69=A (440hz)
int note2= 37;
int note3= 38;
int note4= 39;
//linea 2
int note5= 40;
int note6= 41;
int note7= 42;
int note8= 43;
//linea3
int note9= 44;
int note10= 45;
int note11= 46;
int note12= 47;
// linea4
int note13= 48;
int note14= 49;
int note15= 50;
int note16= 51;
// linea 1
int leddo=30;// numero de pin para led
int led2=32;
int led3=34;
int led4=36;
// linea 2
int led5=38;
int led6=40;
int led7=42;
int led8=44;
// linea 3
int led9=31;
int led10=33;
int led11=35;
int led12=37;
// linea 4
int led13=39;
int led14=41;
int led15=43;
int led16=45;
// linea 1
int pulsadordo=2;//numero de pin para pulsador
int pulsador2=3;
int pulsador3=4;
int pulsador4=5;
// linea 2
int pulsador5=8;
int pulsador6=9;
int pulsador7=10;
int pulsador8=11;
// linea 3
int pulsador9=22;
int pulsador10=24;
int pulsador11=26;
int pulsador12=28;
// linea 4
int pulsador13=23;
int pulsador14=25;
int pulsador15=27;
int pulsador16=29;
int buttonDoState = 0;// current state of the button
int button2State = 0;
int button3State = 0;
int button4State = 0;
int button5State = 0;
int button6State = 0;
int button7State = 0;
int button8State = 0;
int button9State = 0;
int button10State = 0;
int button11State = 0;
int button12State = 0;
int button13State = 0;
int button14State = 0;
int button15State = 0;
int button16State = 0;
int lastButtonDoState = 0;
int lastButton2State = 0;
int lastButton3State = 0;
int lastButton4State = 0;
int lastButton5State = 0;
int lastButton6State = 0;
int lastButton7State = 0;
int lastButton8State = 0;
int lastButton9State = 0;
int lastButton10State = 0;
int lastButton11State = 0;
int lastButton12State = 0;
int lastButton13State = 0;
int lastButton14State = 0;
int lastButton15State = 0;
int lastButton16State = 0;
int val;
void setup() {
// linea 1
pinMode(pulsadordo, INPUT); //Configurar el pulsador como una entrada
pinMode(pulsador2, INPUT);
pinMode(pulsador3, INPUT);
pinMode(pulsador4, INPUT);
// linea 2
pinMode(pulsador5, INPUT);
pinMode(pulsador6, INPUT);
pinMode(pulsador7, INPUT);
pinMode(pulsador8, INPUT);
// linea 3
pinMode(pulsador9, INPUT);
pinMode(pulsador10, INPUT);
pinMode(pulsador11, INPUT);
pinMode(pulsador12, INPUT);
pinMode(pulsador13, INPUT);
pinMode(pulsador14, INPUT);
pinMode(pulsador15, INPUT);
pinMode(pulsador16, INPUT);
// linea 1
pinMode(leddo,OUTPUT); //Configurar el LED como una salida
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
// linea 2
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
// linea 3
pinMode(led9,OUTPUT);
pinMode(led10,OUTPUT);
pinMode(led11,OUTPUT);
pinMode(led12,OUTPUT);
// linea 4
pinMode(led13,OUTPUT);
pinMode(led14,OUTPUT);
pinMode(led15,OUTPUT);
pinMode(led16,OUTPUT);
// initialize the button pin as a input:
pinMode(buttonDoPin, INPUT);
pinMode(button2Pin, INPUT);
pinMode(button3Pin, INPUT);
pinMode(button4Pin, INPUT);
pinMode(button5Pin, INPUT);
pinMode(button6Pin, INPUT);
pinMode(button7Pin, INPUT);
pinMode(button8Pin, INPUT);
pinMode(button9Pin, INPUT);
pinMode(button10Pin, INPUT);
pinMode(button11Pin, INPUT);
pinMode(button12Pin, INPUT);
pinMode(button13Pin, INPUT);
pinMode(button14Pin, INPUT);
pinMode(button15Pin, INPUT);
pinMode(button16Pin, INPUT);
// initialize serial communication:
// Set MIDI baud rate:
Serial.begin(31250);
}
void loop() {
//Condicional para saber estado del pulsador
if (digitalRead(pulsadordo)==HIGH)
{
//Pulsador oprimido
digitalWrite(leddo,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(leddo,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador2)==HIGH)
{
//Pulsador oprimido
digitalWrite(led2,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led2,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador3)==HIGH)
{
//Pulsador oprimido
digitalWrite(led3,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led3,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador4)==HIGH)
{
//Pulsador oprimido
digitalWrite(led4,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led4,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador5)==HIGH)
{
//Pulsador oprimido
digitalWrite(led5,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led5,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador6)==HIGH)
{
//Pulsador oprimido
digitalWrite(led6,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led6,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador7)==HIGH)
{
//Pulsador oprimido
digitalWrite(led7,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led7,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador8)==HIGH)
{
//Pulsador oprimido
digitalWrite(led8,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led8,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador9)==HIGH)
{
//Pulsador oprimido
digitalWrite(led9,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led9,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador10)==HIGH)
{
//Pulsador oprimido
digitalWrite(led10,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led10,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador11)==HIGH)
{
//Pulsador oprimido
digitalWrite(led11,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led11,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador12)==HIGH)
{
//Pulsador oprimido
digitalWrite(led12,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led12,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador13)==HIGH)
{
//Pulsador oprimido
digitalWrite(led13,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led13,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador14)==HIGH)
{
//Pulsador oprimido
digitalWrite(led14,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led14,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador15)==HIGH)
{
//Pulsador oprimido
digitalWrite(led15,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led15,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador16)==HIGH)
{
//Pulsador oprimido
digitalWrite(led16,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led16,LOW); //Apaga el LED
}
buttonDoState = digitalRead(buttonDoPin);
if (buttonDoState == 0)
{ noteOn(0x90, noteDo, 0x00);}
else if (buttonDoState == lastButtonDoState)
{}
else { noteOn(0x90, noteDo, 0x45);}
button2State = digitalRead(button2Pin);
if (button2State == 0)
{ noteOn(0x90, note2, 0x00);}
else if (button2State == lastButton2State)
{}
else { noteOn(0x90, note2, 0x45);}
button3State = digitalRead(button3Pin);
if (button3State == 0)
{ noteOn(0x90, note3, 0x00);}
else if (button3State == lastButton3State)
{}
else { noteOn(0x90, note3, 0x45);}
button4State = digitalRead(button4Pin);
if (button4State == 0)
{ noteOn(0x90, note4, 0x00);}
else if (button4State == lastButton4State)
{}
else { noteOn(0x90, note4, 0x45);}
button5State = digitalRead(button5Pin);
if (button5State == 0)
{ noteOn(0x90, note5, 0x00);}
else if (button5State == lastButton5State)
{}
else { noteOn(0x90, note5, 0x45);}
button6State = digitalRead(button6Pin);
if (button6State == 0)
{ noteOn(0x90, note6, 0x00);}
else if (button6State == lastButton6State)
{}
else { noteOn(0x90, note6, 0x45);}
button7State = digitalRead(button7Pin);
if (button7State == 0)
{ noteOn(0x90, note7, 0x00);}
else if (button7State == lastButton7State)
{}
else { noteOn(0x90, note7, 0x45);}
button8State = digitalRead(button8Pin);
if (button8State == 0)
{ noteOn(0x90, note8, 0x00);}
else if (button8State == lastButton8State)
{}
else { noteOn(0x90, note8, 0x45);}
button9State = digitalRead(button9Pin);
if (button9State == 0)
{ noteOn(0x90, note9, 0x00);}
else if (button9State == lastButton9State)
{}
else { noteOn(0x90, note9, 0x45);}
button10State = digitalRead(button10Pin);
if (button10State == 0)
{ noteOn(0x90, note10, 0x00);}
else if (button10State == lastButton10State)
{}
else { noteOn(0x90, note10, 0x45);}
button11State = digitalRead(button11Pin);
if (button11State == 0)
{ noteOn(0x90, note11, 0x00);}
else if (button11State == lastButton11State)
{}
else { noteOn(0x90, note11, 0x45);}
button12State = digitalRead(button12Pin);
if (button12State == 0)
{ noteOn(0x90, note12, 0x00);}
else if (button12State == lastButton12State)
{}
else { noteOn(0x90, note12, 0x45);}
button13State = digitalRead(button13Pin);
if (button13State == 0)
{ noteOn(0x90, note13, 0x00);}
else if (button13State == lastButton13State)
{}
else { noteOn(0x90, note13, 0x45);}
button14State = digitalRead(button14Pin);
if (button14State == 0)
{ noteOn(0x90, note14, 0x00);}
else if (button14State == lastButton14State)
{}
else { noteOn(0x90, note14, 0x45);}
button15State = digitalRead(button15Pin);
if (button15State == 0)
{ noteOn(0x90, note15, 0x00);}
else if (button15State == lastButton15State)
{}
else { noteOn(0x90, note15, 0x45);}
button16State = digitalRead(button16Pin);
if (button16State == 0)
{ noteOn(0x90, note16, 0x00);}
else if (button16State == lastButton16State)
{}
else { noteOn(0x90, note16, 0x45);}
lastButtonDoState = buttonDoState;
lastButton2State = button2State;
lastButton3State = button3State;
lastButton4State = button4State;
lastButton5State = button5State;
lastButton6State = button6State;
lastButton7State = button7State;
lastButton8State = button8State;
lastButton9State = button9State;
lastButton10State = button10State;
lastButton11State = button11State;
lastButton12State = button12State;
lastButton13State = button13State;
lastButton14State = button14State;
lastButton15State = button15State;
lastButton16State = button16State;
}
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(byte (cmd));
Serial.write(byte (pitch));
Serial.write(byte (velocity));
}
y esquema espero que en un futuro sea de alluda para alguien que no se quiera gastar mucho en un midi fighter jeje.yo mientras tanto seguire modificando y actualizando el controlador.
nuevo codigo drum pad 16 botones 16 leds:
//linea 1
const int buttonDoPin = 2;//numeracion de pin
const int button2Pin = 3;
const int button3Pin = 4;
const int button4Pin = 5;
//linea 2
const int button5Pin = 8;
const int button6Pin = 9;
const int button7Pin = 10;
const int button8Pin = 11;
//linea 3
const int button9Pin = 22;
const int button10Pin = 24;
const int button11Pin = 26;
const int button12Pin = 28;
//linea 4
const int button13Pin = 23;
const int button14Pin = 25;
const int button15Pin = 27;
const int button16Pin = 29;
//linea 1
int noteDo = 36; //MIDI note 69=A (440hz)
int note2= 37;
int note3= 38;
int note4= 39;
//linea 2
int note5= 40;
int note6= 41;
int note7= 42;
int note8= 43;
//linea3
int note9= 44;
int note10= 45;
int note11= 46;
int note12= 47;
// linea4
int note13= 48;
int note14= 49;
int note15= 50;
int note16= 51;
// linea 1
int leddo=30;// numero de pin para led
int led2=32;
int led3=34;
int led4=36;
// linea 2
int led5=38;
int led6=40;
int led7=42;
int led8=44;
// linea 3
int led9=31;
int led10=33;
int led11=35;
int led12=37;
// linea 4
int led13=39;
int led14=41;
int led15=43;
int led16=45;
// linea 1
int pulsadordo=2;//numero de pin para pulsador
int pulsador2=3;
int pulsador3=4;
int pulsador4=5;
// linea 2
int pulsador5=8;
int pulsador6=9;
int pulsador7=10;
int pulsador8=11;
// linea 3
int pulsador9=22;
int pulsador10=24;
int pulsador11=26;
int pulsador12=28;
// linea 4
int pulsador13=23;
int pulsador14=25;
int pulsador15=27;
int pulsador16=29;
int buttonDoState = 0;// current state of the button
int button2State = 0;
int button3State = 0;
int button4State = 0;
int button5State = 0;
int button6State = 0;
int button7State = 0;
int button8State = 0;
int button9State = 0;
int button10State = 0;
int button11State = 0;
int button12State = 0;
int button13State = 0;
int button14State = 0;
int button15State = 0;
int button16State = 0;
int lastButtonDoState = 0;
int lastButton2State = 0;
int lastButton3State = 0;
int lastButton4State = 0;
int lastButton5State = 0;
int lastButton6State = 0;
int lastButton7State = 0;
int lastButton8State = 0;
int lastButton9State = 0;
int lastButton10State = 0;
int lastButton11State = 0;
int lastButton12State = 0;
int lastButton13State = 0;
int lastButton14State = 0;
int lastButton15State = 0;
int lastButton16State = 0;
int val;
void setup() {
// linea 1
pinMode(pulsadordo, INPUT); //Configurar el pulsador como una entrada
pinMode(pulsador2, INPUT);
pinMode(pulsador3, INPUT);
pinMode(pulsador4, INPUT);
// linea 2
pinMode(pulsador5, INPUT);
pinMode(pulsador6, INPUT);
pinMode(pulsador7, INPUT);
pinMode(pulsador8, INPUT);
// linea 3
pinMode(pulsador9, INPUT);
pinMode(pulsador10, INPUT);
pinMode(pulsador11, INPUT);
pinMode(pulsador12, INPUT);
pinMode(pulsador13, INPUT);
pinMode(pulsador14, INPUT);
pinMode(pulsador15, INPUT);
pinMode(pulsador16, INPUT);
// linea 1
pinMode(leddo,OUTPUT); //Configurar el LED como una salida
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
// linea 2
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
// linea 3
pinMode(led9,OUTPUT);
pinMode(led10,OUTPUT);
pinMode(led11,OUTPUT);
pinMode(led12,OUTPUT);
// linea 4
pinMode(led13,OUTPUT);
pinMode(led14,OUTPUT);
pinMode(led15,OUTPUT);
pinMode(led16,OUTPUT);
// initialize the button pin as a input:
pinMode(buttonDoPin, INPUT);
pinMode(button2Pin, INPUT);
pinMode(button3Pin, INPUT);
pinMode(button4Pin, INPUT);
pinMode(button5Pin, INPUT);
pinMode(button6Pin, INPUT);
pinMode(button7Pin, INPUT);
pinMode(button8Pin, INPUT);
pinMode(button9Pin, INPUT);
pinMode(button10Pin, INPUT);
pinMode(button11Pin, INPUT);
pinMode(button12Pin, INPUT);
pinMode(button13Pin, INPUT);
pinMode(button14Pin, INPUT);
pinMode(button15Pin, INPUT);
pinMode(button16Pin, INPUT);
// initialize serial communication:
// Set MIDI baud rate:
Serial.begin(31250);
}
void loop() {
//Condicional para saber estado del pulsador
if (digitalRead(pulsadordo)==HIGH)
{
//Pulsador oprimido
digitalWrite(leddo,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(leddo,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador2)==HIGH)
{
//Pulsador oprimido
digitalWrite(led2,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led2,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador3)==HIGH)
{
//Pulsador oprimido
digitalWrite(led3,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led3,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador4)==HIGH)
{
//Pulsador oprimido
digitalWrite(led4,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led4,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador5)==HIGH)
{
//Pulsador oprimido
digitalWrite(led5,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led5,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador6)==HIGH)
{
//Pulsador oprimido
digitalWrite(led6,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led6,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador7)==HIGH)
{
//Pulsador oprimido
digitalWrite(led7,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led7,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador8)==HIGH)
{
//Pulsador oprimido
digitalWrite(led8,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led8,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador9)==HIGH)
{
//Pulsador oprimido
digitalWrite(led9,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led9,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador10)==HIGH)
{
//Pulsador oprimido
digitalWrite(led10,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led10,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador11)==HIGH)
{
//Pulsador oprimido
digitalWrite(led11,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led11,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador12)==HIGH)
{
//Pulsador oprimido
digitalWrite(led12,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led12,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador13)==HIGH)
{
//Pulsador oprimido
digitalWrite(led13,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led13,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador14)==HIGH)
{
//Pulsador oprimido
digitalWrite(led14,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led14,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador15)==HIGH)
{
//Pulsador oprimido
digitalWrite(led15,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led15,LOW); //Apaga el LED
}
//Condicional para saber estado del pulsador
if (digitalRead(pulsador16)==HIGH)
{
//Pulsador oprimido
digitalWrite(led16,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led16,LOW); //Apaga el LED
}
buttonDoState = digitalRead(buttonDoPin);
if (buttonDoState == 0)
{ noteOn(0x90, noteDo, 0x00);}
else if (buttonDoState == lastButtonDoState)
{}
else { noteOn(0x90, noteDo, 0x45);}
button2State = digitalRead(button2Pin);
if (button2State == 0)
{ noteOn(0x90, note2, 0x00);}
else if (button2State == lastButton2State)
{}
else { noteOn(0x90, note2, 0x45);}
button3State = digitalRead(button3Pin);
if (button3State == 0)
{ noteOn(0x90, note3, 0x00);}
else if (button3State == lastButton3State)
{}
else { noteOn(0x90, note3, 0x45);}
button4State = digitalRead(button4Pin);
if (button4State == 0)
{ noteOn(0x90, note4, 0x00);}
else if (button4State == lastButton4State)
{}
else { noteOn(0x90, note4, 0x45);}
button5State = digitalRead(button5Pin);
if (button5State == 0)
{ noteOn(0x90, note5, 0x00);}
else if (button5State == lastButton5State)
{}
else { noteOn(0x90, note5, 0x45);}
button6State = digitalRead(button6Pin);
if (button6State == 0)
{ noteOn(0x90, note6, 0x00);}
else if (button6State == lastButton6State)
{}
else { noteOn(0x90, note6, 0x45);}
button7State = digitalRead(button7Pin);
if (button7State == 0)
{ noteOn(0x90, note7, 0x00);}
else if (button7State == lastButton7State)
{}
else { noteOn(0x90, note7, 0x45);}
button8State = digitalRead(button8Pin);
if (button8State == 0)
{ noteOn(0x90, note8, 0x00);}
else if (button8State == lastButton8State)
{}
else { noteOn(0x90, note8, 0x45);}
button9State = digitalRead(button9Pin);
if (button9State == 0)
{ noteOn(0x90, note9, 0x00);}
else if (button9State == lastButton9State)
{}
else { noteOn(0x90, note9, 0x45);}
button10State = digitalRead(button10Pin);
if (button10State == 0)
{ noteOn(0x90, note10, 0x00);}
else if (button10State == lastButton10State)
{}
else { noteOn(0x90, note10, 0x45);}
button11State = digitalRead(button11Pin);
if (button11State == 0)
{ noteOn(0x90, note11, 0x00);}
else if (button11State == lastButton11State)
{}
else { noteOn(0x90, note11, 0x45);}
button12State = digitalRead(button12Pin);
if (button12State == 0)
{ noteOn(0x90, note12, 0x00);}
else if (button12State == lastButton12State)
{}
else { noteOn(0x90, note12, 0x45);}
button13State = digitalRead(button13Pin);
if (button13State == 0)
{ noteOn(0x90, note13, 0x00);}
else if (button13State == lastButton13State)
{}
else { noteOn(0x90, note13, 0x45);}
button14State = digitalRead(button14Pin);
if (button14State == 0)
{ noteOn(0x90, note14, 0x00);}
else if (button14State == lastButton14State)
{}
else { noteOn(0x90, note14, 0x45);}
button15State = digitalRead(button15Pin);
if (button15State == 0)
{ noteOn(0x90, note15, 0x00);}
else if (button15State == lastButton15State)
{}
else { noteOn(0x90, note15, 0x45);}
button16State = digitalRead(button16Pin);
if (button16State == 0)
{ noteOn(0x90, note16, 0x00);}
else if (button16State == lastButton16State)
{}
else { noteOn(0x90, note16, 0x45);}
lastButtonDoState = buttonDoState;
lastButton2State = button2State;
lastButton3State = button3State;
lastButton4State = button4State;
lastButton5State = button5State;
lastButton6State = button6State;
lastButton7State = button7State;
lastButton8State = button8State;
lastButton9State = button9State;
lastButton10State = button10State;
lastButton11State = button11State;
lastButton12State = button12State;
lastButton13State = button13State;
lastButton14State = button14State;
lastButton15State = button15State;
lastButton16State = button16State;
}
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(byte (cmd));
Serial.write(byte (pitch));
Serial.write(byte (velocity));
}
y esquema espero que en un futuro sea de alluda para alguien que no se quiera gastar mucho en un midi fighter jeje.yo mientras tanto seguire modificando y actualizando el controlador.
Al final lo conseguiste!
vamos a ver cómo se da lo de los potis, lo de los cc ya te dije que lo tengo pendiente, y se me acumula el trabajo y la falta de tiempo , pero estaré atento a las novedades que cuelgues. Ahora tengo que meter en su caja el "paduino" que colgué por aquí, y para el siguiente proyecto necesitaré estas órdenes aparte de las notas midi. Por cierto, yo en vez de potis quiero usar una pantalla táctil de Nintendo DS, que creo que no es muy complicado, aunque tengo que investigar todavía...
A ver si entre los dos (y quien se apunte) terminamos documentando bien todo este tinglao!
Gracias por el esquema y enhorabuena por el proyecto!
Saludos!
vamos a ver cómo se da lo de los potis, lo de los cc ya te dije que lo tengo pendiente, y se me acumula el trabajo y la falta de tiempo , pero estaré atento a las novedades que cuelgues. Ahora tengo que meter en su caja el "paduino" que colgué por aquí, y para el siguiente proyecto necesitaré estas órdenes aparte de las notas midi. Por cierto, yo en vez de potis quiero usar una pantalla táctil de Nintendo DS, que creo que no es muy complicado, aunque tengo que investigar todavía...
A ver si entre los dos (y quien se apunte) terminamos documentando bien todo este tinglao!
Gracias por el esquema y enhorabuena por el proyecto!
Saludos!
hola israel ugalde, si kisiera agregar otros 13botones de arcadea como seria el codigo?? no se nada de arduino pero comenze hace tiempo un proyecto que ahi tengo parado, quisiera utilizar tu codigo para terminar mi proyecto, tambien como podria hacerlo para integrar algunos potenciometros?? unos 14 jejejeje espero puedas ayudarme porfavor, yo tengo un codigo que encontre en una pagina llamada indestructables pero nunca lo pude hechar a andar, si te interesa cuelgo el link, saludos y suerte!!!
buenas heve si tu idea es agregar otros 13 botones mas tendrias ir copian por grupos :en el primer codigo que es sin led,donde acaba en 16 sigue dando valores asta 29 y su correspomdiente pin ejemplo: const int button16Pin = 29;
" const int button17pin = 30; etc...
el tema de los potenciometros ya me tiene mas chinado por que no soy capaz de ponerlo en funcionamiento aver si nos echa una mano alguien.y el tema del codigo o ese link estaria interesante aver si sacamos algo de el.
" const int button17pin = 30; etc...
el tema de los potenciometros ya me tiene mas chinado por que no soy capaz de ponerlo en funcionamiento aver si nos echa una mano alguien.y el tema del codigo o ese link estaria interesante aver si sacamos algo de el.
este es el proyecto , tiene botones de arcadea y potenciometros a ver si sirve de algo, en estos dias continuare mi proyecto a ver como me va saludos y suerte!!!
http://www.instructables.com/id/Arcade-Button-MIDI-Controller/
http://www.instructables.com/id/Arcade-Button-MIDI-Controller/
Israel Ugalde Labajos escribió:el tema de los potenciometros ya me tiene mas chinado por que no soy capaz de ponerlo en funcionamiento aver si nos echa una mano alguien.y el tema del codigo o ese link estaria interesante aver si sacamos algo de el.
Igual te puedes basar en el código que utilicé yo aquí para los potenciómetros
https://www.hispasonic.com/foros/mi-1er-controlador-midi-arduino/382085
saludos!
Una duda con la conexión de los pulsadores, se supone que un pulsador tiene dos puntos de conexión y en el esquema se le conectan 3, el que va a masa, el que va a Vcc y el que va a la entrada digital de la placa, entonces mi duda es, como se conectan.
El de Vcc y el de la entrada digital los dos en el mismo y el de masa solo o el de masa con la entrada digital y el de Vcc solo.
Un saludo
El de Vcc y el de la entrada digital los dos en el mismo y el de masa solo o el de masa con la entrada digital y el de Vcc solo.
Un saludo
El voltaje por un lado y por el otro al pin digital y a masa (con una resistencia de 10K)
aquí puedes ver el esquema más simple:
https://www.hispasonic.com/foros/piano-midi-arduino/419226
Saludos!
aquí puedes ver el esquema más simple:
https://www.hispasonic.com/foros/piano-midi-arduino/419226
Saludos!
hola compañeros e seguido todas las instrucciones , mi prototipo es sin leds, asta ahora todo bien , solo tengo un problema con las señales midi, en traktor al momento de asignar un control a uno de los botones de arcadea que uso, la señal midi del arduino es inestable, es decir, no me da un solo valor, me da muchisimos , al usarlo en reason , oprimo un boton usando un sinte de bateria, no me da un solo sonido, suena como si apretara muchisims veces el boton, es decir, en veez de oprimirlo y sonara una sola vez el bombo, suena como metralleta, jejeje muchas veces, en bomes midi traslator pro 1.6 me hace lo mismo, trato de asignar un boton en el programa y al ponerle midi learn los parametros midi saltan como locos, en vez de reconocerme un solo parametro por cada boton, me podrian ayudar??, gracias y espero su respuesta... saludos
Hilos similares
Nuevo post
Regístrate o identifícate para poder postear en este hilo