PC music players

Status
Not open for further replies.
NWFIIR

The write-up from Anders on the NWFIIR site is inspiring. But unfortunately, the code won't compile on my machine. The assembly code is for an Intel-based pc and mine is AthlonXP. I may need to setup an old Intel box for this task. Bah humbug. Everyone agree?

-Robert
 
Re: NWFIIR

RFScheer said:
The write-up from Anders on the NWFIIR site is inspiring. But unfortunately, the code won't compile on my machine. The assembly code is for an Intel-based pc and mine is AthlonXP. I may need to setup an old Intel box for this task. Bah humbug. Everyone agree?

An AthlonXP wont have any problems running the apps on that page.
Youll only need the conversion utils anyway... use BruteFIR in NWFIIR's place.

What errors did you get?
 
Re: Promising

RFScheer said:
nuppe,

As soon as I pass the current milestone of learning how to:
1) design decent crossover filters for BruteFIR
2) connect a general gui music player like xmms to jack to brutefir to alsa
3) measure the full live response of my system
4) correct the response and achieve best sound possible from M-Audio 410 analog outputs
then it'll be time to start designing the next stage of improvement in the dac section. If someone hasn't ruled out this firewire chip by then, it looks like a good candidate for a diy multichannel pc music player dac board.

[.......]

-Robert

Andreas mentioned ScopeFIR a few days back. It's a wonderful package, nicely set up, and you can approach FIRs at your own rate with it. Frankie-Bob says two thumbs up! :up: :up:

Quick Question: I want to use the PC as a DSP engine only because I want to run various inputs through the thing, on top of being able to boot it from flash (something else I haven't figured out) and avoid the disk drive question entirely. Has anyone else run their systems as Input->Process->Output?


Francois.
 
Re: Promising

RFScheer said:

All,

Have you ever corresponded with Don Maurer regarding his pc music system, which has many fantastic attributes? I've sent him an email hoping he has some advice for us. Don's website:


Don developed his system with a fair bit of traffic on the DSP list, so I did see some of the evolution. From what I can tell, he's not really doing anything unexpected, his accomplishment is really just putting all the pieces together. He follows the basic path that has been outlined:
- define ideal 'target' curves for the drivers
- measure the driver response
- create correction filter so acoustic response matches target

There's probably also a 'level match drivers' step in there somewhere but I'm not sure how/where he does it.

I'm not aware of any posts or updates from Don in quite a while. I know he kept his code 'secret' as he was going to investigate commercial opportunities, but I don't know the status of that.


dwk123,

I've reread some of your old posts and realize that you have a M-Audio Delta 1010 and use BruteFIR and have implemented correction of drivers and I believe room response. So, how do you set target response and design filters to achieve your targets? Do you follow peufeu's basic procedure (see a few posts back). What kind of microphone/preamp setup do you use and/or recommend?


Wow, if I were to detail everything I've done/tried, this would be a long post. I've been putzing with this for a long time (I think I got my Carver ribbons about 7+ years ago, and always intended to do a DSP system with them). I started with DSP hardware (56007 and 56362 EVM kits), but abandoned them when I discovered BruteFIR.

Most of the time, I did follow the basic procedure I described above and others have outlined. I've used a bunch of tools to do this. Most of the time I used some hacked-up versions of Anders' NWFIIR filter generators, but I've also used Scilab (another in the family of Matlab clones) for some playing around.

Originally, I used LAUD (a commercial speaker measuring package) to measure and exported the response files. Laud comes with a calibrated Panasonic capsule mic. Now, I use a Behringer ECM8000 mic and M-Audio Audio Buddy preamp. IMHO the ECM is a great mic for this sort of thing, and it's dirt-cheap. My measurements are now done using the log-swept-sine method, which seems to give good results.

Ultimately, the evolution of DRC has greatly changed my view on how to proceed. Although I've had mixed results on my full-range dipoles, DRC is truly remarkable in it's ability to equalize the system response. Now, I've simply adopted a procedure that I use textbook 4th-order LR filters on each driver and make sure that the basic level/time alignment is pretty good, and then let DRC sort out the rest.
 
Re: Re: Promising

DSP_Geek said:


Quick Question: I want to use the PC as a DSP engine only because I want to run various inputs through the thing, on top of being able to boot it from flash (something else I haven't figured out) and avoid the disk drive question entirely. Has anyone else run their systems as Input->Process->Output?


Francois.

Running input from a CD/DVD player via spdif is how I do most of my testing - it's much easier than using a media player on the PC itself. Using Jack, this is no big deal, since you can dynamically connect/disconnect ports on the fly. The main problem with this is if you have sources that use different sampling rates - neither Jack nor Brutefir can deal with changing sample rates on-the-fly, so you have to shut everythign down and restart them with the right parameters. This is a problem for example if you have some DVD music disks that have 24/96 soundtracks coming in via spdif.

Unless you're using a Lynx card, I wouldn't suggest analog inputs except as a convenience feature (ie for TV/VCR inputs where sound quality isn't too critical) - even the converters on the Delta 1010 aren't completely transparent IMHO.

I've also looked at going the CF route to get rid of drives, but it's harder than you might think even with Linux, at least it is until you get a 'production' system setup. The basic problem is that to do anything useful in a convenient/flexible fashion you inevetably end up needing X, Gnome, KDE etc, because all the various utilities that you need when 'in development' have differing dependencies. Even just Jack brings in X and Qt (for qjackconnect and qjackctl), and even that is tough to do on a CF drive.

For 'production' use, I think it's feasible, though. If everything was scripted in the startup scripts *and* you ran from external spdif input you could get away with only alsa, brutefir, jack and probably LIRC which would be pretty easy to set up on a CF drive.
 
? for Deanbob..

deandob said:

- 4 instances of winamp connecting to analogue 4 stereo channels on a Delta 410

This is kinda of topic, but Deanbob doesn't have email activated....

I would like to put together a much simpler version of what Deanbob described -- (surely his is the Ulimate DIY Audio House ?).

I have an 8 channel soundcard (a cheaper card based on the Envy 24 HT-S chip), and would like to us send output from multiple (3 or 4) PC player applications (probably Foobar or Winamp) to this card.

Maybe I'm stupid, maybe it's the fault of my hardware/drivers, but as soon as one player app. accesses one stereo pair, it appears to lock up the sound board, and report it as busy to any other app.

I've been trying this using ASIO (actually ASIO4ALL module, as there's no ASIO driver for this card), and have successfully sent music to different outputs pair on the card, but never to more than one stereo pair at once.

Can you help Deanbob? Or anyone else for that matter??

SteveM

PS I've been following this thread with great interest for another future project. Keep the updates coming!
 
I'm still here...

I'd recommend winamp or musicmatch jukebox for multichannel/zone audio. Foobar is a better player but without recompiling with additional C++ code it is not possible to address commands to unique instances of Foobar (from what I can work out).

ASIO wont work for multizone solutions as the ASIO spec does not allow multiple players connected to the same driver (card). Try kernel streaming or waveout. With Winamp, you need to select the checkbox in the settings to allow multiple sessions, as well as start winamp with a different instance name each time, using a different directory for each winamp instance to separate the configuration files. Each instance is setup to use different channels. I can share the code I use to control the different instances of winamp if you want.

In fact if there is interest in how this is put together I can start a separate thread. I am 1/2 way through ripping my 600 odd CDs after just completed a reasonably feature rich data entry catalog application (does volume normalisation, ratings, metadata, media player, WM encoding, album cover etc) that populates the database for the front end.

Regards,
Dean
 
Waiting

Still waiting for microphone/preamp. Had to cancel order of Mitey Mike II since it was indefinite backordered and order Behringer ECM8000.

Was reading the AsioXo site, which is based on Windows. It appears to be at least the equal of the Linux-based approach we've been discussing. If I run into any more difficulties on Linux, I may just switch over the soundcard into my WinXP box and pull out into the fast lane. They have everything covered, including crossovers, drc, foobar, remote control, etc.

This thread hopefully will continue to be OS-atheistic, but can anyone give pros/cons of the AsioXo vs. BruteFIR implementations?

Today I'm going to make speaker stands and place the speakers properly at head-height (for sitting at my desk) before beginning the drc measurements in a few days.

-Robert
 
Re: Waiting

RFScheer said:


This thread hopefully will continue to be OS-atheistic, but can anyone give pros/cons of the AsioXo vs. BruteFIR implementations?
-Robert


AsioXo has a limited set of predefined cross over functions . i.e either all slopes are 6dB/oct or 24 dB/oct. The Q-value of the croos over filter is not changable i.e it is a Butterworth type of cross over. This limited set will provide some challenges in relation to baffel step etc - but the DRC filter could take care of that - so all together a complete package that is comperable to BruteFIR very easy to get started with.


Brutefir - everything is possible - full freedom to alter amplitude and phase of the filters - given that you can get LINUX + Jack + Alsa + BruteFir going AND know how to generate the filter coefficents

So take your choice - so far i have not gone down the Brutefir road - but i looks very promising - if only i had a god way of generating the filter coefficients

Morten
 
AsioXO

Henckel,

From the AsioXO website, the crossover filter in AsioXO appears to be an iir Butterworth implementation. I'm not sure how many orders are supported but the example used shows a 12dB/oct cutoff.

I wonder how well drc corrects for suboptimal crossovers? It's funny to imagine an fir filter correcting an iir filter but that's what drc is doing right?

Open-sourcing seems equivalent between AsioXO and Jack/BruteFIR/DRC/ALSA.

All in all, the Linux community has some work to do to offer a similar level of ease of use and capability for stereo anyway. Beyond stereo, the Linux approach seems more promising.

-Robert
 
Re: I'm still here...

deandob said:
I'd recommend winamp or musicmatch jukebox for multichannel/zone audio. Foobar is a better player but without recompiling with additional C++ code it is not possible to address commands to unique instances of Foobar (from what I can work out).

ASIO wont work for multizone solutions as the ASIO spec does not allow multiple players connected to the same driver (card). Try kernel streaming or waveout. With Winamp, you need to select the checkbox in the settings to allow multiple sessions, as well as start winamp with a different instance name each time, using a different directory for each winamp instance to separate the configuration files. Each instance is setup to use different channels. I can share the code I use to control the different instances of winamp if you want.

In fact if there is interest in how this is put together I can start a separate thread. I am 1/2 way through ripping my 600 odd CDs after just completed a reasonably feature rich data entry catalog application (does volume normalisation, ratings, metadata, media player, WM encoding, album cover etc) that populates the database for the front end.

Regards,
Dean

Dean,

I'll have a play with the available settings for Winamp using Waveout & Kernel streaming. I'm not sure that I remember seeing anything that would allow me to specify which channels to use though..

As much as I'd love to see some docco on how your system is put together, I wouldn't want to put you to the trouble unless I was going to use the information. --

You see, my plans are much less ambitous. I'll have all my music stored as high quality MP3s on my main PC upstairs (main living area). The PC with the 8 channels sound card will live in my tiny workshop downstairs, with no screen or keyboard attached to it. A drive mapping over ethernet will supply the files to the sound PC. I plan to control the music PC from either the file server PC upstairs or an ancient laptop downstairs, using VNC or something similar. It's much more lo-tech/ lo-fi than your setup, but I think my house is probably much smaller, and my budget for this is whatever I can get past the wife without her realising...... hence the cheaper sound card !

I have ripped just over 100 of my 400 CD's so far.....I need to train the wiffe how to do it when I'm at work, but am just not too sure I can trust her to not delete them all by accident !!

SteveM

PS Winamp seems to need stacks more CPU time than Foobar (or Musicmatch) .... which worries me slightly if I'm gonna running 4 instances of it.....
 
Re: AsioXO

RFScheer said:
Henckel,

From the AsioXO website, the crossover filter in AsioXO appears to be an iir Butterworth implementation. I'm not sure how many orders are supported but the example used shows a 12dB/oct cutoff.

6,12,18 & 24 dB/oct is supported - i have the application runing on my PC. And its is only Butterworth


RFScheer said:
I wonder how well drc corrects for suboptimal crossovers? It's funny to imagine an fir filter correcting an iir filter but that's what drc is doing right?
[/B]

DRC can go a long way to correct any speaker resonse ( amplitude and phase) as well as correction of some of the effects that the listening room add´s ( standing waves etc).
AsioXo provides gain adjustments for bass, midrange and treble - so it should be possible to make the uncorrected response from the speaker within approx +-6 dB. within this range DRC is perfektly capabel of correction - but i agree it is a bit strange to have a FIR filter correcting a suboptimal IIR X-over.
 
Whole home audio PC

Steve,

To select multiple channels with winamp, all you have to do is for each instance select a different set of channels in the winamp. Select 'configure' in the output plug in, and select the relevant device where Winamp will list all channels in a listbox.

Your plans look fine - The beauty about using the PC as a music server is that there are many ways you can put a system together. BTW, my system will not cost me much at all to assemble as it is DIY and I purchased the touchscreens very cheaply.

Winamp will use a few more system resources than Foobar, but for anything resembling a modern PC it should not be a problem.

Love the idea about the wife doing all the ripping.... It really is a mundane job, but somehow I dont think I'll be able to convince her to help!

Regards,
Dean
 
Re: Re: Re: Promising

MWP said:


Yup, this is what im doing at the moment.
What do you want to know?


I'm a novice to Linux and BruteFIR (I write 56K machine code for $dayjob), so I was wondering if you could point me to a site showing exactly what I need to get this up & running. I also want to sleaze some IIS connections from a DVD player to avoid DAC->ADC hassles, so minimal latency would be spiffy.

Previous $dayjob used W2K servers for VOIP conferencing, and the OS occasionally hosing us for 200 milliseconds at a time was always a hassle; that's the sort of thing I want to avoid. My real interest here is using decent-sized FIRs as crossovers, possibly adding FIR correction for speaker response anomalies, so the PC aspect is a tool rather than an end goal.


Francois.
 
Re: Re: Re: Re: Promising

I'm a novice to Linux and BruteFIR (I write 56K machine code for $dayjob), so I was wondering if you could point me to a site showing exactly what I need to get this up & running.

There is no such site 🙁
Only the BruteFIR web site which doesnt give much information on how to actually use BruteFIR.

We have covered a lot of details in this thread, so read through all thge posts in here, that should help.
Also grab my brutefir and coeff files that i attached... that might help you a little.

I also want to sleaze some IIS connections from a DVD player to avoid DAC->ADC hassles, so minimal latency would be spiffy.

If you use JACK and BruteFIR correctly, you can get very good latency times... good enough that watching movies, etc is not a problem (i do).

Previous $dayjob used W2K servers for VOIP conferencing, and the OS occasionally hosing us for 200 milliseconds at a time was always a hassle; that's the sort of thing I want to avoid. My real interest here is using decent-sized FIRs as crossovers, possibly adding FIR correction for speaker response anomalies, so the PC aspect is a tool rather than an end goal.

200mS is quite large.
With a decent PC you should be able to get under 20mS in to out.

If your interested in DRC, you may also want to have a look at the NWFIIR site.
 
Re: Coeff files

RFScheer said:
I've been meaning to ask.
Regarding your crossover filters, I noticed you are using Fs=48000. Why is that?

Ah.
At the moment, the sound source is my XP box on which im using the onboard sound (NVidia Soundstorm) which has fixed 48khz SPDIF output.

Im still trying to find command line (non-X) based MP3, OGG & Flac players that will output to JACK so i can move the playing of those files onto the Linux box.
 
Re: Re: Coeff files

MWP said:


Ah.
At the moment, the sound source is my XP box on which im using the onboard sound (NVidia Soundstorm) which has fixed 48khz SPDIF output.

Im still trying to find command line (non-X) based MP3, OGG & Flac players that will output to JACK so i can move the playing of those files onto the Linux box.


Alsaplayer apparently has a text-mode gui that avoids the need for X, and works well with Jack. I've verified that the text-mode gui works, but I've never tried to configure it to compile without X, although I suspect that it's a typical option to 'configure' if you build from source.
 
Status
Not open for further replies.