Linux Audio the way to go!?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
peufeu said:
Actually, if I wanted to use USB sound, here is what I would do :

- put a master clock in the DAC with short clock path, reclocking all DAC signals
- put a SPDIF encoder using this master clock, sending SPDIF encoded silence to the computer. This SPDIF encodes the master clock.
- send this SPDIF to the input of the USB device
- computer plays music to the device's SPDIF output
- DAC has SPDIF input and plays this SPDIF reclocked with the master clock

Now this will only work if the computer slaves itself to the incoming SPDIF clock. I do not know if this is possible with USB. It would be very interesting to find out.


The only way I'd walk, would be tapping off I2S from a PCI sound card.

Cheers
 
Linux USB audio performance tweak

Hi folks.

I never mentioned this tweak before :

You should try this:

in /etc/modprobe.d/alsa-base (on debian/ubuntu)

lookup the:

option usb-snd-driver index=1 # or similar

and append

nrpacks=1

to it. (nrpacks means number of packets per urb (Usb Request Block! )

This will avoid that more then one package will be put on a frame.
That'll give you a pretty harmonic stream. ;)

You also need to change the Kernel Konfig otherwise this setting will interfere with
some experimental kernel features:
Under "Device Drivers /USB Support" you have to turn off the options:

Enforce USB bandwith allocation
Dynamic USB minor allocation


By doing this the acoustic stage is getting wider and gets much closer towards your listening position.

Cheers
\Klaus
 
First brutefir impressions.

Hi folks.

Just finished my brutefir basic configuration! ;) :D
It took me a while since the documentation is not really straight forward and my knowledge in the beginning was rather limited.
I couldn't compile it on my machine and ran in a few other problems.
Finally I managed and got to understand how it's done. This tool is not meant to be used by Linux newbies - that's for sure. ( Don't worry - I'll give directions later)

I realised that I can run brutefir without using another engine.
I am using it now as standalone audio-processing engine incl. volume control and
dithering.
Anders Torger has implemented a kind of self-adjusting-to-system-performance-capabilities routine, which is quite nice.

How does it sound?

I am again getting closer to the spaciness and textures you might know from nice headphones connected to a nice portable player ( or maybe also from a master/slave clocking scenario ;) ).
The current setup clearly produces more low level details.
It just sounds better then ecasound.

Now I need to finish my wrapper script.
I can pretty much use the ecasound script except that the volume levels in brutefir are logarithmic. I have to change that.

Next steps:

I just ordered a 2nd USB DDAC from Doede (peufeu: I don't give up on USB - Not now) ;) to test if a 2nd USB-DAC on the USB-bus to drive my subwoofers, will impact the sound on my mids and highs.

I am really looking forward to play with very steep phase accourate filters, for my crossovers and a perfect time allignment for the speakers! ;)

I got the feeling that the whole journey just started.

I already got the next stage after the next in mind:

USB-cables ending at the speakers (DACed and AMPed right in front of the drivers. ;)


Cheers
\Klaus
 
Soundcheck,

I seem to remember reading somewhere in the "how to PC XO" thread, or elsewhere on the forum, that there are syncing issues when using two separate usb dacs, indeed between two pci interfaces i.e. it is difficult to ensure both streams happen at exactly the same time. perhaps the control you have over the devices in linux addresses this, but might be worth looking into. I suppose also if there is a consistent delay between channels you would be able to account for this in your brutefir configuration.

I dont think there any diy solutions to multiple channels over one usb interface, but certainly a number commercial devices - maudio etc.

The duffroomcorrection wiki site is good place for examples of other peoples brutefir configs.

Ross
 
rossco_50 said:
Soundcheck,

I seem to remember reading somewhere in the "how to PC XO" thread, or elsewhere on the forum, that there are syncing issues when using two separate usb dacs, indeed between two pci interfaces i.e. it is difficult to ensure both streams happen at exactly the same time. perhaps the control you have over the devices in linux addresses this, but might be worth looking into. I suppose also if there is a consistent delay between channels you would be able to account for this in your brutefir configuration.

I dont think there any diy solutions to multiple channels over one usb interface, but certainly a number commercial devices - maudio etc.

The duffroomcorrection wiki site is good place for examples of other peoples brutefir configs.

Ross

Ross.

You gotta valid point here. I thought about it earlier.
It brings me back to the IRQ scheduling problem. That's why I want to try it first.
Perhaps it is less of an issue due to my higher timer freqency.

Still both interfaces would have to work with the same priority to ensure a
homogenous stream.
A good thing though. Under Linux I am able to address explicitely every single USB port.

If that all sounds better in the end - I guess nobody is able to answer this at this stage.


Regarding duffroomcorrection asf.: Believe me - I've been sneaking around on most of these pages. It is not that obvious what they are doing, especially applying this to your own setup makes it kind of tricky. ;)

Cheers
Klaus
 
linux tweaks

Klaus,

I more or less try to keep up with you in playing digital music with Linux, but I see there is a lot of progress on your side, producing a lot of questions on mine::confused:
I would like to try the tweak you mentioned for a wider stage, but how to konfig the kernel afterwards ?
And then, if you use brutefir as player, do you still upsample to 48k ?, does the tweak mentioned above stilll work ?, do you still change the timer frequency ?, do you still need an rt-patch ????.
If playing with brutefir does not need all these tweaks, I'd rather stop putting effort in realising these. :scratch:


When I read your last post I also have the feeling you are just at the begin.:)
succes

Cheers
Werner
 
brutefir

I have been using brutefir for awhile and wanted to share a recent change that makes a big difference. I switched from alsaplayer to aqualung, and then changed the rest of my setup to run at 88.2 Khz instead of 44.1. Aqualung resamples to 88.2 during playback. Because I do extensive processing in brutefir (crossovers, room correction, surround channels), the additional resolution makes a big difference. The improvement was immediately audible.

I will eventually post more details at duffroomcorrection.com, a resource I encourage anyone using brutefir to check out. You can see details about my system there (not up to date - its constantly evolving) if you look for GTS.
 
Re: brutefir

houstonian said:
I have been using brutefir for awhile and wanted to share a recent change that makes a big difference. I switched from alsaplayer to aqualung, and then changed the rest of my setup to run at 88.2 Khz instead of 44.1. Aqualung resamples to 88.2 during playback. Because I do extensive processing in brutefir (crossovers, room correction, surround channels), the additional resolution makes a big difference. The improvement was immediately audible.

I will eventually post more details at duffroomcorrection.com, a resource I encourage anyone using brutefir to check out. You can see details about my system there (not up to date - its constantly evolving) if you look for GTS.

Hi.

You might be able to help me on below issues.
(Unfortunately Anders Torger refused to support me and there is no brutefir mailing list or forum to post these kind of questions.)

1. I encounter a nasty high energy pulse almost killing my
speakers when the engine starts. :bawling:
I am running the config with coeff = -1 (copy mode)
And I do not run brutefir as daemon.
2. Somehow the playback stops a couple of seconds before the
song ends. :bawling:
3. I never managed to start and play brutefir from my ramdrive.
I copied the binaries, config, and .wav to the ramdrive.
brutefir still accesses the HD heavily while starting up. :confused:

However, running brutefir with a wrapper-script as primary sound
engine, is just the best PC based audio-engine I ever listened to. :D

Cheers
Klaus
 
Re: linux tweaks

Werner Rem said:
Klaus,

I more or less try to keep up with you in playing digital music with Linux, but I see there is a lot of progress on your side, producing a lot of questions on mine::confused:
I would like to try the tweak you mentioned for a wider stage, but how to konfig the kernel afterwards ?
And then, if you use brutefir as player, do you still upsample to 48k ?, does the tweak mentioned above stilll work ?, do you still change the timer frequency ?, do you still need an rt-patch ????.
If playing with brutefir does not need all these tweaks, I'd rather stop putting effort in realising these. :scratch:


When I read your last post I also have the feeling you are just at the begin.:)
succes

Cheers
Werner


Hi Werner.

I am still playing at 48kHz.
I just installed 2.6.21 with Con Kolivas ck1
I am running brutefir at a nice of -20 or schedtool -I
I even changed the timer fequency to 10000Hz now
I tweaked the usb-sound driver.

All tweaks still apply.

You won't get away from getting yourself into Linux! ;)

All improvements caused by the applied tweaks have been confirmed by a fellow, also running a DDDAC and a high-end system, who was able to follow my recommendations.

You need to look at the whole digital path before leaving the port. One bottleneck in the pipe might be able to wipe out all the improvements gained before.

I doubt that I can get it - soundwise - much better for now. I am running out of ideas. ;)

Perhaps the crossover filters will get me again a step further.
I hope I'll manage to get it done during the next two weeks.

Cheers
Klaus
 
Re: Re: brutefir

1. I encounter a nasty high energy pulse almost killing my
speakers when the engine starts. :bawling:
I am running the config with coeff = -1 (copy mode)
And I do not run brutefir as daemon.
2. Somehow the playback stops a couple of seconds before the
song ends. :bawling:
3. I never managed to start and play brutefir from my ramdrive.
I copied the binaries, config, and .wav to the ramdrive.
brutefir still accesses the HD heavily while starting up. :confused:


Since you're running from a script, can you set up a mute, run program, un-mute section for the "pulse"? Or can the "pulse" bypass the mute function?

I'd recommend temporarily "downgrading" your system for the brutefir test to see if you still have problems.

I've never run brutefir before, but probably just boot into a regular kernel (as in non-10kHz frequency) to see if you still have troubles or not. Once you establish certain base lines, you can add all the tweaks back in.
 
Klaus,

Wonder if you can help me here. Ive been trying to patch the 2.6.20 kernel with the ck1 patch. When I go to do the config before building the timer options only go up to 1000hz (which I believe is standard) - does this mean the patch hasn't been applied properly or is there a different menu option? The one Ive looked at is under cpu types settings.

Also, does the ck1 patch include the sd staircase scheduler or is this a separate patch?

Any pointers you could give would be much appreciated.

Cheers,

Ross
 
Re: Re: Re: brutefir

dunndatt said:
1. I encounter a nasty high energy pulse almost killing my
speakers when the engine starts. :bawling:
I am running the config with coeff = -1 (copy mode)
And I do not run brutefir as daemon.
2. Somehow the playback stops a couple of seconds before the
song ends. :bawling:
3. I never managed to start and play brutefir from my ramdrive.
I copied the binaries, config, and .wav to the ramdrive.
brutefir still accesses the HD heavily while starting up. :confused:


Since you're running from a script, can you set up a mute, run program, un-mute section for the "pulse"? Or can the "pulse" bypass the mute function?

I'd recommend temporarily "downgrading" your system for the brutefir test to see if you still have problems.

I've never run brutefir before, but probably just boot into a regular kernel (as in non-10kHz frequency) to see if you still have troubles or not. Once you establish certain base lines, you can add all the tweaks back in.

I'll check it out.

I got some more options to try:

* Running it as a daemon and/or using the commandline interface
* Using a pipe as input instead of reading a file

I tried "Mute". It mutes permamently the in-/output. U need to use CLI again.
The pulse happens exactly when start playing.
I am running the copy-mode ( dirac pulse!! 0db ), which might cause the issue in the very beginning of the playback.


rossco_50 said:
Klaus,

Wonder if you can help me here. Ive been trying to patch the 2.6.20 kernel with the ck1 patch. When I go to do the config before building the timer options only go up to 1000hz (which I believe is standard) - does this mean the patch hasn't been applied properly or is there a different menu option? The one Ive looked at is under cpu types settings.

Also, does the ck1 patch include the sd staircase scheduler or is this a separate patch?

Any pointers you could give would be much appreciated.

Cheers,

Ross

Hi Ross.

* The new timer frequencies are available by the ck1 patch
As soon as the patch is applied properly, you'll find them in
the menuconfig.

* The staircase scheduler is part of ck1.

Cheers
\Klaus
 
Thanks

Hi Klaus,

Thanks for clearing that up. I had tried ck1 on 2.6.20 and saw no other timer options (you just confirmed why). Ive since patched 2.6.21 with ck2 and saw as you have options up to 10000hz. I went for 5000hz but might have to reduce this when I move the system over to my 700mhz cyrix processor. Im trying to make it work on puppy, still a few issues in making the system see the new kernel but have managed the compile - will report back once its done.

My plan is reduce puppy to nothing but the essentials for audio playback which will all load into ram. Im also keen, like you, to have a digital xo for my speakers and have to decided to stick with the envy24-ht card I have rather than switch to usb. I will tap the card for i2s at some point (although there may be ground issues with this). hope to get the sync to spdif in feature working under alsa, but proving difficult. Been reading the datasheet and will set up alsa to optimise buffers in line with those of the chip.

I plan to run music player daemon without a display and control it over the network. Ecasound seems to have better features, but my girlfriend will loose the plot if she has to use the command line to playback! if the interface is on another pc it can be as sophisticated as I want without it effecting playback (i think). Network interupts of course are not ideal.

Brutefir looks complicated so will leave that until last. if it proves too difficult and/or is too much for the lowly cyrix, I may try to use ladspa filters which alsa can address directly (admittedly this doesn't look easy either).

Let us know how you're getting on with the 2 dddacs.

Cheers,

Ross
 
Re: Thanks

rossco_50 said:
Hi Klaus,

Thanks for clearing that up. I had tried ck1 on 2.6.20 and saw no other timer options (you just confirmed why). Ive since patched 2.6.21 with ck2 and saw as you have options up to 10000hz. I went for 5000hz but might have to reduce this when I move the system over to my 700mhz cyrix processor. Im trying to make it work on puppy, still a few issues in making the system see the new kernel but have managed the compile - will report back once its done.

My plan is reduce puppy to nothing but the essentials for audio playback which will all load into ram. Im also keen, like you, to have a digital xo for my speakers and have to decided to stick with the envy24-ht card I have rather than switch to usb. I will tap the card for i2s at some point (although there may be ground issues with this). hope to get the sync to spdif in feature working under alsa, but proving difficult. Been reading the datasheet and will set up alsa to optimise buffers in line with those of the chip.

I plan to run music player daemon without a display and control it over the network. Ecasound seems to have better features, but my girlfriend will loose the plot if she has to use the command line to playback! if the interface is on another pc it can be as sophisticated as I want without it effecting playback (i think). Network interupts of course are not ideal.

Brutefir looks complicated so will leave that until last. if it proves too difficult and/or is too much for the lowly cyrix, I may try to use ladspa filters which alsa can address directly (admittedly this doesn't look easy either).

Let us know how you're getting on with the 2 dddacs.

Cheers,

Ross


The spb-linux (5MB) seems to be an interesting approach.

http://www.duffroomcorrection.com/wiki/Mini-BruteFIR_with_USB-memorystick.

It is pretty much stripped down to the limits.

Cheers
 
DCX2496

BlackCatSound said:
None of the changes you've done would affect the soundcards I use. Its synced to a fixed internal clock on the PCI card rather than syncing to a software generated 'clock' from the PC.

EDIT: there is also no Linux driver available for the card I use most. Bit of a drawback :)




Hi!

Sorry for the offtopic, but i need a help in Behringer DCX2496 theme
and I can't write direct message to the sender of that message....
So if anybody can help to reach this guy (full member) and send him
a message i thank it very much....
Sorry for the off.... and thanx for the help!
 
Re: Re: brutefir

soundcheck said:


1. I encounter a nasty high energy pulse almost killing my
speakers when the engine starts. :bawling:
I am running the config with coeff = -1 (copy mode)
And I do not run brutefir as daemon.
2. Somehow the playback stops a couple of seconds before the
song ends. :bawling:
3. I never managed to start and play brutefir from my ramdrive.
I copied the binaries, config, and .wav to the ramdrive.
brutefir still accesses the HD heavily while starting up. :confused:


Hi folks.

Good news:

1. Anders Torger is looking into 1.
2. Solved: Some wrong parameter settings.
3. Workaround: Somehow brutefir buffers the wav-file on the
HDD in your home directory. (This information you won't find anywhere else! The best kept secret! ;) )
What I did --- I just mounted my (root)-home into RAM --- And guess what? - The system never touched the HDD again!!

Finally - I can see light at the end of the tunnel. :D

And:

I'll finish my 2nd DDDAC tommorrow!

Now I have to start the FIR-filter journey!
After reading a very interesting white paper on www.acourate.com, I am sure to get a great
crossover filter in place.


One more: A hint for the USB-Audio-Lovers:
Try your different USB-ports.
You'll figure out that they sound (some of them "substantially") different! Go for the best! ;)

Cheers
\Klaus
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.