J'ai donc créé un système qui envoi des messages midi à partir de boutons poussoirs.
Le système met en solo une piste sur LogicPro, donc active un son pour le guitare synthé ...
Le tout sous Arduino.
Prix de revient ... 5€
Proto :
https://youtu.be/NE2sVrVOfyA
Version finale :
https://www.youtube.com/watch?v=4oBrcZGy_qs








Ps: j'ai pas réussi à incruster les vidéos, comment je fais ? ça fonctionne d'habitude ....
https://www.youtube.com/watch?v=4oBrcZGy_qs[/youtube]
Le Code sous Arduino, entrées A0 à A5, sortie en D0(TX) :
Code : Tout sélectionner
#include <MIDI.h>
#include <midi_defs.h>
#include <midi_message.h>
#include <midi_namespace.h>
#include <midi_settings.h>
MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut);
int Bp0;
int Bp1;
int Bp2;
int Bp3;
int Bp4;
int Bp5;
int Flag0 = 0;
int Flag1 = 0;
int Flag2 = 0;
int Flag3 = 0;
int Flag4 = 0;
int Flag5 = 0;
int PrevBp = 32;
void setup() {
Serial.begin(31250);
//Serial.begin(9600); // setup serial for MIDI
}
void loop()
{
Bp0= analogRead (A0);
Bp1= analogRead (A1);
Bp2= analogRead (A2);
Bp3= analogRead (A3);
Bp4= analogRead (A4);
Bp5= analogRead (A5);
if ( Bp0>=500 && Flag0==0)
{
midiOut.sendControlChange(PrevBp,127,1);
midiOut.sendControlChange(20,127,1);
PrevBp=20;
Flag0=1;
Flag1=0;
Flag2=0;
Flag3=0;
Flag4=0;
Flag5=0;
}
if ( Bp1>=500 && Flag1==0)
{
midiOut.sendControlChange(PrevBp,127,1);
midiOut.sendControlChange(21,127,1);
PrevBp=21;
Flag0=0;
Flag1=1;
Flag2=0;
Flag3=0;
Flag4=0;
Flag5=0;
}
if ( Bp2>=500 && Flag2==0)
{
midiOut.sendControlChange(PrevBp,127,1);
midiOut.sendControlChange(22,127,1);
PrevBp=22;
Flag0=0;
Flag1=0;
Flag2=1;
Flag3=0;
Flag4=0;
Flag5=0;
}
if ( Bp3>=500 && Flag3==0)
{
midiOut.sendControlChange(PrevBp,127,1);
midiOut.sendControlChange(23,127,1);
PrevBp=23;
Flag0=0;
Flag1=0;
Flag2=0;
Flag3=1;
Flag4=0;
Flag5=0;
}
if ( Bp4>=500 && Flag4==0)
{
midiOut.sendControlChange(PrevBp,127,1);
midiOut.sendControlChange(24,127,1);
PrevBp=24;
Flag0=0;
Flag1=0;
Flag2=0;
Flag3=0;
Flag4=1;
Flag5=0;
}
if ( Bp5>=500 && Flag5==0)
{
midiOut.sendControlChange(PrevBp,127,1);
midiOut.sendControlChange(25,127,1);
PrevBp=25;
Flag0=0;
Flag1=0;
Flag2=0;
Flag3=0;
Flag4=0;
Flag5=1;
}
}