Home | History | Annotate | Download | only in lib_src

Lines Matching refs:pFMVoice

258     S_FM_VOICE *pFMVoice;
266 pFMVoice = GetFMVoicePtr(pVoiceMgr, voiceNum);
269 pFMVoice->oper[operIndex].envState = eFMEnvelopeStateRelease;
272 pFMVoice->oper[operIndex].envRate = FM_CalcEGRate(
295 S_FM_VOICE *pFMVoice;
304 pFMVoice = GetFMVoicePtr(pVoiceMgr, voiceNum);
305 pFMVoice->oper[0].envState = eFMEnvelopeStateMuted;
306 pFMVoice->oper[1].envState = eFMEnvelopeStateMuted;
307 pFMVoice->oper[2].envState = eFMEnvelopeStateMuted;
308 pFMVoice->oper[3].envState = eFMEnvelopeStateMuted;
328 S_FM_VOICE *pFMVoice;
332 pFMVoice = GetFMVoicePtr(pVoiceMgr, voiceNum);
340 (pFMVoice->oper[operIndex].envGain == 0))
346 if (pFMVoice->oper[operIndex].envGain >= ((EAS_U16) (pRegion->oper[operIndex].sustain & 0xfc) << 7))
350 pFMVoice->oper[operIndex].envState = eFMEnvelopeStateDecay;
352 pFMVoice->oper[operIndex].envRate = FM_CalcEGRate(
398 S_FM_VOICE *pFMVoice;
406 pFMVoice = GetFMVoicePtr(pVoiceMgr, voiceNum);
415 pFMVoice->lfoValue = 0;
416 pFMVoice->lfoPhase = 0;
417 pFMVoice->lfoDelay = (EAS_U16) (fmScaleTable[pRegion->lfoFreqDelay & 0x0f] >> 1);
428 pFMVoice->pan = (EAS_I8) temp;
435 pFMVoice->voiceGain = (EAS_I16) EAS_LogToLinear16(pChannel->staticGain);
436 pFMVoice->voiceGain = (EAS_I16) FMUL_15x15(pFMVoice->voiceGain, pSynth->masterVolume);
444 pFMVoice->oper[operIndex].outputGain = EAS_LogToLinear16(((EAS_I16) (pRegion->oper[operIndex].gain & 0xfc) - 0xfc) << 7);
465 pFMVoice->oper[operIndex].baseGain = (EAS_I16) EAS_LogToLinear16(temp);
468 pFMVoice->oper[operIndex].envRate = FM_CalcEGRate(
478 pFMVoice->oper[operIndex].envGain = 0x7fff;
481 pFMVoice->oper[operIndex].envState = eFMEnvelopeStateDecay;
487 pFMVoice->oper[operIndex].envGain = 0;
488 pFMVoice->oper[operIndex].envState = eFMEnvelopeStateAttack;
578 static void FM_UpdateLFO (S_FM_VOICE *pFMVoice, const S_FM_REGION *pRegion)
582 if (!pFMVoice->lfoDelay)
585 pFMVoice->lfoPhase = pFMVoice->lfoPhase + (EAS_U16) (-fmControlTable[((15 - (pRegion->lfoFreqDelay >> 4)) << 3) + 4]);
589 pFMVoice->lfoValue = (EAS_I16)(pFMVoice->lfoPhase & 0x8000 ? -32767 : 32767);
594 pFMVoice->lfoValue = (EAS_I16) (pFMVoice->lfoPhase << 1);
596 if ((pFMVoice->lfoPhase > 0x3fff) && (pFMVoice->lfoPhase < 0xC000))
597 pFMVoice->lfoValue = ~pFMVoice->lfoValue;
603 pFMVoice->lfoDelay--;
728 static EAS_BOOL FM_UpdateDynamic (S_SYNTH_VOICE *pVoice, S_FM_VOICE *pFMVoice, const S_FM_REGION *pRegion, S_SYNTH_CHANNEL *pChannel)
737 FM_UpdateLFO(pFMVoice, pRegion);
746 lfoPitch = FMUL_15x15(pFMVoice->lfoValue, temp);
769 pFMVoice->oper[operIndex].pitch = (EAS_I16) temp;
772 bTemp = FM_UpdateEG(pVoice, &pFMVoice->oper[operIndex], &pRegion->oper[operIndex], pRegion->region.keyGroupAndFlags & REGION_FLAG_ONE_SHOT);
803 S_FM_VOICE *pFMVoice;
814 pFMVoice = GetFMVoicePtr(pVoiceMgr, voiceNum);
829 vCfg.voiceGain = (EAS_U16) pFMVoice->voiceGain;
832 vCfg.pan = pFMVoice->pan;
842 vCfg.gain[oper] = (EAS_U16) FMUL_15x15(pFMVoice->oper[oper].baseGain, pFMVoice->oper[oper].envGain);
843 vCfg.outputGain[oper] = pFMVoice->oper[oper].outputGain;
861 done = FM_UpdateDynamic(pVoice, pFMVoice, pRegion, pChannel);
865 temp = ((fmScaleTable[pRegion->vibTrem & 0x0f] >> 1) * pFMVoice->lfoValue) >> FM_LFO_GAIN_SHIFT;
890 vFrame.gain[oper] = (EAS_U16) FMUL_15x15(pFMVoice->oper[oper].baseGain, pFMVoice->oper[oper].envGain);
891 vFrame.pitch[oper] = pFMVoice->oper[oper].pitch;