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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel