Thank you for your explanation Christian. 
I will give it a try with ALSA as you recommended. But I did a big test the 
next three days, which might be interesting to the development team here.  
So I finished my torture tests on both LinuxSampler SFZ and GIGA engines. 
Luckily, I had a single microphone Piano library of about 5.5 GB with several 
velocity layers and key releases in both SFZ and GIGA samples to run this test 
(normally I only use SFZ). For this test, I put the polyphony on 128 and voices 
on 180 (double the default). I also executed the test with a default 
installation, o3 optimization, and o3 optimization with large instrument 
preloading to load the instrument in RAM. But the results were NOT really 
affected, meaning the voice streaming procedure is working just fine. 
To torture LS, I created a MIDI file with 3 channels. each channel had a piano 
solo by Chopin (it was not nice to listen to the output of the torture test). I 
created one channel in LS and configured it to play all MIDI channels. This 
would guarantee some troubling piano playing, enough for this test. 
I repeated my tests with different settings, 44.1KHz, all the way to 192KHz 
sample rates. I tuned it in a way that the GIGA sample would not give any 
X-Runs and then tested the SFZ for identical settings. The instruments were 
created with 24bit 44.1KHz Wav files. 
Hardware-------------
AMD quad-core 2.1 Ghz CPU, tuned to run at its maximum clock speed of 2.1Ghz 
with turbo boost available. RME AIO sound cardJACK2 for enabling multicore 
audio processing3500mb/s M2.0 SSD DDR4 2133 RAM
Results======
GIGA Engine------------------
I had no problem at all with the GIGA instrument. No X-RUN, no unusual CPU 
activity, everything was perfect. JACK2 DSP load also was quite low during the 
performance, which is often associated with X-RUNS. Also my CPU did not have 
sudden picks inits activity, but rather a smooth activity behavior. 
SFZ Engine----------------
There seem to be some problems in the SFZ engine that generates unusual CPU 
activity. There were frequent sudden spikes (compared to smoothness of GIGA). 
The activity also seems to be higher than GIGA engine, regardless of the 
setting. The high amount of JACK DSP load was noticeable for the SFZ engine. 
And as you can guess, I had frequent X-Runs in the SFZ tests. 
Conclusion=========
First, I must say that this is based on my test and my system. I cannot be sure 
about this conclusion unless other developers reproduce my tests to see if they 
get the same results. But based on my results, I can conclude that it is likely 
that the SFZ engine has a subprocess that requires high CPU runtime and it 
occurs not very frequent in a normal playing. It can be something related to 
voice stealing or something that is not triggered with a simple nice and slow 
piano playing. 


     On Wednesday, April 8, 2020, 02:05:53 PM GMT+2, joo bian via 
Linuxsampler-devel <linuxsampler-devel@lists.sourceforge.net> wrote:  
 
  I thought I mentioned that somewhere in the thread. I only use uncompressed 
Wav files to avoid any unnecessary encoding. Most of my samples are 24bit 
44.1khz or 24bit 48khz and they are all Wav. 

Regarding Jacek's comment, I am recompiling LS with different configurations 
and it seems the behavior of --enable-preload-samples= argument is a little bit 
unpredictable (well, to me). The default value is 32768, which in practice (for 
180 max voice) it loads 730MB out of a 8.5GB sample library. 

I recompiled it with setting it 10 times larger, 
--enable-preload-samples=327680 and it loaded 2.6 GB. Recompiled it with 100 
times larger and it loaded 5.3GB.  Recompiled it with 1000 time larger value of 
32768000 and the amount of preloaded samples did not go anything above 5.3GB

Side note------------

I saw some unusual behavior here as well. Surprisingly, when I increased the 
"max voices" LS can actually by far surpass the size of the library. For the 
8.5GB sample library, LS could require 12GB if I increase the max voices. I 
only did this for testing (no other reasons to apply such a setting). it seems 
each stream can also occur independent of pre-loaded samples or at least its 
allocated RAM memory is independent of pre-loaded sample? I'm not sure. I 
thought the streams should take the preloaded data into account. 

    On Wednesday, April 8, 2020, 12:18:01 PM GMT+2, Christian Schoenebeck 
<schoeneb...@linuxsampler.org> wrote:  
 
 On Dienstag, 7. April 2020 16:36:48 CEST joo bian wrote:
>  Dear Christian, Jacek,
> 
> Thanks for your kind replies. As Christian pointed out, I also don't think
> that a little bit of optimization plays a significant role, giving my
> hardware (and the fact that I get the dropouts even while my CPU usage is
> less than 25% and memory usage is less than 10%). 

File format of samples being used (wav, flac, ogg vorbis)?

CU
Christian




_______________________________________________
Linuxsampler-devel mailing list
Linuxsampler-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel
  _______________________________________________
Linuxsampler-devel mailing list
Linuxsampler-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel
_______________________________________________
Linuxsampler-devel mailing list
Linuxsampler-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel

Reply via email to