Hey, I'm running the current master version at:
https://github.com/wwmm/pulseeffects/commit/e3386f6e9461755eb42ad620505f17b664cdc86a
When no app is recording, the pipeline state changes to: ready
Then I start an app, that records sound.
Pipeline state changes to: playing
The recorded sound through PulseEffects is stuttering for some seconds.
This is the output after starting an app, that records sound and during the stuttering:
https://pastebin.com/daW0T9eb
This always happens when the pipeline state changes from ready to playing.
I tested it with Discord and Audacity.
This never happend with output effects (like VLC playing music) ...
It only happens with the input effects pipeline for me.
After some seconds, the stuttering goes away and everything works as expected.
My system: Manjaro KDE
(If you want to know more, post what / commands below. I don't know how to get much infos about the audio system.)
Here is the full output of PulseEffects after starting (with effects fo mic enabled and an app which is recording open):
https://pastebin.com/HVdXSHsW
To avoid having to translate messages I recommend you run PulseEffects with an English locale. You may simply set LANG=C before you launch the application to avoid having to change your language for the whole session.
I also recommend you use a paste bin service instead to make the thread more readable.
@AsavarTzeth Thanks, I edited it, should be better now ;)
This stuttering has happened since when I first implemented effects for microphones. But as there was no bug report and I had a lot of work to do on other parts of PulseEffects I forgot to investigate this.
I will try to see if changing the parameters I am passing to pulsesrc solves this. I am initializing this plugin in the mic pipeline the same way I initialize it in the apps pipeline. Maybe recording from a microphone is different than recording from a null sink monitor device
@wwmm I was not much at home in the past ~2 weeks, so I haven't used my main PC (with my Mic) much. (I guess I rarely / (never?) updated this system in this time.)
In this time, I haven't used my mic (and PulseEffects) on my main system..
Now I'm back, more at home, and again using my main PC. I did updates yesterday and started to use PulseEffects for my mic again.
Now I have this stuttering issue.
I tryed version 2.3.4 (and 2.3.5) again (which worked for me in the past without stuttering). With this version I now also get stuttering.
So I guess it has something to do with the system updates, because it already worked back in the past, but now, since I have done updates, no version of PulseEffects works without this stuttering.
Ok, try to change the parameters and I will test it again.
That reminds me of my own experience when I was doing testing. Whenever I tested the latest commit for #63 the issue would go from just affecting the latest to also affecting the stable ones.
What I did, which seemed obvious in retrospect, is reset all settings and never use the same profile for master and stable (2.3.5). Even if it is unrelated, have you tried resetting the configuration once you went back to 2.3.5? If that helps, it would at least make it usable again in the meantime.
@AsavarTzeth I removed everything (my pulseeffects-git package and the settings schemas and my own settings) before trying the latest master.
But I haven't done it before trying 2.3.5 again.
I'm not at home anymore, so I can't test it right now, but I will do it when I have time and write about the result here...
After some tests I could not find any setting that affected this stuttering. What solved it here was adding a queue plugin after pulsesrc. Please test the new code in master.
As far as I understand the queue adds buffering and executes a few things in a secondary thread. It is quite common to see it being used after pulsesrc but as this was not needed in the apps pipeline I just assumed that the mic pipeline wouldn't need it. It seems that recording from a null sink is different than recording from a mic.
As the queue makes no harm in the apps pipeline from now on I am using it there too.
@wwmm I still get this message:
21:49:13.785 - PulseEffects - WARNING - (gerror=GLib.Error('Can't record audio fast enough', 'gst-core-error-quark', 13), debug="gstaudiobasesrc.c(847): gst_audio_base_src_create (): /GstPipeline:pipeline1/GstPulseSrc:audio_src:\nDropped 40572 samples. This is most likely because downstream can't keep up and is consuming samples too slowly.")
But with the old version I got it multiple times and the stuttering was there for about 10 seconds.
Now I only get this message one time and stuttering is already away after about 2 seconds.
So not perfect already, but much better, thank you!
I have the same here. This message is shown once and then everything is fine.
Most helpful comment
After some tests I could not find any setting that affected this stuttering. What solved it here was adding a queue plugin after pulsesrc. Please test the new code in master.
As far as I understand the queue adds buffering and executes a few things in a secondary thread. It is quite common to see it being used after pulsesrc but as this was not needed in the apps pipeline I just assumed that the mic pipeline wouldn't need it. It seems that recording from a null sink is different than recording from a mic.
As the queue makes no harm in the apps pipeline from now on I am using it there too.