Arduino Piano
Arduino Piano
#define matrix1 7
#define matrix2 8
#include "MIDIUSB.h"
int octave = 0; // add or subtract 8 for one octave
bool currentState[matrix1 * matrix2];
bool requestState[matrix1 * matrix2];
void setup()
{
//-----matrix1 number of pins-------
pinMode(A0,INPUT); //1
pinMode(A1,INPUT); //2
pinMode(A2,INPUT); //3
pinMode(A3,INPUT); //4
pinMode(14,INPUT); //5
pinMode(15,INPUT); //6
pinMode(16,INPUT); //7
void loop()
{
readKeys();
writeKeys();
delay(1);
}
void readKeys()
{
for(int i=0; i<matrix2; i++)
{
//---------matrix2 pins-----------
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(6,INPUT);
pinMode(7,INPUT);
pinMode(8,INPUT);
pinMode(9,INPUT);
pinMode(i+2,OUTPUT); // <--i+2 (this is your first pin number)
digitalWrite(i,LOW);
delayMicroseconds(1000);
}
}
void writeKeys()
{
for(int i=0; i<matrix1 * matrix2; i++)
{
if(requestState[i]==true && currentState[i] == false)
{
noteOn(0, 36+octave+(i*matrix2)%matrix1 * matrix2+i/matrix1, 64);
currentState[i] = requestState[i];
}