content: /*!
   *  copyright 2012 abudaan http://abumarkub.net
   *  code licensed under MIT 
   *  http://abumarkub.net/midibridge/license
   * 
   * 
   *  Class that has static methods that converts the data in a MIDI message to a human readable String
   *  
   */
  
  package net.abumarkub.midi;
  
  public class MIDIData {
  
      public static String getCommand(int command) {
          String description = "";
          switch (command) {
              case 128:
                  description = "NOTE OFF";
                  break;
              case 144:
                  description = "NOTE ON";
                  break;
              case 160:
                  description = "POLY AFTERTOUCH";
                  break;
              case 176:
                  description = "CONTROL CHANGE";
                  break;
              case 192:
                  description = "PROGRAM CHANGE";
                  break;
              case 208:
                  description = "CHANNEL AFTERTOUCH";
                  break;
              case 224:
                  description = "PITCH BEND";
                  break;
              case 240:
                  description = "SYSTEM EXCLUSIVE";
                  break;
              case 241:
                  description = "MIDI TIME CODE";
                  break;
              case 242:
                  description = "SONG POSITION POINTER";
                  break;
              case 243:
                  description = "SONG SELECT";
                  break;
              case 244:
                  description = "RESERVED";
                  break;
              case 245:
                  description = "RESERVED";
                  break;
              case 246:
                  description = "TUNE REQUEST";
                  break;
              case 247:
                  description = "EOX";
                  break;
              case 248:
                  description = "TIMING CLOCK";
                  break;
              case 249:
                  description = "RESERVED";
                  break;
              case 250:
                  description = "START";
                  break;
              case 251:
                  description = "CONTINUE";
                  break;
              case 252:
                  description = "STOP";
                  break;
              case 253:
                  description = "RESERVED";
                  break;
              case 254:
                  description = "ACTIVE SENSING";
                  break;
              case 255:
                  description = "SYSTEM RESET";
                  break;
          }
  
          return description;
      }
  
      public static String getControlChangeMessage(int message) {
          String description = "UNDEFINED";
          switch (message) {
              case 0:
                  description = "BANK SELECT";
                  break;
              case 1:
                  description = "MOD WHEEL";
                  break;
              case 2:
                  description = "BREATH CONTROLLER";
                  break;
              case 4:
                  description = "FOOT CONTROLLER";
                  break;
              case 5:
                  description = "PORTAMENTO TIME";
                  break;
              case 6:
                  description = "DATA ENTRY MSB";
                  break;
              case 7:
                  description = "CHANNEL VOLUME";
                  break;
              case 10:
                  description = "PANNING";
                  break;
              case 11:
                  description = "EXPRESSION CONTROLLER";
                  break;
              case 12:
                  description = "EFFECT CONTROL 1";
                  break;
              case 13:
                  description = "EFFECT CONTROL 1";
                  break;
              case 16:
                  description = "GENERAL PURPOSE CONTROLLER 1";
                  break;
              case 17:
                  description = "GENERAL PURPOSE CONTROLLER 2";
                  break;
              case 18:
                  description = "GENERAL PURPOSE CONTROLLER 3";
                  break;
              case 19:
                  description = "GENERAL PURPOSE CONTROLLER 4";
                  break;
              case 32:
                  description = "LSB FOR BANK SELECT";
                  break;
              case 33:
                  description = "LSB FOR MOD WHEEL";
                  break;
              case 34:
                  description = "LSB FOR BREATH CONTROLLER";
                  break;
              case 35:
                  description = "LSB FOR CONTROL 3";
                  break;
              case 36:
                  description = "LSB FOR FOOT CONTROLLER";
                  break;
              case 37:
                  description = "LSB FOR PORTAMENTO TIME";
                  break;
              case 38:
                  description = "LSB FOR DATA ENTRY";
                  break;
              case 39:
                  description = "LSB FOR CHANNEL VOLUME";
                  break;
              case 40:
                  description = "LSB FOR BALANCE";
                  break;
              case 41:
                  description = "LSB FOR CONTROL 9";
                  break;
              case 42:
                  description = "LSB FOR PAN";
                  break;
              case 43:
                  description = "LSB FOR EXPRESSION CONTROLLER";
                  break;
              case 44:
                  description = "LSB FOR EFFECT CONTROL 1";
                  break;
              case 45:
                  description = "LSB FOR EFFECT CONTROL 2";
                  break;
              case 46:
                  description = "LSB FOR CONTROL 14";
                  break;
              case 47:
                  description = "LSB FOR CONTROL 15";
                  break;
              case 48:
                  description = "LSB FOR GEN PURP CTRL 1";
                  break;
              case 49:
                  description = "LSB FOR GEN PURP CTRL 2";
                  break;
              case 50:
                  description = "LSB FOR GEN PURP CTRL 3";
                  break;
              case 51:
                  description = "LSB FOR GEN PURP CTRL 4";
                  break;
              case 52:
                  description = "LSB FOR CONTROL 20";
                  break;
              case 53:
                  description = "LSB FOR CONTROL 21";
                  break;
              case 54:
                  description = "LSB FOR CONTROL 22";
                  break;
              case 55:
                  description = "LSB FOR CONTROL 23";
                  break;
              case 56:
                  description = "LSB FOR CONTROL 24";
                  break;
              case 57:
                  description = "LSB FOR CONTROL 25";
                  break;
              case 58:
                  description = "LSB FOR CONTROL 26";
                  break;
              case 59:
                  description = "LSB FOR CONTROL 27";
                  break;
              case 60:
                  description = "LSB FOR CONTROL 28";
                  break;
              case 61:
                  description = "LSB FOR CONTROL 29";
                  break;
              case 62:
                  description = "LSB FOR CONTROL 30";
                  break;
              case 63:
                  description = "LSB FOR CONTROL 31";
                  break;
              case 64:
                  description = "SUSTAIN";
                  break;
              case 65:
                  description = "PORTAMENTO";
                  break;
              case 66:
                  description = "SOSTENUTO";
                  break;
              case 67:
                  description = "SOFT PEDAL";
                  break;
              case 68:
                  description = "LEGATO FOOTSWITCH";
                  break;
              case 69:
                  description = "HOLD 2";
                  break;
              case 70:
                  description = "SOUND VARIATION";
                  break;
              case 71:
                  description = "TIMBRE HARM INTENSITIVITY";
                  break;
              case 72:
                  description = "RELEASE TIME";
                  break;
              case 73:
                  description = "ATTACK";
                  break;
              case 74:
                  description = "BRIGHTNESS";
                  break;
              case 75:
                  description = "DECAY";
                  break;
              case 76:
                  description = "VIBRATO RATE";
                  break;
              case 77:
                  description = "VIBRATO DEPTH";
                  break;
              case 78:
                  description = "VIBRATO DELAY";
                  break;
              case 79:
                  description = "SOUND CONTROLLER 10";
                  break;
  
              
              case 91:
                  description = "REVERB SEND LEVEL";
                  break;
  
  
  
              case 120:
                  description = "ALL SOUND OFF";
                  break;
              case 121:
                  description = "RESET ALL CONTROLLERS";
                  break;
              case 122:
                  description = "LOCAL CONTROL";
                  break;
              case 123:
                  description = "ALL NOTES OFF";
                  break;
              case 124:
                  description = "OMNI MODE OFF";
                  break;
              case 125:
                  description = "OMNI MODE ON";
                  break;
              case 126:
                  description = "MONO MODE ON";
                  break;
              case 127:
                  description = "POLY MODE ON";
                  break;
          }
          return description;
      }
  }
  