Re: [LAU] looking for command-line/scriptable mastering software

From: <grekimj@email-addr-hidden>
Date: Fri Nov 23 2012 - 15:01:09 EET

  BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; Also
consider to what happens when the stereo signals are summed
 to mono. If your panner is set slightly off-center, L and R will
 have nearly the same gain (since they need to be identical for
 a center source) and a delay between them of a fraction of a
 millisecond or so. Summing L and R will result in quite strong
 comb filter effects.
 Thanks for starting some thoughts on the time alignment aspects.
 Yes, I did make that provision for a mono source, so that the same
signal level is added to L and R whether panned or not, but just time
shifted in one channel if panned. And full left or full right is a
separate 'function' and only has signal in one side.
 I will add the traditional pan.
 Is mono compatibility really worth worrying about these days?
 Because I do not just record signals directly from the A/D
converters,
 but also signals that have already had some processing and probably
 will have some more later. All serious audio processing in Linux (and
 in almost all environments where audio is processed digitally) is
done
 in floating point format, for good reasons. Why should I convert each
 time I read or write a file ? That would only add errors.
 Okay, makes sense.
 You could probably eliminate a lot of code by using something like
 libsndfile. And you would at least be able to read floating point
 files.
 I can see also adding options for things like LADSPA or LV2. But,
I'd also like the code to run if these things are not present in the
system.
 If all filtering, effects, etc. is done in FP format, it's plain
 silly to convert to integer just to add some values. And adding
 also happens even when you don't see it explicitly. Any linear
 filter is defined by its impulse response. Depending on the type
 of filter that could be hundreds or even thousands of samples long.
 So every output sample is a weighted sum of hundreds or thousands
 of input samples even if not computed explicitly that way. Are you
 really claiming that doing that in FP is OK while adding a few
 signals on a mix bus isn't ?
 There are a couple of outstanding (commercial) fixed point filters
out there, by the way. To answer your question, no I basically agree
with you. But realize the initial challenge of this project was to
make an absolutely pure signal path. And that path is still there if
you choose to not use effects. When you do use effects it's 64 bit
float because I am wary of 32 bit float.

 Quote from the Quick Start Guide:
  There are 3 text files that control Mixer4 and they must be kept
  in the same directory, at least for now, as the Mixer4 executable.
 Okay, I thought that's where the confusion was. 'For now' is
referring to walking the user through the set up process, not the
state of the code. I did not want to get into different directories
for the newbie user. I wanted to make initial setup as straight
forward as possible.
 Grekim
 On Fri 23/11/12 4:34 AM , Fons Adriaensen fons@email-addr-hidden sent:
 On Thu, Nov 22, 2012 at 10:26:10PM -0500, Grekim wrote:
> /Maybe neat on headphones, but definitely the wrong thing for
> reproduction on speakers. Also bad for mono compatibility.
> And since it's closed source it's not possible to change
> this to normal panning, which would be a trivial exercise
> otherwise./
>
> I'd like to learn more about why it's so wrong.
 There's no one-line answer to that. To understand why it's wrong
 you have to work out how the signals from the two speakers combine
 at the ears and compare the result to what happens for a real
 sound source.
 For low frequencies the analysis is very simple, you can do it
 in two minutes just using pencil and paper. Just do it and you'll
 see. For mid an high frequencies it gets considerably more complex
 and a lot of psycho-acoustics is involved. The results go against
 simple intuition, which is why many people have some difficulty
 accepting them.
 Also consider to what happens when the stereo signals are summed
 to mono. If your panner is set slightly off-center, L and R will
 have nearly the same gain (since they need to be identical for
 a center source) and a delay between them of a fraction of a
 millisecond or so. Summing L and R will result in quite strong
 comb filter effects.
> /I've got ~3TB of floating point files here, and I'm not going
> to convert them just to be able to use a particular - any - SW./
>
> Why did you record in floating point format if your A/D converters
are not?
 Because I do not just record signals directly from the A/D
converters,
 but also signals that have already had some processing and probably
 will have some more later. All serious audio processing in Linux (and
 in almost all environments where audio is processed digitally) is
done
 in floating point format, for good reasons. Why should I convert each
 time I read or write a file ? That would only add errors.
 A/D and D/A converters are probably the only components in the chain
 that 'naturally' use an integer format. But even that isn't really
 true any more. Most high quality converters are not just the bare
 converter and an analog filter. They have some digital processing
 going on between the SW interface and the actual converters, e.g.
 most of the anti-alias filtering will be done digitally in an
 oversampling converter. And that processing could very well be done
 in FP format these days. Some high end sound cards (e.g. RME) have
 native floating point interfaces.
 There is nothing magic about the 2^16 or 2^24 analog levels that
 correspond exactly to integer sample values. Change your gain by
 0.1 dB and they will be an entirely different set, as good or as
 bad as any.
> /
> The summing being exact is quite irrelevant if the rest isn't,
> and doesn't need to be anyway./
>
> Sorry it's not relevant to you. Aside for the latest version which
> does use ALSA, I have about 4 C header files. So there's no
libsend
> file or anything like that.
 You could probably eliminate a lot of code by using something like
 libsndfile. And you would at least be able to read floating point
 files.
 If all filtering, effects, etc. is done in FP format, it's plain
 silly to convert to integer just to add some values. And adding
 also happens even when you don't see it explicitly. Any linear
 filter is defined by its impulse response. Depending on the type
 of filter that could be hundreds or even thousands of samples long.
 So every output sample is a weighted sum of hundreds or thousands
 of input samples even if not computed explicitly that way. Are you
 really claiming that doing that in FP is OK while adding a few
 signals on a mix bus isn't ?
 Regarding the latter, it may also help to analyse the situation a
 bit more rigorously before jumping to easy conclusions. It involves
 a bit of maths, but nothing esoterical.
> /OK, then the info on your site is out of date.../
>
> Don't think so.
 Quote from the Quick Start Guide:
  There are 3 text files that control Mixer4 and they must be kept
  in the same directory, at least for now, as the Mixer4 executable.
 Ciao,
 --
 FA
 A world of exhaustive, reliable metadata would be an utopia.
 It's also a pipe-dream, founded on self-delusion, nerd hubris
 and hysterically inflated market opportunities. (Cory Doctorow)
 

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Fri Nov 23 16:15:02 2012

This archive was generated by hypermail 2.1.8 : Fri Nov 23 2012 - 16:15:02 EET