-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shows resonances that aren't there #90
Comments
Hi @thirstyice ! There are indeed IIR low-pass filters that are applied before subsampling to perform the frequency analysis in a multirate fashion. This was implemented to achieve reasonable performance, because narrow filters at low frequencies would be very expensive otherwise. There is one graph of the filter response of one of the analyzers at http://friture.org/features.html and as you can see there are ripples, but of limited amplitude. Would you please be able to provide a screenshot or some other data to show the precise effect you have noticed ? Maybe we missed something until now in the way the filters are applied. Thank you very much ! |
Arch Linux, Pulseaudio, any music, the same issue. Other analyzers (e.g. Baudline) don't show these resonating 90/180/etc. Hz frequencies. |
Exact same issue here. OSX 10.14.6 Kind of a big deal when trying to look at the low freq content. |
I tried to reproduce it but I cannot. Here is what I tried:
Here is the result: This is a very very low level signal, -73 dBFS Peak (0 dBFS means a signal that fully uses the -1...1 digital scale). It is not powerful enough for the level widget (left of the screenshot) to display anything. Still the 70 Hz resonance clearly dominates the background noise. There is a secondary peak at 140 Hz, which is likely to be an harmonic that is really present in the source signal. Also, I now realize that you said that "all analyzers" in Friture show this problem. I mentioned in my previous comment that some ripples might come from the IIR filters used in Friture for fast multirate processing, but actually no such filters are used for the FFT analyzer. So the source of the resonances you see cannot be these filters. The FFT analyzer is really pretty much just a pristine short-window FFT applied on top of the source signal. Would you be able to give more details on your setup, to identify where the false resonances come from ? |
Looks like Friture analizes right way but captures wrong way. For example, it's 141Hz generated by this online tone generator and captured by Friture: |
Meanwhile Windows version (0.36-20190201) under Wine doesn't have this bug. |
That's very interesting. That points to how Friture deals with Pulseaudio or Alsa for capture.
It looks like the signal is interrupted very often, something that's called "overflows". Could you show what inputs are available in the settings window ? If you have several entries for the same input, can you try the other ones ? Also, in the About window, under the Statistics tab, what number do you have after a minute or so in the "Number of overflowed inputs (XRUNs)" row ? |
no Xruns on OSX 10.14.6 |
edit: native is 0.37, Windows version is 0.36 |
Doesn't help. |
I realized that we actually have the very same problem of missing parts in the signal on Windows when choosing a DirectSound input. MME inputs are ok though. So it might just be that MME has huge buffers and is less sensitive to Friture retrieving the data "too late", while other audio host apis are more sensitive and make us lose samples. I'm trying https://github.com/spatialaudio/python-rtmixer to see if it can have an impact, and I'll post my findings here. |
Friture has issues keeping up with audio input, which tends to produce overflows, that appear as glitches in the audio signal. This has largely been unnoticed for years because Windows MME is very forgiveable in that regard. But Windows Directsound, for example, is much more sensitive. Similarly, Alsa or PulseAudio in Linux also show a lot of glitches (even if PortAudio might not report any overflow). Here this is fixed vy taking advantage of python-rtmixer, a library that sits on top of python-sounddevice (the PortAudio wrapper). Python-rtmixer provides an audio callback that is implemented in C (and compiled with the help of CFFI) and doesn’t invoke the Python interpreter, therefore avoiding waiting for things like garbage collection and the GIL. Reference: https://python-rtmixer.readthedocs.io/en/0.1.0/index.html The result is glitch-free audio signal even with Windows DirectSound. We believe this solves #90
Friture has issues keeping up with audio input, which tends to produce overflows, that appear as glitches in the audio signal. This has largely been unnoticed for years because Windows MME is very forgiveable in that regard. But Windows Directsound, for example, is much more sensitive. Similarly, Alsa or PulseAudio in Linux also show a lot of glitches (even if PortAudio might not report any overflow). Here this is fixed vy taking advantage of python-rtmixer, a library that sits on top of python-sounddevice (the PortAudio wrapper). Python-rtmixer provides an audio callback that is implemented in C (and compiled with the help of CFFI) and doesn’t invoke the Python interpreter, therefore avoiding waiting for things like garbage collection and the GIL. Reference: https://python-rtmixer.readthedocs.io/en/0.1.0/index.html The result is glitch-free audio signal even with Windows DirectSound. We believe this solves #90
@axredneck @thirstyice @jdchmiel thanks again for your reports. I believe this issue is now fixed. I now get a good signal both with Windows DirectSound or with Linux (tested in a VM running Ubuntu 14.04). Friture 0.41 has just been released with this improvement. Let me know if it works! Thanks! (I'm closing this issue, we can always reopen if the problem is still there) |
Unfortunately i have this error:
though i have python-pyrr package installed on my Arch Linux, so i can't check if the bug is fixed. |
Thank you, it's fixed. |
@axredneck out of curiosity, what did you have to do to get it fixed ? Thanks! |
@tlecomte, reinstall python-pyrr. |
Fixed on Mac too, thanks! |
All the frequency analyzers show bands of louder sound at resonances of 90Hz (180, 270, 360, etc) that isn't there in the original signal, confirmed by analyzing the sound with another application at the same time. It's like the audio is being run through a filter that amplifies those resonances before it gets analyzed.
Maybe could also be the result of some king of aliasing between the sample rate of the analyzer and the audio sample rate?
Tested on MacOS X 10.11.6 Mac Pro
Update: Also happens on macOS 10.13.6 MacBook Pro
The text was updated successfully, but these errors were encountered: