Hi once more, > However - finally *some* good news for the weekend :-). When I disable the > whole CONFIG_INTERPOLATE_VOLUME block in AbstractVoice.cpp (I simply replaced > line 231, > > #ifdef CONFIG_INTERPOLATE_VOLUME > > with > > #if 0 > ) > > THEN, the issue is gone and the kick sound comes through correctly each time > (listened for some 2 minutes now). > > Furthermore, if I reduce the "if(pSignalUnitRack...)" code in there a little, > the issue also remains gone: > > 242c242,244 > < finalVolume = pEngineChannel->MidiVolume * crossfadeVolume > * pEG1->getLevel(); > --- > > finalVolume = pEngineChannel->MidiVolume * crossfadeVolume ; > > // finalVolume = pEngineChannel->MidiVolume * > > crossfadeVolume * pEG1->getLevel(); > > > 244c246,248 > < finalVolume = pEngineChannel->MidiVolume * crossfadeVolume > * pSignalUnitRack->GetEndpointUnit()->GetVolume(); > --- > > finalVolume = pEngineChannel->MidiVolume * crossfadeVolume ; > > // finalVolume = pEngineChannel->MidiVolume * > > crossfadeVolume * pSignalUnitRack->GetEndpointUnit()->GetVolume(); > > > > So then, it's somewhere in the pEG1 or pSignalUnitRack handling. A small step > ahead :-).
Just summarizing, for clarity sake: With these 2 changes applied, the issue is gone (of course this is not a fix yet): --- src/engines/common/AbstractVoice.cpp.orig 2017-01-15 13:08:46.174155350 +0100 +++ src/engines/common/AbstractVoice.cpp 2017-01-23 00:31:28.283565968 +0100 @@ -241,7 +241,8 @@ if (pSignalUnitRack == NULL) { finalVolume = pEngineChannel->MidiVolume * crossfadeVolume * pEG1->getLevel(); } else { - finalVolume = pEngineChannel->MidiVolume * crossfadeVolume * pSignalUnitRack->GetEndpointUnit()->GetVolume(); + finalVolume = pEngineChannel->MidiVolume * crossfadeVolume ; +// finalVolume = pEngineChannel->MidiVolume * crossfadeVolume * pSignalUnitRack->GetEndpointUnit()->GetVolume(); } finalSynthesisParameters.fFinalVolumeLeft = finalVolume * VolumeLeft * PanLeftSmoother.render(); @@ -526,9 +527,9 @@ }*/ // TODO: ^^^ - fFinalVolume *= pSignalUnitRack->GetEndpointUnit()->GetVolume(); - fFinalCutoff = pSignalUnitRack->GetEndpointUnit()->CalculateFilterCutoff(fFinalCutoff); - fFinalResonance = pSignalUnitRack->GetEndpointUnit()->CalculateResonance(fFinalResonance); +// fFinalVolume *= pSignalUnitRack->GetEndpointUnit()->GetVolume(); +// fFinalCutoff = pSignalUnitRack->GetEndpointUnit()->CalculateFilterCutoff(fFinalCutoff); +// fFinalResonance = pSignalUnitRack->GetEndpointUnit()->CalculateResonance(fFinalResonance); finalSynthesisParameters.fFinalPitch = pSignalUnitRack->GetEndpointUnit()->CalculatePitch(finalSynthesisParameters.fFinalPitch); Greetings, Frank ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Linuxsampler-devel mailing list Linuxsampler-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel