switch (event) {
case 3:
int value = read(is);
switch (data) {
case 0: // program change - 0x00 ~ 0x7f
smafMessage = new ProgramChangeMessage(duration, channel, value);
break;
case 1: // bank select - normal: 0x00 ~ 0x7f, drum: 0x80 ~ 0xff
smafMessage = new BankSelectMessage(duration, channel, value);
break;
case 2: // octave shift - 0x00, 0x01, 0x02, 0x03, 0x04, 0x81, 0x82, 0x83, 0x84