/*! * 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; } }