[gmpi] Re: Topic 7.1: Channel Formats

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Tue, 3 Jun 2003 21:01:18 -0700

>>if there are encodings that
discard information, why are they of interest?

You've never worked on a mix stage, have you? 8-) All Dolby Stereo movie mixes -- probably even the print of Star Wars you watched way back when -- use such encodings. That's reality.

it may well be reality. but its also true that in reality there is very little audio hardware that uses floating point representation internally. despite this, we decided (?) to adopt floating point internally because it makes sense, not because we feel obliged to reflect "reality".

But these are wholly orthogonal considerations, so that seems like faulty parallelism. Because all of the multichannel audio formats (like N-channel mono, stereo, quad, 5.1, 7.1, etc.) and all the pure audio encodings (like LtRt. M-S, etc). can be represented in any sufficiently high resolution per-sample representation -- float, double, 8-bit, 16-bit, 24-bit, ADPCM could all work.



i just don't see the point in proliferating channel encodings and yet
standardizing on a single audio sample format. the two situations seem
totally isomorphic to me, and yet the general leanings of the list are
opposite in each case.

I'm still not comfortable with the idea that the per-sample encoding wouldn't be expressed in the architecture and API somewhere, even if it only works with float for now, specifically to preserve the possibility that in the (perhaps distant) future GMPI might work with some other, as-yet-uninvented sample representation. Avoiding unnecessary reinvention is important, and you can do that in an architecture if you just take the little bit of extra trouble to parameterize everything in the framework. In other words, I agree with you that they're isomorphic and should be treated the same, but you're saying we should parameterize neither, and I'm saying we should parameterize both. But only at the framework level for now, and only defining implementation for the formats we need now, and only in a way that doesn't badly impact simple plugs.



clearly there is a need for *an* encoding of multichannel streams. but
such an "encoding" doesn't need to be something like dolby stereo or
5.1 or whatever - it could just be a set of N channels of mono data.

by supporting multiple encodings, we massively increase the complexity
involved in using plugins together. hosts no longer have to just count
channels in and out, but are required to track encoding-handling
capabilities, splice in converters where necessary, etc.

there seems to be little reason to have any encoding floating around
inside a GMPI graph, and every reason to make it possible to feed any
encoding in and out of any leaf node. instead, the conversion gets done
once in each direction (per leaf node using the encoding). less work
for the host (and host author(s)), less work for plugin authors, less
hassle, less areas for subtle bugs to emerge.

i'm not saying we should handle the encodings, but that somewhat like
MIDI, the encodings should be present only at leaf nodes, never in the
core.

This has been discussed to death already, and I unfortunately don't have time to repeat all that this week...



i think understand the questions about "illegal operations on an LtRt
stream". i could use a real life example of these, because its very
hard for me to see the problems.

Sure. Go read up on Dolby Stereo encoding -- phase differences between the channels are used to steer signal components to L, C, R, or S. Out-of-phase goes to S, in-phase material goes to C. So you can't really sweep /pan a source across the front in the ordinary way, nor statically place a sound anywhere in between L & C or C & R. Unpredictable and weird, and very sensitive to stereo material -- such as ambience recordings -- so you always have to monitor your mix through the encode-decode matrix to see what it decides to do to the material.


-- Chris (sound effect editor: Judge Dredd, Ernest Rides Again... & a couple good ones too...)

----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: