public AdlibMidiDriver(IMixer mixer)
: base(mixer)
{
_voiceIndex = -1;
_parts = new AdLibPart[32];
for (var i = 0; i < _parts.Length; ++i)
{
_parts[i] = new AdLibPart();
_parts[i].Init(this, (byte)(i + ((i >= 9) ? 1 : 0)));
}
_percussion = new AdLibPercussionChannel();
_percussion.Init(this, 9);
_timerIncrease = 0xD69;
_timerThreshold = 0x411B;
_voices = new AdLibVoice[9];
for (int i = 0; i < _voices.Length; i++)
{
_voices[i] = new AdLibVoice();
}
}