trackloader: refactor more midi messages
This commit is contained in:
@@ -30,6 +30,53 @@ import net.runelite.cache.io.OutputStream;
|
||||
|
||||
public class TrackLoader
|
||||
{
|
||||
// Headers
|
||||
private static final int MTHD_MAGIC = 1297377380;
|
||||
private static final int MTRK_MAGIC = 1297379947;
|
||||
|
||||
// Major MIDI Messages. Bottom 4 bits are the channel.
|
||||
private static final int NOTE_ON = 0b1001_0000;
|
||||
private static final int NOTE_OFF = 0b1000_0000;
|
||||
private static final int CONTROL_CHANGE = 0b1011_0000;
|
||||
private static final int PITCH_WHEEL_CHANGE = 0b1110_0000;
|
||||
private static final int CHANNEL_PRESSURE = 0b1101_0000;
|
||||
private static final int POLYPHONIC_KEY_PRESSURE = 0b1010_0000;
|
||||
private static final int PROGRAM_CHANGE = 0b1100_0000;
|
||||
|
||||
// Meta Events
|
||||
private static final int META = 255;
|
||||
private static final int END_OF_TRACK = 47;
|
||||
private static final int TEMPO = 81;
|
||||
|
||||
// Controller messages
|
||||
private static final int CONTROLLER_BANK_SELECT = 0;
|
||||
private static final int CONTROLLER_MODULATION_WHEEL = 1;
|
||||
private static final int CONTROLLER_CHANNEL_VOLUME = 7;
|
||||
private static final int CONTROLLER_PAN = 10;
|
||||
private static final int CONTROLLER_BANK_SELECT_2 = 32;
|
||||
private static final int CONTROLLER_MODULATION_WHEEL2 = 33;
|
||||
private static final int CONTROLLER_CHANNEL_VOLUME_2 = 39;
|
||||
private static final int CONTROLLER_PAN_2 = 42;
|
||||
private static final int CONTROLLER_DAMPER_PEDAL = 64;
|
||||
private static final int CONTROLLER_PORTAMENTO = 65;
|
||||
private static final int CONTROLLER_NON_REGISTERED_PARAMETER_NUMBER_LSB = 98;
|
||||
private static final int CONTROLLER_NON_REGISTERED_PARAMETER_NUMBER_MSB = 99;
|
||||
private static final int CONTROLLER_REGISTERED_PARAMETER_NUMBER_LSB = 100;
|
||||
private static final int CONTROLLER_REGISTERED_PARAMETER_NUMBER_MSB = 101;
|
||||
private static final int CONTROLLER_ALL_SOUND_OFF = 120;
|
||||
private static final int CONTROLLER_RESET_ALL_CONTROLLERS = 121;
|
||||
private static final int CONTROLLER_ALL_NOTES_OFF = 123;
|
||||
|
||||
private static final int JAG_NOTE_ON = 0;
|
||||
private static final int JAG_NOTE_OFF = 1;
|
||||
private static final int JAG_CONTROL_CHANGE = 2;
|
||||
private static final int JAG_PITCH_BEND = 3;
|
||||
private static final int JAG_CHANNEL_PRESSURE = 4;
|
||||
private static final int JAG_POLY_PRESSURE = 5;
|
||||
private static final int JAG_PROGRAM_CHANGE = 6;
|
||||
private static final int JAG_END_OF_TRACK = 7;
|
||||
private static final int JAG_TEMPO = 23;
|
||||
|
||||
public TrackDefinition load(byte[] b)
|
||||
{
|
||||
TrackDefinition def = new TrackDefinition();
|
||||
@@ -56,61 +103,60 @@ public class TrackLoader
|
||||
|
||||
int var13;
|
||||
int opcode;
|
||||
int var15;
|
||||
int controlChangeIndex;
|
||||
for (var13 = 0; var13 < tracks; ++var13)
|
||||
{
|
||||
opcode = -1;
|
||||
|
||||
while (true)
|
||||
{
|
||||
var15 = var1.readUnsignedByte();
|
||||
if (var15 != opcode)
|
||||
controlChangeIndex = var1.readUnsignedByte();
|
||||
if (controlChangeIndex != opcode)
|
||||
{
|
||||
++offset;
|
||||
}
|
||||
|
||||
opcode = var15 & 15;
|
||||
if (var15 == 7)
|
||||
opcode = controlChangeIndex & 15;
|
||||
if (controlChangeIndex == JAG_END_OF_TRACK)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (var15 == 23)
|
||||
if (controlChangeIndex == JAG_TEMPO)
|
||||
{
|
||||
++tempoOpcodes;
|
||||
}
|
||||
else if (opcode == 0)
|
||||
else if (opcode == JAG_NOTE_ON)
|
||||
{
|
||||
++noteOnOpcodes;
|
||||
}
|
||||
else if (opcode == 1)
|
||||
else if (opcode == JAG_NOTE_OFF)
|
||||
{
|
||||
++noteOffOpcodes;
|
||||
}
|
||||
else if (opcode == 2)
|
||||
else if (opcode == JAG_CONTROL_CHANGE)
|
||||
{
|
||||
++ctrlChangeOpcodes;
|
||||
}
|
||||
else if (opcode == 3)
|
||||
else if (opcode == JAG_PITCH_BEND)
|
||||
{
|
||||
++wheelChangeOpcodes;
|
||||
}
|
||||
else if (opcode == 4)
|
||||
else if (opcode == JAG_CHANNEL_PRESSURE)
|
||||
{
|
||||
++chnnlAfterTchOpcodes;
|
||||
}
|
||||
else if (opcode == 5)
|
||||
else if (opcode == JAG_POLY_PRESSURE)
|
||||
{
|
||||
++keyAfterTchOpcodes;
|
||||
}
|
||||
else if (opcode == JAG_PROGRAM_CHANGE)
|
||||
{
|
||||
++progmChangeOpcodes;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (opcode != 6)
|
||||
{
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
++progmChangeOpcodes;
|
||||
throw new RuntimeException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -121,139 +167,140 @@ public class TrackLoader
|
||||
var13 = var1.getOffset();
|
||||
opcode = tracks + tempoOpcodes + ctrlChangeOpcodes + noteOnOpcodes + noteOffOpcodes + wheelChangeOpcodes + chnnlAfterTchOpcodes + keyAfterTchOpcodes + progmChangeOpcodes;
|
||||
|
||||
for (var15 = 0; var15 < opcode; ++var15)
|
||||
for (controlChangeIndex = 0; controlChangeIndex < opcode; ++controlChangeIndex)
|
||||
{
|
||||
var1.readVarInt();
|
||||
}
|
||||
|
||||
offset += var1.getOffset() - var13;
|
||||
var15 = var1.getOffset();
|
||||
int var16 = 0;
|
||||
int var17 = 0;
|
||||
int var18 = 0;
|
||||
int var19 = 0;
|
||||
int var20 = 0;
|
||||
int var21 = 0;
|
||||
int var22 = 0;
|
||||
int var23 = 0;
|
||||
int var24 = 0;
|
||||
int var25 = 0;
|
||||
int var26 = 0;
|
||||
int var27 = 0;
|
||||
int var28 = 0;
|
||||
controlChangeIndex = var1.getOffset();
|
||||
int modulationWheelSize = 0;
|
||||
int modulationWheel2Size = 0;
|
||||
int channelVolumeSize = 0;
|
||||
int channelVolume2Size = 0;
|
||||
int panSize = 0;
|
||||
int pan2Size = 0;
|
||||
int nonRegisteredMsbSize = 0;
|
||||
int nonRegisteredLsbSize = 0;
|
||||
int registeredNumberMsb = 0;
|
||||
int registeredLsbSize = 0;
|
||||
int commandsSize = 0;
|
||||
int otherSize = 0;
|
||||
int controllerNumber = 0;
|
||||
|
||||
int var29;
|
||||
for (var29 = 0; var29 < ctrlChangeOpcodes; ++var29)
|
||||
{
|
||||
var28 = var28 + var1.readUnsignedByte() & 127;
|
||||
if (var28 != 0 && var28 != 32)
|
||||
controllerNumber = controllerNumber + var1.readUnsignedByte() & 127;
|
||||
if (controllerNumber == CONTROLLER_BANK_SELECT || controllerNumber == CONTROLLER_BANK_SELECT_2)
|
||||
{
|
||||
if (var28 == 1)
|
||||
{
|
||||
++var16;
|
||||
}
|
||||
else if (var28 == 33)
|
||||
{
|
||||
++var17;
|
||||
}
|
||||
else if (var28 == 7)
|
||||
{
|
||||
++var18;
|
||||
}
|
||||
else if (var28 == 39)
|
||||
{
|
||||
++var19;
|
||||
}
|
||||
else if (var28 == 10)
|
||||
{
|
||||
++var20;
|
||||
}
|
||||
else if (var28 == 42)
|
||||
{
|
||||
++var21;
|
||||
}
|
||||
else if (var28 == 99)
|
||||
{
|
||||
++var22;
|
||||
}
|
||||
else if (var28 == 98)
|
||||
{
|
||||
++var23;
|
||||
}
|
||||
else if (var28 == 101)
|
||||
{
|
||||
++var24;
|
||||
}
|
||||
else if (var28 == 100)
|
||||
{
|
||||
++var25;
|
||||
}
|
||||
else if (var28 != 64 && var28 != 65 && var28 != 120 && var28 != 121 && var28 != 123)
|
||||
{
|
||||
++var27;
|
||||
}
|
||||
else
|
||||
{
|
||||
++var26;
|
||||
}
|
||||
++progmChangeOpcodes;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_MODULATION_WHEEL)
|
||||
{
|
||||
++modulationWheelSize;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_MODULATION_WHEEL2)
|
||||
{
|
||||
++modulationWheel2Size;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_CHANNEL_VOLUME)
|
||||
{
|
||||
++channelVolumeSize;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_CHANNEL_VOLUME_2)
|
||||
{
|
||||
++channelVolume2Size;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_PAN)
|
||||
{
|
||||
++panSize;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_PAN_2)
|
||||
{
|
||||
++pan2Size;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_NON_REGISTERED_PARAMETER_NUMBER_MSB)
|
||||
{
|
||||
++nonRegisteredMsbSize;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_NON_REGISTERED_PARAMETER_NUMBER_LSB)
|
||||
{
|
||||
++nonRegisteredLsbSize;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_REGISTERED_PARAMETER_NUMBER_MSB)
|
||||
{
|
||||
++registeredNumberMsb;
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_REGISTERED_PARAMETER_NUMBER_LSB)
|
||||
{
|
||||
++registeredLsbSize;
|
||||
}
|
||||
else if (controllerNumber != CONTROLLER_DAMPER_PEDAL
|
||||
&& controllerNumber != CONTROLLER_PORTAMENTO
|
||||
&& controllerNumber != CONTROLLER_ALL_SOUND_OFF
|
||||
&& controllerNumber != CONTROLLER_RESET_ALL_CONTROLLERS
|
||||
&& controllerNumber != CONTROLLER_ALL_NOTES_OFF)
|
||||
{
|
||||
++otherSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
++progmChangeOpcodes;
|
||||
++commandsSize;
|
||||
}
|
||||
}
|
||||
|
||||
var29 = 0;
|
||||
int var30 = var1.getOffset();
|
||||
var1.skip(var26);
|
||||
int var31 = var1.getOffset();
|
||||
int commandsIndex = var1.getOffset();
|
||||
var1.skip(commandsSize);
|
||||
int polyPressureIndex = var1.getOffset();
|
||||
var1.skip(keyAfterTchOpcodes);
|
||||
int var32 = var1.getOffset();
|
||||
int channelPressureIndex = var1.getOffset();
|
||||
var1.skip(chnnlAfterTchOpcodes);
|
||||
int var33 = var1.getOffset();
|
||||
int pitchWheelHighIndex = var1.getOffset();
|
||||
var1.skip(wheelChangeOpcodes);
|
||||
int var34 = var1.getOffset();
|
||||
var1.skip(var16);
|
||||
int var35 = var1.getOffset();
|
||||
var1.skip(var18);
|
||||
int var36 = var1.getOffset();
|
||||
var1.skip(var20);
|
||||
int var37 = var1.getOffset();
|
||||
int modulationWheelOffset = var1.getOffset();
|
||||
var1.skip(modulationWheelSize);
|
||||
int channelVolumeOffset = var1.getOffset();
|
||||
var1.skip(channelVolumeSize);
|
||||
int panOffset = var1.getOffset();
|
||||
var1.skip(panSize);
|
||||
int notesIndex = var1.getOffset();
|
||||
var1.skip(noteOnOpcodes + noteOffOpcodes + keyAfterTchOpcodes);
|
||||
int var38 = var1.getOffset();
|
||||
int notesOnIndex = var1.getOffset();
|
||||
var1.skip(noteOnOpcodes);
|
||||
int var39 = var1.getOffset();
|
||||
var1.skip(var27);
|
||||
int var40 = var1.getOffset();
|
||||
int otherIndex = var1.getOffset();
|
||||
var1.skip(otherSize);
|
||||
int notesOffIndex = var1.getOffset();
|
||||
var1.skip(noteOffOpcodes);
|
||||
int var41 = var1.getOffset();
|
||||
var1.skip(var17);
|
||||
int var42 = var1.getOffset();
|
||||
var1.skip(var19);
|
||||
int var43 = var1.getOffset();
|
||||
var1.skip(var21);
|
||||
int var44 = var1.getOffset();
|
||||
int modulationWheel2Offset = var1.getOffset();
|
||||
var1.skip(modulationWheel2Size);
|
||||
int channelVolume2Offset = var1.getOffset();
|
||||
var1.skip(channelVolume2Size);
|
||||
int pan2Offset = var1.getOffset();
|
||||
var1.skip(pan2Size);
|
||||
int programChangeIndex = var1.getOffset();
|
||||
var1.skip(progmChangeOpcodes);
|
||||
int var45 = var1.getOffset();
|
||||
int pitchWheelLowIndex = var1.getOffset();
|
||||
var1.skip(wheelChangeOpcodes);
|
||||
int var46 = var1.getOffset();
|
||||
var1.skip(var22);
|
||||
int var47 = var1.getOffset();
|
||||
var1.skip(var23);
|
||||
int var48 = var1.getOffset();
|
||||
var1.skip(var24);
|
||||
int var49 = var1.getOffset();
|
||||
var1.skip(var25);
|
||||
int var50 = var1.getOffset();
|
||||
int nonRegisteredMsbIndex = var1.getOffset();
|
||||
var1.skip(nonRegisteredMsbSize);
|
||||
int nonRegisteredLsbIndex = var1.getOffset();
|
||||
var1.skip(nonRegisteredLsbSize);
|
||||
int registeredMsbIndex = var1.getOffset();
|
||||
var1.skip(registeredNumberMsb);
|
||||
int registeredLsbIndex = var1.getOffset();
|
||||
var1.skip(registeredLsbSize);
|
||||
int tempoOffset = var1.getOffset();
|
||||
var1.skip(tempoOpcodes * 3);
|
||||
OutputStream var51 = new OutputStream(offset);
|
||||
var51.writeInt(1297377380); // MThd header
|
||||
var51.writeInt(MTHD_MAGIC); // MThd header
|
||||
var51.writeInt(6); // length of header
|
||||
var51.writeShort(tracks > 1 ? 1 : 0); // format
|
||||
var51.writeShort(tracks); // tracks
|
||||
var51.writeShort(division); // division
|
||||
var1.setOffset(var13);
|
||||
int var52 = 0;
|
||||
int channel = 0;
|
||||
int var53 = 0;
|
||||
int var54 = 0;
|
||||
int var55 = 0;
|
||||
@@ -261,193 +308,194 @@ public class TrackLoader
|
||||
int var57 = 0;
|
||||
int var58 = 0;
|
||||
int[] var59 = new int[128];
|
||||
var28 = 0;
|
||||
controllerNumber = 0;
|
||||
|
||||
label361:
|
||||
for (int var60 = 0; var60 < tracks; ++var60)
|
||||
{
|
||||
var51.writeInt(1297379947); // MTrk
|
||||
var51.writeInt(MTRK_MAGIC); // MTrk
|
||||
var51.skip(4); // length gets written here later
|
||||
int var61 = var51.getOffset();
|
||||
int var62 = -1;
|
||||
|
||||
while (true)
|
||||
{
|
||||
int var63 = var1.readVarInt();
|
||||
var51.writeVarInt(var63); // delta time
|
||||
int var64 = var1.getArray()[var29++] & 255;
|
||||
boolean var65 = var64 != var62;
|
||||
var62 = var64 & 15;
|
||||
if (var64 == 7)
|
||||
int deltaTick = var1.readVarInt();
|
||||
var51.writeVarInt(deltaTick); // delta time
|
||||
int status = var1.getArray()[var29++] & 255;
|
||||
boolean var65 = status != var62;
|
||||
var62 = status & 15;
|
||||
if (status == JAG_END_OF_TRACK)
|
||||
{
|
||||
//if (var65) -- client has this if, but it causes broken midi to be produced
|
||||
{
|
||||
var51.writeByte(255);
|
||||
var51.writeByte(META);
|
||||
}
|
||||
|
||||
var51.writeByte(47); // type - end of track
|
||||
var51.writeByte(END_OF_TRACK); // type - end of track
|
||||
var51.writeByte(0); // length
|
||||
var51.writeLengthFromMark(var51.getOffset() - var61);
|
||||
continue label361;
|
||||
}
|
||||
|
||||
if (var64 == 23)
|
||||
if (status == JAG_TEMPO)
|
||||
{
|
||||
//if (var65) -- client has this if, but it causes broken midi to be produced
|
||||
{
|
||||
var51.writeByte(255); // meta event FF
|
||||
var51.writeByte(META); // meta event FF
|
||||
}
|
||||
|
||||
var51.writeByte(81); // type - set tempo
|
||||
var51.writeByte(TEMPO); // type - set tempo
|
||||
var51.writeByte(3); // length
|
||||
var51.writeByte(var1.getArray()[var50++]);
|
||||
var51.writeByte(var1.getArray()[var50++]);
|
||||
var51.writeByte(var1.getArray()[var50++]);
|
||||
var51.writeByte(var1.getArray()[tempoOffset++]);
|
||||
var51.writeByte(var1.getArray()[tempoOffset++]);
|
||||
var51.writeByte(var1.getArray()[tempoOffset++]);
|
||||
}
|
||||
else
|
||||
{
|
||||
var52 ^= var64 >> 4;
|
||||
if (var62 == 0)
|
||||
channel ^= status >> 4;
|
||||
if (var62 == JAG_NOTE_ON)
|
||||
{
|
||||
if (var65)
|
||||
{
|
||||
var51.writeByte(144 + var52);
|
||||
var51.writeByte(NOTE_ON + channel);
|
||||
}
|
||||
|
||||
var53 += var1.getArray()[var37++];
|
||||
var54 += var1.getArray()[var38++];
|
||||
var53 += var1.getArray()[notesIndex++];
|
||||
var54 += var1.getArray()[notesOnIndex++];
|
||||
var51.writeByte(var53 & 127);
|
||||
var51.writeByte(var54 & 127);
|
||||
}
|
||||
else if (var62 == 1)
|
||||
else if (var62 == JAG_NOTE_OFF)
|
||||
{
|
||||
if (var65)
|
||||
{
|
||||
var51.writeByte(128 + var52);
|
||||
var51.writeByte(NOTE_OFF + channel);
|
||||
}
|
||||
|
||||
var53 += var1.getArray()[var37++];
|
||||
var55 += var1.getArray()[var40++];
|
||||
var53 += var1.getArray()[notesIndex++];
|
||||
var55 += var1.getArray()[notesOffIndex++];
|
||||
var51.writeByte(var53 & 127);
|
||||
var51.writeByte(var55 & 127);
|
||||
}
|
||||
else if (var62 == 2)
|
||||
else if (var62 == JAG_CONTROL_CHANGE)
|
||||
{
|
||||
if (var65)
|
||||
{
|
||||
var51.writeByte(176 + var52);
|
||||
var51.writeByte(CONTROL_CHANGE + channel);
|
||||
}
|
||||
|
||||
var28 = var28 + var1.getArray()[var15++] & 127;
|
||||
var51.writeByte(var28);
|
||||
controllerNumber = controllerNumber + var1.getArray()[controlChangeIndex++] & 127;
|
||||
var51.writeByte(controllerNumber);
|
||||
byte var66;
|
||||
if (var28 != 0 && var28 != 32)
|
||||
if (controllerNumber == CONTROLLER_BANK_SELECT || controllerNumber == CONTROLLER_BANK_SELECT_2)
|
||||
{
|
||||
if (var28 == 1)
|
||||
{
|
||||
var66 = var1.getArray()[var34++];
|
||||
}
|
||||
else if (var28 == 33)
|
||||
{
|
||||
var66 = var1.getArray()[var41++];
|
||||
}
|
||||
else if (var28 == 7)
|
||||
{
|
||||
var66 = var1.getArray()[var35++];
|
||||
}
|
||||
else if (var28 == 39)
|
||||
{
|
||||
var66 = var1.getArray()[var42++];
|
||||
}
|
||||
else if (var28 == 10)
|
||||
{
|
||||
var66 = var1.getArray()[var36++];
|
||||
}
|
||||
else if (var28 == 42)
|
||||
{
|
||||
var66 = var1.getArray()[var43++];
|
||||
}
|
||||
else if (var28 == 99)
|
||||
{
|
||||
var66 = var1.getArray()[var46++];
|
||||
}
|
||||
else if (var28 == 98)
|
||||
{
|
||||
var66 = var1.getArray()[var47++];
|
||||
}
|
||||
else if (var28 == 101)
|
||||
{
|
||||
var66 = var1.getArray()[var48++];
|
||||
}
|
||||
else if (var28 == 100)
|
||||
{
|
||||
var66 = var1.getArray()[var49++];
|
||||
}
|
||||
else if (var28 != 64 && var28 != 65 && var28 != 120 && var28 != 121 && var28 != 123)
|
||||
{
|
||||
var66 = var1.getArray()[var39++];
|
||||
}
|
||||
else
|
||||
{
|
||||
var66 = var1.getArray()[var30++];
|
||||
}
|
||||
var66 = var1.getArray()[programChangeIndex++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_MODULATION_WHEEL)
|
||||
{
|
||||
var66 = var1.getArray()[modulationWheelOffset++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_MODULATION_WHEEL2)
|
||||
{
|
||||
var66 = var1.getArray()[modulationWheel2Offset++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_CHANNEL_VOLUME)
|
||||
{
|
||||
var66 = var1.getArray()[channelVolumeOffset++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_CHANNEL_VOLUME_2)
|
||||
{
|
||||
var66 = var1.getArray()[channelVolume2Offset++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_PAN)
|
||||
{
|
||||
var66 = var1.getArray()[panOffset++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_PAN_2)
|
||||
{
|
||||
var66 = var1.getArray()[pan2Offset++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_NON_REGISTERED_PARAMETER_NUMBER_MSB)
|
||||
{
|
||||
var66 = var1.getArray()[nonRegisteredMsbIndex++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_NON_REGISTERED_PARAMETER_NUMBER_LSB)
|
||||
{
|
||||
var66 = var1.getArray()[nonRegisteredLsbIndex++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_REGISTERED_PARAMETER_NUMBER_MSB)
|
||||
{
|
||||
var66 = var1.getArray()[registeredMsbIndex++];
|
||||
}
|
||||
else if (controllerNumber == CONTROLLER_REGISTERED_PARAMETER_NUMBER_LSB)
|
||||
{
|
||||
var66 = var1.getArray()[registeredLsbIndex++];
|
||||
}
|
||||
else if (controllerNumber != CONTROLLER_DAMPER_PEDAL
|
||||
&& controllerNumber != CONTROLLER_PORTAMENTO
|
||||
&& controllerNumber != CONTROLLER_ALL_SOUND_OFF
|
||||
&& controllerNumber != CONTROLLER_RESET_ALL_CONTROLLERS
|
||||
&& controllerNumber != CONTROLLER_ALL_NOTES_OFF)
|
||||
{
|
||||
var66 = var1.getArray()[otherIndex++];
|
||||
}
|
||||
else
|
||||
{
|
||||
var66 = var1.getArray()[var44++];
|
||||
var66 = var1.getArray()[commandsIndex++];
|
||||
}
|
||||
|
||||
int var67 = var66 + var59[var28];
|
||||
var59[var28] = var67;
|
||||
int var67 = var66 + var59[controllerNumber];
|
||||
var59[controllerNumber] = var67;
|
||||
var51.writeByte(var67 & 127);
|
||||
}
|
||||
else if (var62 == 3)
|
||||
else if (var62 == JAG_PITCH_BEND)
|
||||
{
|
||||
if (var65)
|
||||
{
|
||||
var51.writeByte(224 + var52);
|
||||
var51.writeByte(PITCH_WHEEL_CHANGE + channel);
|
||||
}
|
||||
|
||||
var56 += var1.getArray()[var45++];
|
||||
var56 += var1.getArray()[var33++] << 7;
|
||||
var56 += var1.getArray()[pitchWheelLowIndex++];
|
||||
var56 += var1.getArray()[pitchWheelHighIndex++] << 7;
|
||||
var51.writeByte(var56 & 127);
|
||||
var51.writeByte(var56 >> 7 & 127);
|
||||
}
|
||||
else if (var62 == 4)
|
||||
else if (var62 == JAG_CHANNEL_PRESSURE)
|
||||
{
|
||||
if (var65)
|
||||
{
|
||||
var51.writeByte(208 + var52);
|
||||
var51.writeByte(CHANNEL_PRESSURE + channel);
|
||||
}
|
||||
|
||||
var57 += var1.getArray()[var32++];
|
||||
var57 += var1.getArray()[channelPressureIndex++];
|
||||
var51.writeByte(var57 & 127);
|
||||
}
|
||||
else if (var62 == 5)
|
||||
else if (var62 == JAG_POLY_PRESSURE)
|
||||
{
|
||||
if (var65)
|
||||
{
|
||||
var51.writeByte(160 + var52);
|
||||
var51.writeByte(POLYPHONIC_KEY_PRESSURE + channel);
|
||||
}
|
||||
|
||||
var53 += var1.getArray()[var37++];
|
||||
var58 += var1.getArray()[var31++];
|
||||
var53 += var1.getArray()[notesIndex++];
|
||||
var58 += var1.getArray()[polyPressureIndex++];
|
||||
var51.writeByte(var53 & 127);
|
||||
var51.writeByte(var58 & 127);
|
||||
}
|
||||
else
|
||||
else if (var62 == JAG_PROGRAM_CHANGE)
|
||||
{
|
||||
if (var62 != 6)
|
||||
{
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
if (var65)
|
||||
{
|
||||
var51.writeByte(192 + var52);
|
||||
var51.writeByte(PROGRAM_CHANGE + channel);
|
||||
}
|
||||
|
||||
var51.writeByte(var1.getArray()[var44++]);
|
||||
var51.writeByte(var1.getArray()[programChangeIndex++]);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new RuntimeException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user