Click These:

Wireless Midi Controller Code

#include <IRremote.h>

byte note =0;
int RECV_PIN = 11;
int redPin = 3;
int bluePin = 5;
int greenPin = 6;

int volume = 0;
int chan = 0;

byte midiHex[128]= {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F};

IRrecv irrecv(RECV_PIN);

decode_results results;

unsigned long powerValueA = 0x800F840C;
unsigned long powerValueB = 0x800F040C;

unsigned long menuValueA = 0x800F0424;
unsigned long menuValueB = 0x800F8424;

unsigned long guideValueA = 0x800F0426;
unsigned long guideValueB = 0x800F8426;

unsigned long infoValueA = 0x800F040F;
unsigned long infoValueB = 0x800F840F;

unsigned long exitValueA = 0x800F0423;
unsigned long exitValueB = 0x800F8423;

unsigned long okValueA = 0x800F0422;
unsigned long okValueB = 0x800F8422;

unsigned long playValueA = 0x800F0416;
unsigned long playValueB = 0x800F8416;

unsigned long stopValueA = 0x800F0419;
unsigned long stopValueB = 0x800F8419;

unsigned long pauseValueA = 0x800F0418;
unsigned long pauseValueB = 0x800F8418;

unsigned long recordValueA = 0x800F0417;
unsigned long recordValueB = 0x800F8417;

unsigned long volumeUpValueA = 0x800F0410;
unsigned long volumeUpValueB = 0x800F8410;

unsigned long volumeDownValueA = 0x800F0411;
unsigned long volumeDownValueB = 0x800F8411;

unsigned long channelUpValueA = 0x800F0412;
unsigned long channelUpValueB = 0x800F8412;

unsigned long channelDownValueA = 0x800F0413;
unsigned long channelDownValueB = 0x800F8413;



void noteSend(char midiChannel, char cmd, char data1, char data2) 
{
  cmd = cmd | midiChannel;   // merge channel number
  Serial.print(cmd, BYTE);   // or Serial.write(cmd); for arduino ide 1.0
  Serial.print(data1, BYTE); // or Serial.write(data1); for arduino ide 1.0
  Serial.print(data2, BYTE); // or Serial.write(data2); for arduino ide 1.0
}

void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  digitalWrite(redPin, HIGH);
  digitalWrite(bluePin, HIGH);
  digitalWrite(greenPin, HIGH);
}

void loop()
{
  if (irrecv.decode(&results))
  {
    if(results.value == powerValueA)
    {
         noteSend(0x09, 0xB0, 0x08, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, HIGH);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(30);
          
    }
    
    else if(results.value == powerValueB)
    {
         noteSend(0x09, 0xB0, 0x08, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, HIGH);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(30);
          
    }
    
    else if(results.value == menuValueA)
     {
       noteSend(0x09, 0xB0, 0x09, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(30);
     }
     
      else if(results.value == menuValueB)
     {
       noteSend(0x09, 0xB0, 0x09, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(30);
     }
     
    else if(results.value == guideValueA)
     {
       noteSend(0x09, 0xB0, 0x0A, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, HIGH);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(30);
     }
     
else if(results.value == guideValueB)
     {
       noteSend(0x09, 0xB0, 0x0A, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, HIGH);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(30);
     }
     
    else if(results.value == infoValueA)
     {
       noteSend(0x09, 0xB0, 0x0B, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(30);
     }
     
     else if(results.value == infoValueB)
     {
       noteSend(0x09, 0xB0, 0x0B, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(30);
     }
     
    else if(results.value == exitValueA)
     {
       noteSend(0x09, 0xB0, 0x0C, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(30);
     }
    
    else if(results.value == exitValueB)
     {
       noteSend(0x09, 0xB0, 0x0C, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(30);
     }
else if(results.value == okValueA)
     {
       noteSend(0x09, 0xB0, 0x0D, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(30);
     }
    
    else if(results.value == okValueB)
     {
       noteSend(0x09, 0xB0, 0x0D, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(30);
     }
     
     else if(results.value == playValueA)
     {
       noteSend(0x09, 0xB0, 0x0E, 0x7F);
          digitalWrite(3, HIGH);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(30);
     }
    
    else if(results.value == playValueB)
     {
       noteSend(0x09, 0xB0, 0x0E, 0x7F);
          digitalWrite(3, HIGH);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(30);
     }
     
     else if(results.value == stopValueA)
     {
       noteSend(0x09, 0xB0, 0x0F, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, HIGH);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(30);
     }
    
    else if(results.value == stopValueB)
     {
       noteSend(0x09, 0xB0, 0x0F, 0x7F);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(70);
          digitalWrite(3, HIGH);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(30);
     }
    
    else if(results.value == pauseValueA)
     {
       noteSend(0x09, 0xB0, 0x10, 0x7F);
          digitalWrite(3, HIGH);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(70);
          digitalWrite(3, HIGH);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(30);
     }
    
    else if(results.value == pauseValueB)
     {
       noteSend(0x09, 0xB0, 0x10, 0x7F);
          digitalWrite(3, HIGH);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(70);
          digitalWrite(3, HIGH);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(30);
     }
    
     else if(results.value == volumeUpValueA)
     {    if(volume<=126)
         {
            volume = volume +1;
            noteSend(0x08, 0xB0, midiHex[chan], midiHex[volume]);
            digitalWrite(3, HIGH);
            digitalWrite(5, HIGH);
            digitalWrite(6, LOW);
            delay(30);
            digitalWrite(3, LOW);
            digitalWrite(5, LOW);
            digitalWrite(6, HIGH);
            delay(10);
         }
     }
    
    else if(results.value == volumeUpValueB)
     {
       if(volume<=126)
         {
          volume = volume +1;
          noteSend(0x08, 0xB0, midiHex[chan], midiHex[volume]);
          digitalWrite(3, HIGH);
          digitalWrite(5, HIGH);
          digitalWrite(6, LOW);
          delay(30);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(10);
         }
     }
    
    else if(results.value == volumeDownValueA)
     {
       if(volume>=1)
         {
          volume = volume -1;              
          noteSend(0x08, 0xB0, midiHex[chan], midiHex[volume]);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(30);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(10);
         }
     }
    
    else if(results.value == volumeDownValueB)
     {
       
       if(volume>=1)
         {
          volume = volume -1;              
          noteSend(0x08, 0xB0, midiHex[chan], midiHex[volume]);
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(30);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(10);
         }
     }
    
    
    
     else if(results.value == channelUpValueA)
     {    if(chan<=14)
         {
            chan = chan+1;
            digitalWrite(3, HIGH);
            digitalWrite(5, LOW);
            digitalWrite(6, HIGH);
            delay(75);
            digitalWrite(3, LOW);
            digitalWrite(5, LOW);
            digitalWrite(6, LOW);
            delay(25);
            
         }
     }
    
    else if(results.value == channelUpValueB)
     {
       if(chan<=14)
         {
          chan = chan+1;
          digitalWrite(3, HIGH);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(75);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, LOW);
          delay(25);
          
         }
     }
    
    else if(results.value == channelDownValueA)
     {
       if(chan>=1)
         {
          chan = chan-1;              
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(75);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(25);
          
         }
     }
    
    else if(results.value == channelDownValueB)
     {
       
       if(chan>=1)
         {
          chan = chan-1;              
          digitalWrite(3, LOW);
          digitalWrite(5, HIGH);
          digitalWrite(6, HIGH);
          delay(75);
          digitalWrite(3, LOW);
          digitalWrite(5, LOW);
          digitalWrite(6, HIGH);
          delay(25);
          
         }
     }
    
    
    irrecv.resume(); // Receive the next value
    digitalWrite(redPin, HIGH);
    digitalWrite(bluePin, HIGH);
    digitalWrite(greenPin, HIGH);
  }
}

No comments:

Post a Comment