I use archlinux on my main computer but plan to start a project with active speakers with a digital crossovers. I would like to stay that way but it seems hard to implement what i want.
I need a system wide crossover where i would not need to instruct every separate program to funnel into the crossover. (If some program i forgot i had suddently decide to put out sound i dont want to blow a tweeter, (and it just seems easier if it works)). I'd prefer if this could be set up in a GUI to easier see whats happening on the curves. My main focus is music but if i would like to start up a game or a movie i want that to work as well.
I rather not spend 500 dollars on a minidsp (i need six channels) when i have all the audio outputs and processing power in my machine allready.
Is this possible in linux today?
I need a system wide crossover where i would not need to instruct every separate program to funnel into the crossover. (If some program i forgot i had suddently decide to put out sound i dont want to blow a tweeter, (and it just seems easier if it works)). I'd prefer if this could be set up in a GUI to easier see whats happening on the curves. My main focus is music but if i would like to start up a game or a movie i want that to work as well.
I rather not spend 500 dollars on a minidsp (i need six channels) when i have all the audio outputs and processing power in my machine allready.
Is this possible in linux today?
I use low powered Linux machines as crossovers for active systems. See my signature for some info (LADSPA). I run all my audio through ALSA (only).
When you use ALSA you can define a "default" device/card in your asoundrc file. Then all your programs and the system will send audio to this, by default. Configure your default device as the input to your crossover program/code, which then outputs it to the amps and speakers.
I don't know of a Linux based crossover builder with a GUI interface. Maybe there is one, maybe not. I wrote my own stuff, and use ecasound+LADSPA to implement IIR filters.
Before getting too excited about your computer based crossover, consider that your soundcard may have limited output voltage. You should compare that to the input sensitivity needs of your amplifiers, or build them to suit (e.g. chip amps, etc.). Also computer audio often suffers from noise (e.g. hiss) because the noise floor is not typically as low as standalone hardware. You might connect the soundcard output to your amps to test this before proceeding.
When you use ALSA you can define a "default" device/card in your asoundrc file. Then all your programs and the system will send audio to this, by default. Configure your default device as the input to your crossover program/code, which then outputs it to the amps and speakers.
I don't know of a Linux based crossover builder with a GUI interface. Maybe there is one, maybe not. I wrote my own stuff, and use ecasound+LADSPA to implement IIR filters.
Before getting too excited about your computer based crossover, consider that your soundcard may have limited output voltage. You should compare that to the input sensitivity needs of your amplifiers, or build them to suit (e.g. chip amps, etc.). Also computer audio often suffers from noise (e.g. hiss) because the noise floor is not typically as low as standalone hardware. You might connect the soundcard output to your amps to test this before proceeding.
a separate box seems a little redundant if you think about how easy it would be without it if i just had this software perfectly tailored to my needs 🙂 It is still on my list of alternatives though.
Do you have any idea if a raspberrry pi with optical input and 5.1/7.1 out could work with low latency? as far as i heard it is pretty limited in USB performance. Is there any other good boards that will work?
I read some of you thread and web page and your software with ecasound seems like it could be part of a solution. What concerns me most is if the latency is low enough and that ecasound is said to output loud noise if given the wrong bitrate.
I found this earlier today but Im not sure if it could be used for a crossover: http://eq10q.sourceforge.net/ will look into it closer.
i use a cheap usb 5.1 sound card connected to a nad c370 right now and it works pretty good, the other amps will be bought to work with that. propably cheap/used. I dont think money is generally well spent on expensive dacs/amps
Do you have any idea if a raspberrry pi with optical input and 5.1/7.1 out could work with low latency? as far as i heard it is pretty limited in USB performance. Is there any other good boards that will work?
I read some of you thread and web page and your software with ecasound seems like it could be part of a solution. What concerns me most is if the latency is low enough and that ecasound is said to output loud noise if given the wrong bitrate.
I found this earlier today but Im not sure if it could be used for a crossover: http://eq10q.sourceforge.net/ will look into it closer.
i use a cheap usb 5.1 sound card connected to a nad c370 right now and it works pretty good, the other amps will be bought to work with that. propably cheap/used. I dont think money is generally well spent on expensive dacs/amps
For audio, the Pi's USB is not really that limiting, but it depends on the sample rate you want to use. Keep in mind that some devices only use USB at low speeds, and that has nothing to do with the Pi itself. You can, for example, send 8 channels of 48kHz audio to a 7.1 ch USB DAC. Do not use anything earlier than the Pi 2, however.
I don't know what you consider "low latency". It would depend a little on how much processing the Pi is doing at the time. As a headless setup at 48kHz I think you should be able to get under 100 msec total, maybe under 50msec. Keep in mind that each step has buffering: input, processing, and I think even output. Best is to try it and then start tweaking the ecasound buffering settings to get the lowest latency that still works. I don't know for sure because I do not often use real-time (e.g. analog) inputs on any of my Pi setups. Instead I stream PCM audio to them over my home's WiFi using gstreamer, but the latency of that alone is a couple of hundred milliseconds (e.g. 200msec) and that dominates the total system latency.
I don't know what you consider "low latency". It would depend a little on how much processing the Pi is doing at the time. As a headless setup at 48kHz I think you should be able to get under 100 msec total, maybe under 50msec. Keep in mind that each step has buffering: input, processing, and I think even output. Best is to try it and then start tweaking the ecasound buffering settings to get the lowest latency that still works. I don't know for sure because I do not often use real-time (e.g. analog) inputs on any of my Pi setups. Instead I stream PCM audio to them over my home's WiFi using gstreamer, but the latency of that alone is a couple of hundred milliseconds (e.g. 200msec) and that dominates the total system latency.
Do you have any idea if a raspberrry pi with optical input and 5.1/7.1 out could work with low latency?
How do you plan to synchronize the incoming SPDIF stream and outgoing soundcard/USB controller clock/? For a continuously running Xover the two clock domains will eventually drift apart. The more buffers you throw in to postpone the over/underfilling, the longer latency will result.
If it's a full desktop install, you probably run Pulseaudio. You can run plugins or interfaces to Pulse (e.g. Jack) to run FIR filters to accomplish crossover/room EQ etc.
If thinking about smaller platforms, take a look at Runeaudio. It's for Raspberry Pi and similar and built on Arch.
If thinking about smaller platforms, take a look at Runeaudio. It's for Raspberry Pi and similar and built on Arch.
I use pulseaudio and jackd on a linux machine for all my audio, all the programs send their sound to pulseaudio, which then sends it to jackd.
For filtering I used ladspa filters and a ladspa host for jack that i wrote, so that I can configure them via a webinterface, I have attached screenshots of what the webinterface of my program looks like.
I did not release this program yet due to lack of time (and javascipt knowledge).
If you want a ladspa host for jack that is fully functional, the jack rack program is an option, besides that you will also need a connection manager for jack to correctly connect all the jack ports, qjackctl is an option for this.
For volume control I use pulseaudio, which is a software volume control, it's good enough for me, mostly because I run jackd in 24 bits mode.
I still have to write a jack client to apply the pulseaudio volume directly, so that I can also use it for line-in.
So should you stick with linux? Yes! 🙂
If you find it interesting, I attached a photo of the machine I run this on, it has an Asus D2X sound card, and an 8 channel amplifier, made using two TDA7850 quad amplifiers, although only 6 channels are connected.
The photo is a few years old, I have since upgraded the machine with a different power supply for better idle power usage (it's always on because it's also my server), and there's a usb relay board inside to automatically switch on the amplifier when there is an audio signal present.
For filtering I used ladspa filters and a ladspa host for jack that i wrote, so that I can configure them via a webinterface, I have attached screenshots of what the webinterface of my program looks like.
I did not release this program yet due to lack of time (and javascipt knowledge).
If you want a ladspa host for jack that is fully functional, the jack rack program is an option, besides that you will also need a connection manager for jack to correctly connect all the jack ports, qjackctl is an option for this.
For volume control I use pulseaudio, which is a software volume control, it's good enough for me, mostly because I run jackd in 24 bits mode.
I still have to write a jack client to apply the pulseaudio volume directly, so that I can also use it for line-in.
So should you stick with linux? Yes! 🙂
If you find it interesting, I attached a photo of the machine I run this on, it has an Asus D2X sound card, and an 8 channel amplifier, made using two TDA7850 quad amplifiers, although only 6 channels are connected.
The photo is a few years old, I have since upgraded the machine with a different power supply for better idle power usage (it's always on because it's also my server), and there's a usb relay board inside to automatically switch on the amplifier when there is an audio signal present.
Attachments
Last edited:
Hi
Maybe this is your solution
X-over realized by Laptop, Open Source and 7.1 AV Receiver over Display Port / HDMI
https://1drv.ms/b/s!AnKX4vLSHn4Nh5ty6YD-Ge9iJbJ8qA
Regards
Maybe this is your solution
X-over realized by Laptop, Open Source and 7.1 AV Receiver over Display Port / HDMI
https://1drv.ms/b/s!AnKX4vLSHn4Nh5ty6YD-Ge9iJbJ8qA
Regards
If you find it interesting, I attached a photo of the machine I run this on, it has an Asus D2X sound card, and an 8 channel amplifier, made using two TDA7850 quad amplifiers, although only 6 channels are connected.
The photo is a few years old, I have since upgraded the machine with a different power supply for better idle power usage (it's always on because it's also my server), and there's a usb relay board inside to automatically switch on the amplifier when there is an audio signal present.
Since bobo1on1 mentioned his computing hardware I thought I would throw in my 2 cents on that as well. I have build a couple of systems using mini-ITX motherboards from ASRock that have an Intel integrated processor (mine are J1900 Baytrail mobos: Q1900DC-ITX). These have an onboard ALC892 audio codec which gives you 8 channels analog output at up to 24/192. The performance is not bad at all, really, and ASRock seems to have done a good job implementing the ALC892 chip. The only limitation (for me) is the max output voltage of about 1Vrms so make sure your amps don't need a higher voltage. The mini-ITX form factor is pretty small, and the case is only 7.5" x 7.75" x 2.5" (I use a Morex 557 case). There is a bit more current version CPU in the J4205-ITX motherboard for US$100. Get a 4GB stick of 1600 DDR3 memory $25. I got a refurbished 160GB WD HDD for $25. You will also need a small fanless PS, I think it is also around $25. Then the case is around $50. So, for $225 you have a nice little computer (but no monitor, keryboard, etc.). It's completely fanless (CPU is on a heat sink), silent, and has 8 audio outputs. Linux OS gives you linux audio and you are good to go.
Last edited:
- Status
- Not open for further replies.
- Home
- Source & Line
- PC Based
- Should i stick with linux? (need system wide low latency crossovers)