On Sun, Feb 07, 2016 at 08:56:21AM +0100, Adrien Destugues wrote:
On Sat, Feb 06, 2016 at 06:16:09PM -0800, Pete Goodeve wrote:
I'm sorry to say that I've never used the mixer for *anything* but driving
HDA audio output. Simply because I've never been ABLE to!
Maybe I'm missing something basic, but I've never, for instance, been
able to connect the mixer output to anything *but* HDA. I can use
Cortex to disconnect it from that and (apparently) reconnect it to,
say, SoundRecorder, but when I try to run I just get a "busy" error
message.
Yes, doing this from Cortex is not working currently. You could,
however, instanciate a separate mixer node from a C++ app. The Game Kit
used to do that, in order to mix its own sources and provide a single
output per app to the media kit. I removed this some years ago because
of problems with hybrid builds (instanciating a gcc2 mixer from a gcc4
compiled app didn't quite work).
I actually do explicit mixing fairly seldom. I just feed everything to
What is your process for mixing then? Which other tools should we be
looking at for inspiration?
Makes sense, I guess.
So IMO, the audio chain is badly in need of an overhaul! Not sure
what my opinion on float-only is. I can see that if you need wildly
different fader settings, float might have better characteristics,
but as it has to be integer for the soundcard, I'm not sure there'd
really be a gain. I should say, though, that the sources I mostly use
-- Csound and fluidsynth -- both generate float values.
A plain float has only 24-bit for the mantissa, which is less than an
int32. It makes some math simpler as you don't have to worry about
overflows/clipping: just do a bunch of operations, and when you're done,
normalize to fit the required -1:1 range.
But if what you're after is "wildly different fader settings", you would
get results just as good (or possibly even better) with int32 and making
good use of the extra 8 least significant bits.