public override void SetLfoAtKeyOn(partPage page, MML mml) { base.SetLfoAtKeyOn(page, mml); for (int lfo = 0; lfo < 4; lfo++) { clsLfo pl = page.lfo[lfo]; if (!pl.sw) { continue; } if (pl.type == eLfoType.Hardware) { continue; } if (pl.type == eLfoType.Wah) { continue; } if (pl.param[5] != 1) { continue; } pl.isEnd = false; pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない pl.waitCounter = pl.param[0]; pl.direction = pl.param[2] < 0 ? -1 : 1; pl.depthWaitCounter = pl.param[7]; pl.depth = pl.param[3]; pl.depthV2 = pl.param[2]; if (pl.type == eLfoType.Vibrato) { if (page.Type == enmChannelType.ADPCMB) { SetAdpcmBFNum(mml, page); } } if (pl.type == eLfoType.Tremolo) { page.beforeVolume = -1; //if (pw.ppg[pw.cpgNum].Type == enmChannelType.ADPCMA) //SetAdpcmAVolume(pw); if (page.Type == enmChannelType.ADPCMB) { SetAdpcmBVolume(mml, page); } } } }
public override void SetLfoAtKeyOn(partPage page, MML mml) { for (int lfo = 0; lfo < 4; lfo++) { clsLfo pl = page.lfo[lfo]; if (!pl.sw) { continue; } if (pl.type == eLfoType.Hardware) { continue; } int w = 0; if (pl.type == eLfoType.Wah) { w = 1; } if (pl.param[w + 5] != 1) { continue; } pl.isEnd = false; pl.value = (pl.param[w + 0] == 0) ? pl.param[w + 6] : 0;//ディレイ中は振幅補正は適用されない pl.waitCounter = pl.param[w + 0]; pl.direction = pl.param[w + 2] < 0 ? -1 : 1; pl.depthWaitCounter = pl.param[w + 7]; pl.depth = pl.param[w + 3]; pl.depthV2 = pl.param[w + 2]; if (pl.type == eLfoType.Vibrato) { SetFmFNum(page, mml); } if (pl.type == eLfoType.Tremolo) { page.beforeVolume = -1; SetFmVolume(page, mml); } if (pl.type == eLfoType.Wah) { page.beforeVolume = -1; SetFmTL(page, mml); } } }
public override void SetLfoAtKeyOn(partWork pw, MML mml) { base.SetLfoAtKeyOn(pw, mml); for (int lfo = 0; lfo < 4; lfo++) { clsLfo pl = pw.lfo[lfo]; if (!pl.sw) { continue; } if (pl.param[5] != 1) { continue; } pl.isEnd = false; pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない pl.waitCounter = pl.param[0]; pl.direction = pl.param[2] < 0 ? -1 : 1; pl.depthWaitCounter = pl.param[7]; pl.depth = pl.param[3]; pl.depthV2 = pl.param[2]; if (pl.type == eLfoType.Vibrato) { if (pw.Type == enmChannelType.ADPCM) { SetAdpcmFNum(mml, pw); } } if (pl.type == eLfoType.Tremolo) { pw.beforeVolume = -1; //if (pw.Type == enmChannelType.RHYTHM) //SetRhythmVolume(pw); if (pw.Type == enmChannelType.ADPCM) { SetAdpcmVolume(mml, pw); } } } }
public override void SetLfoAtKeyOn(partWork pw) { for (int lfo = 0; lfo < 1; lfo++) { clsLfo pl = pw.lfo[lfo]; if (!pl.sw) { continue; } if (pl.type == enmLfoType.Hardware) { continue; } //if (pl.param[5] != 1) // continue; pl.isEnd = false; //pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない pl.waitCounter = parent.GetWaitCounter(pl.param[0]); pl.direction = Math.Sign(pl.param[2]); if (pl.direction == 0) { pl.direction = 1; } pl.value = 0; pl.PeakLevelCounter = pl.param[3] >> 1; if (pl.type == enmLfoType.Vibrato) { SetFNum(pw); } //if (pl.type == eLfoType.Tremolo) //{ // pw.beforeVolume = -1; // SetFmVolume(pw); //} } }
public override void SetLfoAtKeyOn(partWork pw, MML mml) { for (int lfo = 0; lfo < 4; lfo++) { clsLfo pl = pw.lfo[lfo]; if (!pl.sw) { continue; } if (pl.type == eLfoType.Hardware) { continue; } if (pl.param[5] != 1) { continue; } pl.isEnd = false; pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない pl.waitCounter = pl.param[0]; pl.direction = pl.param[2] < 0 ? -1 : 1; pl.depthWaitCounter = pl.param[7]; pl.depth = pl.param[3]; pl.depthV2 = pl.param[2]; if (pl.type == eLfoType.Vibrato) { SetFmFNum(pw, mml); } if (pl.type == eLfoType.Tremolo) { pw.beforeVolume = -1; SetFmVolume(pw, mml); } } }
public override void SetLfoAtKeyOn(partPage page, MML mml) { for (int lfo = 0; lfo < 4; lfo++) { clsLfo pl = page.lfo[lfo]; if (!pl.sw) { continue; } if (pl.type == eLfoType.Wah) { continue; } if (pl.param[5] != 1) { continue; } pl.isEnd = false; pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない pl.waitCounter = pl.param[0]; pl.direction = pl.param[2] < 0 ? -1 : 1; pl.depthWaitCounter = pl.param[7]; pl.depth = pl.param[3]; pl.depthV2 = pl.param[2]; if (pl.type == eLfoType.Vibrato) { SetSsgFNum(page, mml); } if (pl.type == eLfoType.Tremolo) { SetSsgVolume(mml, page); } } }
public override void SetLfoAtKeyOn(partWork pw, MML mml) { for (int lfo = 0; lfo < 4; lfo++) { clsLfo pl = pw.lfo[lfo]; if (!pl.sw) { continue; } if (pl.param[5] != 1) { continue; } pl.isEnd = false; pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない pl.waitCounter = pl.param[0]; pl.direction = pl.param[2] < 0 ? -1 : 1; pl.depthWaitCounter = pl.param[7]; pl.depth = pl.param[3]; pl.depthV2 = pl.param[2]; } }