public TownsPC98_FmSynthPercussionSource(uint timerbase, uint rtt)
{
_rtt = rtt;
_tickLength = timerbase * 2;
_volumeA = Mixer.MaxMixerVolume;
_volumeB = Mixer.MaxMixerVolume;
_reg = new Action<byte>[40];
_reg[16] = value => _rhChan[0].startPosL = value;
_reg[17] = value => _rhChan[1].startPosL = value;
_reg[18] = value => _rhChan[2].startPosL = value;
_reg[19] = value => _rhChan[3].startPosL = value;
_reg[20] = value => _rhChan[4].startPosL = value;
_reg[21] = value => _rhChan[5].startPosL = value;
_reg[22] = value => _rhChan[0].startPosH = value;
_reg[23] = value => _rhChan[1].startPosH = value;
_reg[24] = value => _rhChan[2].startPosH = value;
_reg[25] = value => _rhChan[3].startPosH = value;
_reg[26] = value => _rhChan[4].startPosH = value;
_reg[27] = value => _rhChan[5].startPosH = value;
_reg[28] = value => _rhChan[0].endPosL = value;
_reg[29] = value => _rhChan[1].endPosL = value;
_reg[30] = value => _rhChan[2].endPosL = value;
_reg[31] = value => _rhChan[3].endPosL = value;
_reg[32] = value => _rhChan[4].endPosL = value;
_reg[33] = value => _rhChan[5].endPosL = value;
_reg[34] = value => _rhChan[0].endPosH = value;
_reg[35] = value => _rhChan[1].endPosH = value;
_reg[36] = value => _rhChan[2].endPosH = value;
_reg[37] = value => _rhChan[3].endPosH = value;
_reg[38] = value => _rhChan[4].endPosH = value;
_reg[39] = value => _rhChan[5].endPosH = value;
}