void MidiDriver_MT32::setPitchBendRange(byte channel, uint range) { if (range > 24) { printf("setPitchBendRange() called with range > 24: %d", range); } byte benderRangeSysex[9]; benderRangeSysex[0] = 0x41; // Roland benderRangeSysex[1] = channel; benderRangeSysex[2] = 0x16; // MT-32 benderRangeSysex[3] = 0x12; // Write benderRangeSysex[4] = 0x00; benderRangeSysex[5] = 0x00; benderRangeSysex[6] = 0x04; benderRangeSysex[7] = (byte)range; benderRangeSysex[8] = MT32Emu::Synth::calcSysexChecksum(&benderRangeSysex[4], 4, 0); sysEx(benderRangeSysex, 9); }
void MidiDriver::sendGMReset() { static const byte resetSysEx[] = { 0x7E, 0x7F, 0x09, 0x01 }; sysEx(resetSysEx, sizeof(resetSysEx)); g_system->delayMillis(100); }
void MidiDriver::sendMT32Reset() { static const byte resetSysEx[] = { 0x41, 0x10, 0x16, 0x12, 0x7F, 0x00, 0x00, 0x01, 0x00 }; sysEx(resetSysEx, sizeof(resetSysEx)); g_system->delayMillis(100); }