338 lines
8.2 KiB
Arduino
Raw Normal View History

/* travail du 20/09/2019 modification du cablage pour essai gestion par port
| port A | Broche | note | MIDI hex |
| -------- | -------- | -------- | -------- |
| A0 | 22 | C2 | 24 |
| A1 | 23 | D2 | 26 |
| A2 | 24 | E2 | 28 |
| A3 | 25 | F2 | 29 |
| A4 | 26 | G2 | 2B |
| A5 | 27 | A2 | 2D |
| A6 | 28 | B2 | 2F |
| A7 | 29 | C3 | 30 |
*/
2019-08-16 21:51:50 +02:00
bool EtatEntree24 = HIGH ;
bool VarSuivi24 = HIGH ;
2019-08-16 21:51:50 +02:00
bool EtatEntree25 = HIGH ;
bool VarSuivi25 = HIGH ;
bool EtatEntree26 = HIGH ;
bool VarSuivi26 = HIGH ;
2019-08-16 21:51:50 +02:00
bool EtatEntree27 = HIGH ;
bool VarSuivi27 = HIGH ;
2019-08-17 02:07:54 +02:00
bool EtatEntree28 = HIGH ;
bool VarSuivi28 = HIGH ;
2019-08-17 02:07:54 +02:00
2019-08-16 21:51:50 +02:00
bool EtatEntree29 = HIGH ;
bool VarSuivi29 = HIGH ;
bool EtatEntree22 = HIGH ;
bool VarSuivi22 = HIGH ;
2019-08-16 21:51:50 +02:00
bool EtatEntree23 = HIGH ;
bool VarSuivi23 = HIGH ;
2019-08-16 21:51:50 +02:00
void noteOn(int cmd, int pitch, int velocity) /* plays a MIDI note. Doesn't check to see that cmd is greater than 127,
or that data values are less than 127 */
{
Serial.write(cmd);
Serial.write(pitch);
Serial.write(velocity);
}
2019-08-16 21:51:50 +02:00
2019-08-09 21:36:53 +02:00
void setup()
{
pinMode(24,INPUT);
2019-08-16 21:51:50 +02:00
pinMode(25,INPUT);
pinMode(26,INPUT);
2019-08-16 21:51:50 +02:00
pinMode(27,INPUT);
pinMode(28,INPUT);
2019-08-16 21:51:50 +02:00
pinMode(29,INPUT);
pinMode(22,INPUT);
pinMode(23,INPUT);
2019-08-16 21:51:50 +02:00
Serial.begin(31250); /* initialisation d'un port serie au debit MIDI */
noteOn(0x80, 0x24 , 0x00 ) ; /* note off sur canal1 ; C2 ; vel 0 */
noteOn(0x80, 0x26 , 0x00 ) ; /* note off sur canal1 ; D2 ; vel 0 */
noteOn(0x80, 0x28 , 0x00 ) ; /* note off sur canal1 ; E2 ; vel 0 */
2019-08-16 21:51:50 +02:00
noteOn(0x80, 0x29 , 0x00 ) ;
noteOn(0x80, 0x2B , 0x00 ) ;
noteOn(0x80, 0x2D , 0x00 ) ;
noteOn(0x80, 0x2F , 0x00 ) ;
noteOn(0x80, 0x30 , 0x00 ) ;
2019-08-16 21:51:50 +02:00
char PortA = 0 ;
char DernierEtatPortA = 0 ;
char ModifPortA = 0 ;
2019-08-16 21:51:50 +02:00
}
void loop()
{
PortA = PINA ;
ModifPortA = DernierEtatPortA ^ DernierEtatPortA
DernierEtatPortA = PortA ;
/* FIN */
/* EtatEntree24 = digitalRead(24);
2019-08-16 21:51:50 +02:00
EtatEntree25 = digitalRead(25);
2019-08-09 21:36:53 +02:00
EtatEntree26 = digitalRead(26);
2019-09-13 22:06:50 +02:00
EtatEntree27 = digitalRead(27);
2019-08-09 21:36:53 +02:00
EtatEntree28 = digitalRead(28);
2019-09-13 22:06:50 +02:00
EtatEntree29 = digitalRead(29);
2019-08-16 21:51:50 +02:00
EtatEntree30 = digitalRead(30);
2019-09-13 22:06:50 +02:00
EtatEntree31 = digitalRead(31);
EtatEntree32 = digitalRead(32);
2019-08-16 21:51:50 +02:00
EtatEntree33 = digitalRead(33);
2019-09-13 22:06:50 +02:00
EtatEntree34 = digitalRead(34);
EtatEntree35 = digitalRead(35); */
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree24 != VarSuivi24) && (EtatEntree24 == HIGH) )
// {
// noteOn(0x80, 0x24 , 0x00) ; /* note off sur canal1 ; C2 ; vel 0 */
// /* Serial.println("touche lachee"); */
// VarSuivi24 = HIGH;
// }
//
// if ( (EtatEntree24 != VarSuivi24) && (EtatEntree24 == LOW) )
// {
// noteOn(0x90, 0x24 , 0x70) ; /* note on sur canal1 ; C2 ; vel */
// /* Serial.println("touche appuyee"); */
// VarSuivi24 = LOW;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree25 != VarSuivi25) && (EtatEntree25 == HIGH) )
// {
// // noteOn(0x80, 0x25 , 0x00) ;
// VarSuivi25 = HIGH;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree25 != VarSuivi25) && (EtatEntree25 == LOW) )
// {
// noteOn(0x90, 0x25 , 0x70) ; /* note on sur canal1 ; C2 ; vel */
// /* Serial.println("touche appuyee"); */
// VarSuivi25 = LOW;
// }
// if ( (EtatEntree26 != VarSuivi26) && (EtatEntree26 == HIGH) )
// {
// noteOn(0x80, 0x26 , 0x00) ; /* note off sur canal1 ; D2 ; vel 0 */
// /* Serial.println("touche lachee"); */
// VarSuivi26 = HIGH;
// }
2019-08-09 21:36:53 +02:00
// if ( (EtatEntree26 != VarSuivi26) && (EtatEntree26 == LOW) )
// {
// noteOn(0x90, 0x26 , 0x70) ; /* note on sur canal1 ; D2 ; vel */
// /* Serial.println("touche appuyee"); */
// VarSuivi26 = LOW;
// }
//
// if ( (EtatEntree27 != VarSuivi27) && (EtatEntree27 == HIGH) )
// {
// noteOn(0x80, 0x27 , 0x00) ; /* note off sur canal1 ; C2 ; vel 0 */
// /* Serial.println("touche lachee"); */
// VarSuivi27 = HIGH;
// }
//
// if ( (EtatEntree27 != VarSuivi27) && (EtatEntree27 == LOW) )
// {
// noteOn(0x90, 0x27 , 0x70) ; /* note on sur canal1 ; C2 ; vel */
// /* Serial.println("touche appuyee"); */
// VarSuivi27 = LOW;
// }
//
// if ( (EtatEntree28 != VarSuivi28) && (EtatEntree28 == HIGH) )
// {
// noteOn(0x80, 0x28 , 0x00) ; /* note off sur canal1 ; C2 ; vel 0 */
// /* Serial.println("touche lachee"); */
// VarSuivi28 = HIGH;
// }
//
// if ( (EtatEntree28 != VarSuivi28) && (EtatEntree28 == LOW) )
// {
// noteOn(0x90, 0x28 , 0x70) ; /* note on sur canal1 ; C2 ; vel */
// /* Serial.println("touche appuyee"); */
// VarSuivi28 = LOW;
// }
//
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree29 != VarSuivi29) && (EtatEntree29 == HIGH) )
// {
// noteOn(0x80, 0x29 , 0x00) ; /* note off sur canal1 ; ; vel 0 */
// /* Serial.println("touche lachee"); */
// VarSuivi29 = HIGH;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree29 != VarSuivi29) && (EtatEntree29 == LOW) )
// {
// noteOn(0x90, 0x29 , 0x70) ; /* note on sur canal1 ; C2 ; vel */
// /* Serial.println("touche appuyee"); */
// VarSuivi29 = LOW;
// }
// if ( (EtatEntree30 != VarSuivi30) && (EtatEntree30 == HIGH) )
// {
// noteOn(0x80, 0x2A , 0x00) ;
//
// VarSuivi30 = HIGH;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree30 != VarSuivi30) && (EtatEntree30 == LOW) )
// {
// noteOn(0x90, 0x2A , 0x70) ;
2019-08-16 21:51:50 +02:00
// VarSuivi30 = LOW;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree31 != VarSuivi31) && (EtatEntree31 == HIGH) )
// {
// noteOn(0x80, 0x2B , 0x00) ;
2019-08-16 21:51:50 +02:00
// VarSuivi31 = HIGH;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree31 != VarSuivi31) && (EtatEntree31 == LOW) )
// {
// noteOn(0x90, 0x2B , 0x70) ;
//
// VarSuivi31 = LOW;
// }
//
// if ( (EtatEntree32 != VarSuivi32) && (EtatEntree32 == HIGH) )
// {
// noteOn(0x80, 0x2C , 0x00) ;
2019-08-16 21:51:50 +02:00
// VarSuivi32 = HIGH;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree32 != VarSuivi32) && (EtatEntree32 == LOW) )
// {
// noteOn(0x90, 0x2C , 0x70) ;
2019-08-16 21:51:50 +02:00
// VarSuivi32 = LOW;
// }
2019-08-09 21:36:53 +02:00
// if ( (EtatEntree33 != VarSuivi33) && (EtatEntree33 == HIGH) )
// {
// noteOn(0x80, 0x2D , 0x00) ;
2019-08-16 21:51:50 +02:00
// VarSuivi33 = HIGH;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree33 != VarSuivi33) && (EtatEntree33 == LOW) )
// {
// noteOn(0x90, 0x2D , 0x70) ;
2019-08-16 21:51:50 +02:00
// VarSuivi33 = LOW;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree34 != VarSuivi34) && (EtatEntree34 == HIGH) )
// {
// noteOn(0x80, 0x2E , 0x00) ;
//
// VarSuivi34 = HIGH;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree34 != VarSuivi34) && (EtatEntree34 == LOW) )
// {
// noteOn(0x90, 0x2E , 0x70) ;
2019-08-16 21:51:50 +02:00
// VarSuivi34 = LOW;
// }
2019-08-16 21:51:50 +02:00
// if ( (EtatEntree35 != VarSuivi35) && (EtatEntree35 == HIGH) )
// {
// noteOn(0x80, 0x2F , 0x00) ;
2019-08-16 21:51:50 +02:00
// VarSuivi35 = HIGH;
// }
//
// if ( (EtatEntree35 != VarSuivi35) && (EtatEntree35 == LOW) )
// {
// noteOn(0x90, 0x2F , 0x70) ;
//
// VarSuivi35 = LOW;
// }
2019-08-09 21:36:53 +02:00
2019-08-16 21:51:50 +02:00
2019-08-09 21:36:53 +02:00
/* // play notes from F#-0 (0x1E) to F#-5 (0x5A):
for (int note = 0x1E; note < 0x5A; note ++) {
//Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
noteOn(0x90, note, 0x45);
delay(100);
//Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
noteOn(0x90, note, 0x00);
delay(100); */
}
2019-09-13 22:06:50 +02:00