MWP said:How big are your FFTs?
I run 3 way xover:
sub: L+R into lowpass (->70hz)
mid: L & R bandpass (70hz->2Khz)
high: L & R highpass (2Khz->)
Each filter is 2048 samples.
On my AthlonXP 2200+ using PC3200 i use around 10% CPU time.
But i was asking because i wonder how well it would run on a Via EPIA board (=fanless).
that sounds a bit high to me for 2048 tap filters. You must be running very short partition sizes, which is where you spend the cpu with BruteFIR.
I've run a bunch of different configs on my P4 1.6A (although I have interleaved DDR so it has decent mem performance). Even including room correction and 3-way xovers I've never seen it go above about 10%. I typically use 32k tap xover filters and either 64 or 128k room correction filters, but I run big partitions - 16k usually.
I'm intrigued by the Epia idea as well, but have no direct experience. I know the new chips (M10000 series boards) have a full-speed FPU, but I suspect that double-precision floating point will still badly lag compared to other chips. Still, if you can accept 16k partitions I'd guess that you could get something to work.
The idea of running the BruteFIR process on a remote server and then using Jack.udp or something similar to ship the audio over to the Epia, which then just sends it out the soundcard is something I threw out earlier, but it's actually stuck in my mind and might have some merit. You'd need to spdif-sync the two machines, but it is an interesting alternative.
That is an interesting idea.... ive only used jack a little, didnt know it could do network audio streaming.
Im running "filter_length: 1024,16;" on BruteFIR V1.0 beta, all optimised compiled by CVS gcc.
If i drop the filter length anymore, i get jack xrun's 🙁
I would like to use jack for input to brutefir, and ALSA for outputs, but im having weird high-pitched noise problems with ALSA and this Envy24HT card 🙁
I dont have another room nearby i can move the PC's into 🙁
... or even a cupboard for that matter.
Im going to build a new PC case soon to replace my current wooden case.
Itll be made from MDF again, but this time ill put lots of effort into making it as quiet as possible.
Im running "filter_length: 1024,16;" on BruteFIR V1.0 beta, all optimised compiled by CVS gcc.
If i drop the filter length anymore, i get jack xrun's 🙁
I would like to use jack for input to brutefir, and ALSA for outputs, but im having weird high-pitched noise problems with ALSA and this Envy24HT card 🙁
However, why don't you simply put the PC in the next room ? Even with no fans, you'll still have harddisk noise.
I dont have another room nearby i can move the PC's into 🙁
... or even a cupboard for that matter.
Im going to build a new PC case soon to replace my current wooden case.
Itll be made from MDF again, but this time ill put lots of effort into making it as quiet as possible.
Hello, I've been following this and similar threads on other forums for a while. I have never seen any good overview in how you implement BruteFir as a digital crossover. I have read but not fully understood the BruteFir FAQ. Is there anywhere I can read more about this, or could someone - at least brief - explain what programs are used and how they are implemented.
Music player pc definition
One common objection to pc music players is they are ugly and don't fit in with the hifi "look".
I agree so that's why I want to make a nice small hifi style VIA M10000 with 1G DDRAM with no hard drive (no mechanical drives at all) is my hope. Network boot. I've never set up a network boot machine before so I dread the learning curve on that but how hard can it be?
However the main thing I dread is configuring Linux for the VIA. I recently put together a new box for my office but couldn't get Linux to run reliably. Motherboard was ASUS A7V8X-X and I believe the VIA southbridge is a problem. Anyway, since the config of Linux for the music pc will be time-consuming, it is important that we know for sure it is a reliable platform.
Since the unit will be dedicated to music playing only, maybe we can setup a standard distribution of Linux for it and share it with our little diy group.
dwk123 - If the VIA computing power becomes a limitation, I would almost certainly test your idea of crunching BruteFIR and any other dsp on a server and streaming it out to the player over ethernet. Could you discuss more about sync requirements between these machines?
-Robert
One common objection to pc music players is they are ugly and don't fit in with the hifi "look".
I agree so that's why I want to make a nice small hifi style VIA M10000 with 1G DDRAM with no hard drive (no mechanical drives at all) is my hope. Network boot. I've never set up a network boot machine before so I dread the learning curve on that but how hard can it be?
However the main thing I dread is configuring Linux for the VIA. I recently put together a new box for my office but couldn't get Linux to run reliably. Motherboard was ASUS A7V8X-X and I believe the VIA southbridge is a problem. Anyway, since the config of Linux for the music pc will be time-consuming, it is important that we know for sure it is a reliable platform.
Since the unit will be dedicated to music playing only, maybe we can setup a standard distribution of Linux for it and share it with our little diy group.
dwk123 - If the VIA computing power becomes a limitation, I would almost certainly test your idea of crunching BruteFIR and any other dsp on a server and streaming it out to the player over ethernet. Could you discuss more about sync requirements between these machines?
-Robert
Re: Music player pc definition
Thats one of the last things we should be thinking about.
Your questioning Linux's reliablity... compared with what, Windows?
What ever problems you had can be overcome, same with any other problem under Linux.
Ive run Linux on many different motherboards (intel, via, amd, nforce based) and never had any big problems with compatability.
One common objection to pc music players is they are ugly and don't fit in with the hifi "look".
Thats one of the last things we should be thinking about.
However the main thing I dread is configuring Linux for the VIA. I recently put together a new box for my office but couldn't get Linux to run reliably. Motherboard was ASUS A7V8X-X and I believe the VIA southbridge is a problem. Anyway, since the config of Linux for the music pc will be time-consuming, it is important that we know for sure it is a reliable platform.
Your questioning Linux's reliablity... compared with what, Windows?
What ever problems you had can be overcome, same with any other problem under Linux.
Ive run Linux on many different motherboards (intel, via, amd, nforce based) and never had any big problems with compatability.
Met my match on that motherboard
MWP,
I've been learning Linux for about a year now and have successfully run it on several different notebook computers and several different pc's. Also, I've experimented with various versions, upgrades, compilers and so on. While I generally agree with you, this last motherboard was my undoing and I realized that Linux is not infallible. I spent weeks on it, literally. Tuned the hard drive, completely rebuilt the kernel, tested various modules, AND SO ON....
By the way, it's brotherboard (identical) is running windows xp playing music right now, but is also not 100% reliable. BUT, windows is way more reliable for this motherboard than Linux🙁 At least under my powers.
Do you want to try?
-Robert
p.s.- so you think it's stupid to set up a nice looking fanless pc right now? I should be using a std box to do development work on "soundcards" and BruteFIR is probably more productive, is that what you're thinking? Ok, so what's a good motherboard that I can put my 1G PC2700 ddram and 2.6G Athlon XP in? That's what I was doing with the ASUS when I was derailed.
MWP,
I've been learning Linux for about a year now and have successfully run it on several different notebook computers and several different pc's. Also, I've experimented with various versions, upgrades, compilers and so on. While I generally agree with you, this last motherboard was my undoing and I realized that Linux is not infallible. I spent weeks on it, literally. Tuned the hard drive, completely rebuilt the kernel, tested various modules, AND SO ON....
By the way, it's brotherboard (identical) is running windows xp playing music right now, but is also not 100% reliable. BUT, windows is way more reliable for this motherboard than Linux🙁 At least under my powers.
Do you want to try?
-Robert
p.s.- so you think it's stupid to set up a nice looking fanless pc right now? I should be using a std box to do development work on "soundcards" and BruteFIR is probably more productive, is that what you're thinking? Ok, so what's a good motherboard that I can put my 1G PC2700 ddram and 2.6G Athlon XP in? That's what I was doing with the ASUS when I was derailed.
New amp for pc music player
Here's a pic of my new 2-ch amp being built up for the pc music player. It's a test-bed, so no comments on the case
It sounds really, really good. No problems at all. Next, it will have 2 transformers and 2 more channels. Then, I'll rip the crossovers out of the speakers. They're just 2 way diy Vifa monitors atm.
Since nobody has yet come up with a software volume control that they can bless, I'm going to have to build a 4-ch attenuator (grrr!) for it.
Oh well.
But oh the sound
.
-Robert
Here's a pic of my new 2-ch amp being built up for the pc music player. It's a test-bed, so no comments on the case

Since nobody has yet come up with a software volume control that they can bless, I'm going to have to build a 4-ch attenuator (grrr!) for it.
Oh well.
But oh the sound

-Robert
Attachments
RFScheer...
Sorry, i wasnt having a go at you about the Linux stuff...
Its hard to know what experience poeple have when it comes to Linux.
Ive been running Linux since late '98, still heaps to learn 🙁
BTW... i remebered i dicussed volume control with Anders Torger (author of BruteFIR) mid last year.
This is what he had to say:
Sorry, i wasnt having a go at you about the Linux stuff...
Its hard to know what experience poeple have when it comes to Linux.
Ive been running Linux since late '98, still heaps to learn 🙁
BTW... i remebered i dicussed volume control with Anders Torger (author of BruteFIR) mid last year.
This is what he had to say:
Using BruteFIR's volume controls will mean that the digital signal is scaled.
If you use 24 bit digital outputs to feed your audio system (which you
should), the S/N ratio of the digital signal exceeds any analog system of
today, so the digital scaling should not be problem, especially if dithering
is applied (which it should be).
However, if you are a real HiFi purist, you might want to use external analog
volume controls after the DAC. It is however less practical, and will
probably degrade the signal more than if you let BruteFIR do digital scaling.
Also, the digital signal has been processed anyway, with the crossover
filters.
Anders
MWP,
Anders sounds like my kinda guy. If we up the bits to 32 then we'll be even in better shape.
I think the key to all of these questions is some objective measurement of dynamic range coming out of the dac. We shouldn't be speculating so much; we should be measuring more. I'm making it one of my goals to set up some type of measurement that can be calibrated and trusted.
Then, we can argue about listening preferences but not about measurements.
-Robert
p.s. - so you're not interested in the motherboard challenge eh?
MWP,
Anders sounds like my kinda guy. If we up the bits to 32 then we'll be even in better shape.
I think the key to all of these questions is some objective measurement of dynamic range coming out of the dac. We shouldn't be speculating so much; we should be measuring more. I'm making it one of my goals to set up some type of measurement that can be calibrated and trusted.
Then, we can argue about listening preferences but not about measurements.
-Robert
p.s. - so you're not interested in the motherboard challenge eh?
Re: Anders
Only if you had 32bit dacs.
RFScheer said:
If we up the bits to 32 then we'll be even in better shape.
Only if you had 32bit dacs.
32 bit dacs
Of course. Are there any multiplying dac configurations for audio (he asks again)? If there were, you could have a 24bit with an 8bit multiplier reference. Possible?
-Robert
Of course. Are there any multiplying dac configurations for audio (he asks again)? If there were, you could have a 24bit with an 8bit multiplier reference. Possible?
-Robert
BruteFIR setup
Well, it would be too long to explain. You need to try it and mess with it, depending on you rlinux hacking skillz it'll take a few hours to a weekend...
I use Gentoo Linux. I find it's quite easy to use, and its automatic package installer really makes life a LOT easier. No RPM hunt...
You have to install ALSA and the required drivers for your soundcard. This requires setting some options in th Kernel and recompiling it, then installing the corresponding modules. I won't tell you what to do, it's all in the docs, and you'll learn a lot more by reading them than by following blindly on someone's else advice. I can answer your questions, but only after you've read the docs !
Then you play some sound from your soundcard using the ALSA drivers, and step one is done.
Step 2 is to install Jack. Using Gentoo you just type :
emerge jack-audio-connection-kit (or something) and it installs itself. Mess with some text files to configure it, and you're done.
Now play some music through Jack and into Alsa.
Now install BruteFIR (download, unzip, configure, make) and setup a null filter with file input and file output (read the docs) : you should just get a copy of your file.
Now design a simple filter (lowpass, or whatever) and filter a file with it.
Now comes the hard part : making BruteFIR talk with Jack and Alsa... Basically your audio player must output through Jack (AlsaPlayer does this, maybe XMMS too), then you tell BruteFIR to use Jack as an input, and you tell Jack to connect the two. Then, you tell BruteFIR to play on an output Jack port, which you connect to the soundcard... and it should work...
This looks scary... but once it works you'll never have to reconfigure it for years. That's Linux : hairy to setup, but once it works, it works.
I have never seen any good overview in how you implement BruteFir as a digital crossover. I have read but not fully understood the BruteFir FAQ. Is there anywhere I can read more about this, or could someone - at least brief - explain what programs are used and how they are implemented.
Well, it would be too long to explain. You need to try it and mess with it, depending on you rlinux hacking skillz it'll take a few hours to a weekend...
I use Gentoo Linux. I find it's quite easy to use, and its automatic package installer really makes life a LOT easier. No RPM hunt...
You have to install ALSA and the required drivers for your soundcard. This requires setting some options in th Kernel and recompiling it, then installing the corresponding modules. I won't tell you what to do, it's all in the docs, and you'll learn a lot more by reading them than by following blindly on someone's else advice. I can answer your questions, but only after you've read the docs !
Then you play some sound from your soundcard using the ALSA drivers, and step one is done.
Step 2 is to install Jack. Using Gentoo you just type :
emerge jack-audio-connection-kit (or something) and it installs itself. Mess with some text files to configure it, and you're done.
Now play some music through Jack and into Alsa.
Now install BruteFIR (download, unzip, configure, make) and setup a null filter with file input and file output (read the docs) : you should just get a copy of your file.
Now design a simple filter (lowpass, or whatever) and filter a file with it.
Now comes the hard part : making BruteFIR talk with Jack and Alsa... Basically your audio player must output through Jack (AlsaPlayer does this, maybe XMMS too), then you tell BruteFIR to use Jack as an input, and you tell Jack to connect the two. Then, you tell BruteFIR to play on an output Jack port, which you connect to the soundcard... and it should work...
This looks scary... but once it works you'll never have to reconfigure it for years. That's Linux : hairy to setup, but once it works, it works.
Re: Re: Music player pc definition
Sometimes you get bad motherboards, or bad drivers... which will live happily or kill some OSes but not others... fact of life...
But, on a good motherboard (like a dirt cheap SIS), with good RAM (dirt cheap PC133) and a Duron, you'll reboot it once every three months for a kernel security upgrade and that's it...
I've seen some motherboards crash Linux or Windows... just change the mobo !
Questioning Linux's reliablity... compared with what, Windows?
Sometimes you get bad motherboards, or bad drivers... which will live happily or kill some OSes but not others... fact of life...
But, on a good motherboard (like a dirt cheap SIS), with good RAM (dirt cheap PC133) and a Duron, you'll reboot it once every three months for a kernel security upgrade and that's it...
I've seen some motherboards crash Linux or Windows... just change the mobo !
Re: 32 bit dacs
Impossible...
Your 32 bits multiplying DAC takes 2 input words, A (24 bits) and B (8 bits) ; thus :
A=1, B=100
A=100, B=1
would have to produce the same result, which would mean BOTH dacs should be accurate to something like 1/2^32, which is not feasible...
You'd get glitches in the signal.
HOWEVER
you can use a 24-bit DAC, then a 8-bit multiplying DAC as a volume control, no problem.
RFScheer said:Of course. Are there any multiplying dac configurations for audio (he asks again)? If there were, you could have a 24bit with an 8bit multiplier reference. Possible?
-Robert
Impossible...
Your 32 bits multiplying DAC takes 2 input words, A (24 bits) and B (8 bits) ; thus :
A=1, B=100
A=100, B=1
would have to produce the same result, which would mean BOTH dacs should be accurate to something like 1/2^32, which is not feasible...
You'd get glitches in the signal.
HOWEVER
you can use a 24-bit DAC, then a 8-bit multiplying DAC as a volume control, no problem.
Re: Anders
How much speculation is really going on? We don't need to measure things down to minute fractions of a dB to understand the situation.
A "good" audiophile grade DAC will provide somewhere between 105 and ~115 dB of dynamic range, maybe 120 at the very very outside. The LynxTwo specs say ~117, and the Benchmark DAC1 quotes 115 I think. What this means is that the DAC will provide about 20dB or so of DR "buffer" above the 16 bit data provided on the CD, and so you can apply 20dB of attenuation to that signal before the DAC starts to become the limiting factor. Another way to say it is that the DAC gives about 19 bits of resolution.
This sounds pretty good, because by the time you go 20dB down from your normal listening volume you're probably into casual/background mode and don't care about absolute quality so much. The problem is that most systems have too much gain after the DAC, requiring the use of attenuation under 'normal' listening conditions. eg if your soundcard/dac puts out a 2V signal at digital full-scale, and your amp has 30dB of gain, you'll be sending ~50V to your speakers (if your amp doesnt' clip somewhere) or 300+ Watts into a typical 8Ohm speaker. If you're multi-amping this may be OK for an inefficient woofer, but on a tweeter you're throwing away 15-20dB of DR in this case, and maybe 5-10 or more on a mid.
the ideal approach for digital attenuation is to balance the gain of the system after the DAC so that you are always using as much of the signal resolution as possible, so that you dont' exceed the DR "buffer" provided by your DAC. In the simplest case, this can mean just putting an attenuating resistive divider at the input to the amp to bring the signal level down.
RFScheer said:
I think the key to all of these questions is some objective measurement of dynamic range coming out of the dac. We shouldn't be speculating so much; we should be measuring more. I'm making it one of my goals to set up some type of measurement that can be calibrated and trusted.
How much speculation is really going on? We don't need to measure things down to minute fractions of a dB to understand the situation.
A "good" audiophile grade DAC will provide somewhere between 105 and ~115 dB of dynamic range, maybe 120 at the very very outside. The LynxTwo specs say ~117, and the Benchmark DAC1 quotes 115 I think. What this means is that the DAC will provide about 20dB or so of DR "buffer" above the 16 bit data provided on the CD, and so you can apply 20dB of attenuation to that signal before the DAC starts to become the limiting factor. Another way to say it is that the DAC gives about 19 bits of resolution.
This sounds pretty good, because by the time you go 20dB down from your normal listening volume you're probably into casual/background mode and don't care about absolute quality so much. The problem is that most systems have too much gain after the DAC, requiring the use of attenuation under 'normal' listening conditions. eg if your soundcard/dac puts out a 2V signal at digital full-scale, and your amp has 30dB of gain, you'll be sending ~50V to your speakers (if your amp doesnt' clip somewhere) or 300+ Watts into a typical 8Ohm speaker. If you're multi-amping this may be OK for an inefficient woofer, but on a tweeter you're throwing away 15-20dB of DR in this case, and maybe 5-10 or more on a mid.
the ideal approach for digital attenuation is to balance the gain of the system after the DAC so that you are always using as much of the signal resolution as possible, so that you dont' exceed the DR "buffer" provided by your DAC. In the simplest case, this can mean just putting an attenuating resistive divider at the input to the amp to bring the signal level down.
Re: Music player pc definition
I haven't looked at network boot much, but I have looked into using a CF card in a CF=>ide adapter. This would probably be easier, although not necessarily cheaper.
I haven't done exhaustive research, but for 'music player' type use the Epia's seem to be pretty well supported and pretty easy to set up. The biggest problems with configuration appear to be in terms of getting the X drivers set up to use HW-accelerated functions, and using the MPEG-2 video decoder features. If neither of these is needed, it should be pretty easy.
I did a bit of looking at the Epia machines again, and it looks like even an M10000 would be lucky to achieve more than about 10-15% of what I'm seeing on a P4 1.6 when using double-precision floats and long-ish filters, and any of the fanless ones would be even worse. I'm not optimistic that this will be enough for a good BruteFIR setup.
In the case of streaming the output of BruteFIR over to another box, I'll have to do some tests. When I mentioned the need for spdif sync, I was originally thinking of the case where you have inputs from external sources going to the BruteFIR machine and the output coming out of the other machine. In this case, it is absolutely necessary to have both soundcards using the same clock in a long-term sense - this can be achieved simply by running an spdif link from one machine to the other and slaving one side to the incoming spdif signal.
If no external sources are present, this *might* not be necessary. However, the specific jack.udp mechanism I mentioned obviously uses Jack, and I'm not sure how it will behave it you don't have a 'real' clock in the system. Jack 'can' run without a clock, but it might well overrun network buffers etc.
RFScheer said:One common objection to pc music players is they are ugly and don't fit in with the hifi "look".
I agree so that's why I want to make a nice small hifi style VIA M10000 with 1G DDRAM with no hard drive (no mechanical drives at all) is my hope. Network boot. I've never set up a network boot machine before so I dread the learning curve on that but how hard can it be?
I haven't looked at network boot much, but I have looked into using a CF card in a CF=>ide adapter. This would probably be easier, although not necessarily cheaper.
However the main thing I dread is configuring Linux for the VIA. I recently put together a new box for my office but couldn't get Linux to run reliably. Motherboard was ASUS A7V8X-X and I believe the VIA southbridge is a problem. Anyway, since the config of Linux for the music pc will be time-consuming, it is important that we know for sure it is a reliable platform.
I haven't done exhaustive research, but for 'music player' type use the Epia's seem to be pretty well supported and pretty easy to set up. The biggest problems with configuration appear to be in terms of getting the X drivers set up to use HW-accelerated functions, and using the MPEG-2 video decoder features. If neither of these is needed, it should be pretty easy.
I doubt a full distribution would be necessary. More likely would be a few pre-compiled add-on packages that go along with a common epia-friendly distro.
Since the unit will be dedicated to music playing only, maybe we can setup a standard distribution of Linux for it and share it with our little diy group.
dwk123 - If the VIA computing power becomes a limitation, I would almost certainly test your idea of crunching BruteFIR and any other dsp on a server and streaming it out to the player over ethernet. Could you discuss more about sync requirements between these machines?
I did a bit of looking at the Epia machines again, and it looks like even an M10000 would be lucky to achieve more than about 10-15% of what I'm seeing on a P4 1.6 when using double-precision floats and long-ish filters, and any of the fanless ones would be even worse. I'm not optimistic that this will be enough for a good BruteFIR setup.
In the case of streaming the output of BruteFIR over to another box, I'll have to do some tests. When I mentioned the need for spdif sync, I was originally thinking of the case where you have inputs from external sources going to the BruteFIR machine and the output coming out of the other machine. In this case, it is absolutely necessary to have both soundcards using the same clock in a long-term sense - this can be achieved simply by running an spdif link from one machine to the other and slaving one side to the incoming spdif signal.
If no external sources are present, this *might* not be necessary. However, the specific jack.udp mechanism I mentioned obviously uses Jack, and I'm not sure how it will behave it you don't have a 'real' clock in the system. Jack 'can' run without a clock, but it might well overrun network buffers etc.
Re: Re: Music player pc definition
Why not put the input soundcard on your mini-PC and stream data both ways over ethernet ?
dwk123 said:In the case of streaming the output of BruteFIR over to another box, I'll have to do some tests. When I mentioned the need for spdif sync, I was originally thinking of the case where you have inputs from external sources going to the BruteFIR machine and the output coming out of the other machine. In this case, it is absolutely necessary to have both soundcards using the same clock in a long-term sense - this can be achieved simply by running an spdif link from one machine to the other and slaving one side to the incoming spdif signal.
Why not put the input soundcard on your mini-PC and stream data both ways over ethernet ?
Example benchmark system
My new linux music machine parts are ordered (just the pc parts, not the all-important sound reproduction components):
Thinking about these 2 for phase 1 benchmarking:
1. M-Audio Transit USB "soundcard" for digital optical out:
2. This commercial dac looks good enough:
Some mods to the Transit might help some but according to tests on the DAC-1 are not really necessary.
Anyone think the DAC-1 is easy to equal by diy for less than $1k? Confident of doing better?
Will definitely be using Rightmark software for benchmarking. Note that it cannot test jitter directly. An indirect technique for comparison might be to feed the dac a sweep from 20kHz to 200kHz and measure stop-band attenuation. Anyone have experience with this? Seems VERY sensitive to jitter.
-Robert
My new linux music machine parts are ordered (just the pc parts, not the all-important sound reproduction components):
Thinking about these 2 for phase 1 benchmarking:
1. M-Audio Transit USB "soundcard" for digital optical out:
2. This commercial dac looks good enough:
Some mods to the Transit might help some but according to tests on the DAC-1 are not really necessary.
Anyone think the DAC-1 is easy to equal by diy for less than $1k? Confident of doing better?
Will definitely be using Rightmark software for benchmarking. Note that it cannot test jitter directly. An indirect technique for comparison might be to feed the dac a sweep from 20kHz to 200kHz and measure stop-band attenuation. Anyone have experience with this? Seems VERY sensitive to jitter.
-Robert
What is the brand of your guy's hard drives. I just transfered a bunch of files to my music_station and the speakers picked up the noise from the hard drive.
- Status
- Not open for further replies.
- Home
- Source & Line
- Digital Source
- PC music players