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

Reply via email to