you could write a systemd service which just does two things; get the current sample rate, start brutefir
iirc it restarts after 100ms by default so it should respond fairly quickly
iirc it restarts after 100ms by default so it should respond fairly quickly
Sounds promising! We'd need an efficient trigger that senses if brutefir aborts...
Will ponder from the woodworking shop! 🙂 Let me know if I can provide other example Python code if you want to explore scripting this yourself...
Frank
the first and last program I wrote displayed "hello world" and exited. that's the extent of my programming knowledge
you could write a systemd service which just does two things; get the current sample rate, start brutefir
iirc it restarts after 100ms by default so it should respond fairly quickly
that's what I was going to suggest 😀 😀 😀
Sounds promising! We'd need an efficient trigger that senses if brutefir aborts...
Will ponder from the woodworking shop! 🙂 Let me know if I can provide other example Python code if you want to explore scripting this yourself...
Frank
How efficient do you need? If brutefir opens or closes a log or other file as it exits you could use inotify to monitor that file and pick up the close event. That way we get a system event directly as the file closes and essentially zero latency.
How efficient do you need? If brutefir opens or closes a log or other file as it exits you could use inotify to monitor that file and pick up the close event. That way we get a system event directly as the file closes and essentially zero latency.
not directed at me but I don't think there is a log file with brutefir. I could be very wrong.
is there a way he could monitor the system processes with systemd and see when brutefir.real is no longer running to use that as a trigger?
is there a way he could monitor the system processes with systemd and see when brutefir.real is no longer running to use that as a trigger?
If nothing else, perhaps I can use 'pgrep brutefir' output of the process id's. Anything but null means it is running. ...just depends on how that translates into the python environment.
Again, I'll be doing other things for a while before digging into this. If there is not enough CPU capacity in the BBB then there is no need to add a frequency switcher to the BBB. Should inadequate CPU be an issue, then my notion is to switch to a linux file server and FIR filter the output from Logitech Media Server. I have not done any homework on that, but I gather there is a convolver option in some LMS builds. Best scenario of all? My new listening room will be so good that phase alignments are unneeded! 😀
Cheers,
Frank
not directed at me but I don't think there is a log file with brutefir. I could be very wrong.
is there a way he could monitor the system processes with systemd and see when brutefir.real is no longer running to use that as a trigger?
Best not to monitor stuff if we can avoid it - there is always a practical max frequency you can run a test.
If brutfir can be run from command line and then doesn't return control till it finishes we could simply
#!/bin/bash
while true; do
brutfir
# When you get here brutefir has died
# go round the loop again to restart it
done
just add
Restart=always
under the [service] section and systemd will monitor it for you, by default the timeout (before it restarts) is 100ms though you can override this with RestartSecs
all you need to do is write your own starter script which gets the sample rate before starting brutefir and away you go
Restart=always
under the [service] section and systemd will monitor it for you, by default the timeout (before it restarts) is 100ms though you can override this with RestartSecs
all you need to do is write your own starter script which gets the sample rate before starting brutefir and away you go
Thanks for these suggestions! It will be a while before I will try them in earnest, but I will report back here when I can. 🙂
Hello Ivo,
Are you referring to Brutefir webfilter?
Regards,
Eelco
I'm trying to get hold of some form of GUI for setting up brutefir filters on an Odroid-XU4 running Ubuntu. Have seen this reference to "Brutefir webfilter" a couple of times in this thread. What is "Brutefir webfilter" and where can I get a copy and/or learn how to set it up?
TIA
Bob
I'm trying to get hold of some form of GUI for setting up brutefir filters on an Odroid-XU4 running Ubuntu. Have seen this reference to "Brutefir webfilter" a couple of times in this thread. What is "Brutefir webfilter" and where can I get a copy and/or learn how to set it up?
TIA
Bob
that would be great but It would almost be better to just start from a basic configuration. once you do it once it becomes very easy and you only change a couple of things.
I already have brutefir set up and running but editing text files for equalisation is a pain. It would be much easier to experiment if adjustments could be made by simply dragging a slider. Just for convienience really.
Bob
Bob
I already have brutefir set up and running but editing text files for equalisation is a pain. It would be much easier to experiment if adjustments could be made by simply dragging a slider. Just for convienience really.
Bob
Bob
oh, my bad. so you mean the cli based eq. that would be great to have a gui.
question, how does one switch between config files via cli?
thanks
question, how does one switch between config files via cli?
thanks
oh, my bad. so you mean the cli based eq. that would be great to have a gui.
question, how does one switch between config files via cli?
thanks
That I don't know. I use Logitech Media Server (LMS) as a front end to Brutefir and that allows selection any number of preset config files. Changing the Equalizer settings of a particular config text file is done manually in a text editor. I've been searching for some form of GUI with sliders to make those changes instead of manually having to edit those files. There is a software application called 'Inguz' which does this but it's Intel only and is processor intensive so of no use to Raspi or Odroid users (ARM processors).
Bob
As a follow up to my comments last year - I was rebuilding, and thinking about running fir filters on my system that is set up to avoid resampling. Unfortunately, I have not found a way to adapt BruteFIR implementation so it follows native sample rates. Bottom line is I’m still tweaking but not pursuing adaptive FIR for several additional reasons. The new setup (in the new house, etc.) is very revealing with the best resolution I have yet experienced. This makes fancy, subtle corrections less of a priority. That high resolution reveals that a lot of my collection is not recorded well enough to bother with further tweaks. I will manage well enough with IIR filters for now because they DO adapt to native sample rates. ...and that’s part of the secret sauce...
Cheers,
Frank
Cheers,
Frank
Have you tried to adjust / correct the speakers to get min phase response using RePhase ? It may be another reason to use FIRs with the convolution engine.
Have you tried to adjust / correct the speakers to get min phase response using RePhase ? It may be another reason to use FIRs with the convolution engine.
RePhase was the original plan, because my old listening space had dreadful acoustics. The new room isn’t nearly so bad. In my case, the benefits of avoiding all resampling are balanced against having FIR filters play everything. By using LR4 crossover filters, the phase is fairly well preserved by the crossovers. I’m just now upgrading my DAC chips, and who knows what demons that might release? Actually I expect the new ESS PRO chips to quell a bit of high frequency junk floating around.
As a test platform I’d like to try simply filtering copies of some of my best music using the convolver in SoX. Before that, though, my issue with RePhase will be getting really reliable measurements in REW.
SoX (Linux) will indeed run FIR filters in real time. I think it will perform any of its functions in real time. I use it to pipe a USB input to an I2S DAC output. But again, no frequency adaptation. It is easier to use than BruteFIR as well. I do this on a Beaglebone, which processes the SoX output in ALSA running IIR crossover filters. At 48kHz, it will run (a 3-way crossover and) a stereo convolver with up to ~1500 coefficients. Latency (for video) is acceptable. Clearly, much more CPU would be needed for customary longer filter sets.
- Status
- Not open for further replies.
- Home
- Source & Line
- PC Based
- BruteFIR DSP PC Step by Step