bmc0 / dsp

An audio processing program with an interactive mode.
ISC License
218 stars 30 forks source link

Typos in wiki #7

Closed HenkPoley closed 8 years ago

HenkPoley commented 8 years ago

https://github.com/bmc0/dsp/wiki/System-Wide-DSP-Guide

"defualt.pa" -> "default.pa"

below that remove "pacmd ", as it stops PulseAudio from loading.

bmc0 commented 8 years ago

Thanks! Fixed in fc6c959. Not sure how I missed the pacmd thing...

HenkPoley commented 8 years ago

FYI. I've made a little writeup about wiring it all together with speaker calibration measurements: http://mythtv-multikabel.blogspot.nl/2015/11/room-correction-using-drc-fir-and.html

The part about your code is after the heading "Applying the correction". If you have time, let me know if there's anything wrong. For example the stuff with gain and clipping seems odd to me. But maybe it's a side effect of how DRC builds the speaker calibration. I also need to limit it to 2048 taps or so, or else the sound breaks down a lot when using LADSPA in PulseAudio.

bmc0 commented 8 years ago

A few comments:

Regarding the clipping, look through the information regarding normalization in the drc manual. There are multiple normalization options.

HenkPoley commented 8 years ago

I've added libsndfile-dev and libmad0-dev here and there in the document. btw, when I installed ffmpeg, I got a build failure on ubuntu 14.04.3, I'll submit a separate bug report for that.

I've changed the fir lines to include the full path.

I've adapted the part that talks about the bitrate for dsp. But PulseAudio by default uses 44.1kHz, and if you change that (at least you used to) you run into audio problems anyways.

When I played with the partition length on the ladspa_dsp plugin in PulseAudio, it didn't exactly go well. Might have been because I didn't add the channels=2 part of the invocation.

bmc0 commented 8 years ago

I tried running a long filter with pulseaudio and got some cracking. Increasing the default-fragment-size-msec setting seemed to fix it... Kinda weird because I have zero issues when I load the plugin with ALSA (which is what I always use), even when running filters with over 500000 taps.

The configure script doesn't check library versions, and the ffmpeg code probably doesn't work with old versions of libav (which Ubuntu probably uses instead of actual ffmpeg, since it's Debian based).

bmc0 commented 8 years ago

Another thing that may help is setting the maximum partition size as well for the fir effect: fir 1024 16384 <impulse_file>.

You could also try using Jconvolver. It's multi-threaded and likely higher performance. My convolution code is pretty simple and unoptimized.

HenkPoley commented 8 years ago

I've had trouble going the BruteFIT / Jconvolver road before. I believe you still need to have one of those running and then make everything else use that as audio device, isn't it? Wasn't really stable for me. Jack makes it even more complicated since it basically requires another (usually GUI) program to set up the wiring, instead of having some config file. I just want to turn on my MythTV system and have it work mostly as an appliance. Then have MythTV start Chrome for example, and audio should still work, and not have something hog the (virtual) device.

Might try your LADSPA plugin inside ALSA next.