void SetupEffects(MidiChannelPcSpk chan, EffectEnvelope env, EffectDefinition def, byte flags, byte[] data, int offset)
{
def.phase = 0;
def.useModWheel = (byte)(flags & 0x40);
env.loop = (byte)(flags & 0x20);
def.type = (short)(flags & 0x1F);
env.modWheelSensitivity = 31;
if (def.useModWheel != 0)
env.modWheelState = (byte)(MidiChannelPcSpk.ModWheel >> 2);
else
env.modWheelState = 31;
switch (def.type)
{
case 0:
env.maxLevel = 767;
env.startLevel = 383;
break;
case 1:
env.maxLevel = 31;
env.startLevel = 15;
break;
case 2:
env.maxLevel = 63;
env.startLevel = chan._out.unkB;
break;
case 3:
env.maxLevel = 63;
env.startLevel = chan._out.unkC;
break;
case 4:
env.maxLevel = 3;
env.startLevel = chan._instrument[4];
break;
case 5:
env.maxLevel = 62;
env.startLevel = 31;
env.modWheelState = 0;
break;
case 6:
env.maxLevel = 31;
env.startLevel = 0;
env.modWheelSensitivity = 0;
break;
}
StartEffect(env, data, offset);
}