DSP for output

Discuss the development and future direction of Play.
Post Reply
User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

DSP for output

Post by sbooth » Sat Jun 02, 2007 4:47 pm

I've been hard at work on improving the audio capabilities of Play, toward the end of allowing various DSP manipulations on the audio before it is passed to the hardware for output. I have written a proof-of-concept application that uses an AUGraph to render output through a chain of AudioUnits. I've also written some UI code to allow the editing of each AudioUnit's parameters, with support for saving and restoring presets:
Image

I'm at the point where I need to design how the user will (optionally of course) string all the AudioUnits together to make their custom DSP graph. There are two approaches that come to mind, but there are probably others I haven't thought of.

Approach one is the simplest, but least flexible. The editor window would have a list of available AudioUnits in it, and a list of the AudioUnits in the current graph. The order of the units in the list would determine the order the DSP is applied.

Approach two is considerably more complex, but also more flexible. The editor window would still have a list of available AudioUnits, but the list of current AudioUnits would be replaced by a graphical representation of the DSP graph. The inputs and outputs to each AU could then be set graphically, with the same result as above.

I say that approach two is more flexible, because at some point it could allow for multiple inputs and outputs from each AU, things like sidechains feeding compressors, or anything else people could come up with. The logical question for me is this: does an audio player really need those kind of DSP capabilities? Shouldn't a simple graph of one input to one output suffice? Is there a compelling reason to allow more complicated processing?

Paul Gotch
Posts: 23
Joined: Mon Oct 30, 2006 10:54 pm

Post by Paul Gotch » Sat Jun 02, 2007 11:34 pm

You may want to have an audio unit which decodes matrix surround sound. This would need stereo input and 5 outputs (Left, Centre, Right, Surround, Sub).

I can't think of any other non 1-1 processing that I'd want to do in a home setting. If you do want to do more complex processing then you can route the audio out of Play and into AuLab using Sound Flower http://www.cycling74.com/products/soundflower for processing. Then output it to the sound hardware.

RonaldPR
Posts: 433
Joined: Tue May 30, 2006 8:27 am
Location: Amsterdam, Netherlands

Post by RonaldPR » Sun Jun 03, 2007 9:48 am

sbooth wrote:I've been hard at work on improving the audio capabilities of Play, toward the end of allowing various DSP manipulations on the audio before it is passed to the hardware for output.
I doubt there are many users who want or need this. I have not the slightest idea what all the different settings are or do and, frankly, I am not even interested to learn what the settings do.
Paul Gotch wrote:You may want to have an audio unit which decodes matrix surround sound. This would need stereo input and 5 outputs (Left, Centre, Right, Surround, Sub).
I do not need this myself either, but I suppose many users would welcome this feature.

maxlover
Posts: 36
Joined: Sat Apr 07, 2007 6:37 am
Location: Belgium

Post by maxlover » Sun Jun 03, 2007 12:41 pm

RonaldPR wrote:I doubt there are many users who want or need this. I have not the slightest idea what all the different settings are or do and, frankly, I am not even interested to learn what the settings do.
Yes, is it really the Most Wanted Feature ? My personal preference would be for Play to be able to handle FLAC files containing a full album with cue, and to play the individual tracks...

User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

Post by sbooth » Sun Jun 03, 2007 3:58 pm

RonaldPR wrote:I doubt there are many users who want or need this. I have not the slightest idea what all the different settings are or do and, frankly, I am not even interested to learn what the settings do.
The common usage for this would be a 10 or 31 band graphic equalizer, and possibly a parametric equalizer. The screenshot I posted was to illustrate the Audio Unit parameter editing window, not that particular Audio Unit.

User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

Post by sbooth » Sun Jun 03, 2007 4:00 pm

Paul Gotch wrote:You may want to have an audio unit which decodes matrix surround sound. This would need stereo input and 5 outputs (Left, Centre, Right, Surround, Sub).
I believe this can be handled with 1 input and 1 output on an AudioUnit. My first post was a bit misleading- I should have said input bus or output bus, because each input and output can have an arbitrary number of channels.

NuMystic
Posts: 11
Joined: Sun May 13, 2007 4:43 pm

Post by NuMystic » Thu Jun 07, 2007 10:43 pm

Personally I'd just be delighted to see a basic, great sounding, multi-band EQ.

Ibis
Posts: 1
Joined: Tue Sep 26, 2006 6:21 am

Post by Ibis » Wed Jun 13, 2007 8:04 pm

sbooth wrote:
Paul Gotch wrote:You may want to have an audio unit which decodes matrix surround sound. This would need stereo input and 5 outputs (Left, Centre, Right, Surround, Sub).
I believe this can be handled with 1 input and 1 output on an AudioUnit. My first post was a bit misleading- I should have said input bus or output bus, because each input and output can have an arbitrary number of channels.
Hmm, I'd say number two, maybe not put the function as a top priority, but I'm sure there are some people that will find it useful. And more control to the users is very rarely a bad thing :)
Am I right in figuring it to be something like http://kxproject.lugosoft.com s DSP in the drivers?

User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

Post by sbooth » Fri Jun 15, 2007 5:03 am

Ibis wrote:Hmm, I'd say number two, maybe not put the function as a top priority, but I'm sure there are some people that will find it useful. And more control to the users is very rarely a bad thing :)
Am I right in figuring it to be something like http://kxproject.lugosoft.com s DSP in the drivers?
No, Play uses Audio Units for the DSP effects, so there are many to choose from and they are integrated with Core Audio.

Maurits
Posts: 117
Joined: Sun Jan 29, 2006 1:36 pm
Location: London, Europe

Post by Maurits » Thu Jun 28, 2007 11:28 am

I like the DSP plugins! Especially those for playing with the dynamics.

A few questions:

* I miss a 'reset to defaults' feature, for when you really messed up the settings. If I'm not mistaken, the only option now is to remove the plugin and re-add it.

* Could you rename the plugins? At least remove the 'AU' in front of them. It sounds too technical for the ordinary user. They do not need to know it is an Apple Audio Unit. Or would this cause issues with translations?

User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

Post by sbooth » Thu Jun 28, 2007 4:26 pm

Maurits wrote:I like the DSP plugins! Especially those for playing with the dynamics.
I also enjoy playing with these- especially the matrix reverb for some reason.
* I miss a 'reset to defaults' feature, for when you really messed up the settings. If I'm not mistaken, the only option now is to remove the plugin and re-add it.
I will add this- you are correct that the only way to do this currently is to remove and re-add the effect.
* Could you rename the plugins? At least remove the 'AU' in front of them. It sounds too technical for the ordinary user. They do not need to know it is an Apple Audio Unit. Or would this cause issues with translations?
The names come directly from the OS- I'm not sure how other Audio Unit hosts handle this issue. Each AU reports its name (such as AUMatrixReverb) and a description (such as Apple's Matrix Reverb Unit). Programatically I don't have access to any other information on the AU besides an icon. I will investigate a little and see what other applications do with this. I know that AULab shows the names the same way.

Maurits
Posts: 117
Joined: Sun Jan 29, 2006 1:36 pm
Location: London, Europe

Post by Maurits » Tue Jul 03, 2007 6:06 pm

sbooth wrote:
* I miss a 'reset to defaults' feature, for when you really messed up the settings. If I'm not mistaken, the only option now is to remove the plugin and re-add it.
I will add this- you are correct that the only way to do this currently is to remove and re-add the effect.
Nice, thanks. Something else, did you choose the default settings yourself? It seems a bit more logical to have default settings equivalent to a pass-thru, adding a plugin won't alter the sound until you move sliders etc. It's not a big deal and perhaps impossible for some effects but it may be something worth considering.
* Could you rename the plugins? At least remove the 'AU' in front of them. It sounds too technical for the ordinary user. They do not need to know it is an Apple Audio Unit. Or would this cause issues with translations?
The names come directly from the OS- I'm not sure how other Audio Unit hosts handle this issue. Each AU reports its name (such as AUMatrixReverb) and a description (such as Apple's Matrix Reverb Unit). Programatically I don't have access to any other information on the AU besides an icon. I will investigate a little and see what other applications do with this. I know that AULab shows the names the same way.
Perhaps you could work with a table that maps internal names (AU MatrixReverb) to external names (Matrix Reverb)? Would solve possible translation issues as well.

bestof
Posts: 1
Joined: Thu Oct 18, 2007 2:09 pm

Re: DSP for output

Post by bestof » Thu Oct 18, 2007 2:39 pm

Maybe I'm lucky, but I've found OSS/3D 'works' w/every audio player on my box (G4/10.X)
Not only w/Play ? The features (below) function is iTunes, Cog, - - Well, all players I know of!

[From subband.org]
"It provides non-destructive spatial expansions similar to Spatializer or QSound, with additional functionality of Speaker Resonance Correction, Virtual Subwoofer, Automatic Gain Control, Brainwave synthesis, High Frequency Restoration, Center channel control, and more. Also included a studio quality N-band equalizer with built-in peak limiter."

The Eq alone has a choice of 10-48 bands.
Plus, in addition to the 'pre-sets' it arrives with, the user can add their own (based on the above mods) so one can apply settings to the specific 'player' or the room or headphones.
No, it is not free. But for around $40 US (and considering it can be used with multiple players?) It's a deal!

Oh, as I only have a 400Mhz machine I especially like how play is stingy w/my resources.
Cog is fine but still not as efficient as Play & most players push my CPU to the brink.
I just DL'd the new version of Play & hope it doesn't demand more juice as I was happy enough.

So, w/OS3D you'll be able to 'tweak' the output in several players in more ways than you can imagine. Actually it takes some time deciding 'which' features to apply.
(NO - - - - I am not on their payroll & I'm not sure they claim they support all the players. But it works for me & I probably consider it essential to getting the 'best' out of any player.)

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 1 guest