[gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
- To: gmpi@xxxxxxxxxxxxx
- Date: Wed, 4 Jun 2003 15:09:12 -0700
[I hope this is not seen as OT, it's meant to address the current
conversation quite directly.]
1. XML
Think of SGML v's XML. SGML supported /everything/ whereas XML supports
the bare minimum of functionality. Because SGML was so complex it never
took off. In 5 years XML has got massively wider adoption that SGML did in
20.
XML is the example that proves why parameterization does not kill
standardization efforts, but rather reinforces them, and is therefore
worth the trouble. In fact, XML is -highly- parameterized, which is
its strength, and the key to its ability to adapt tightly and
appropriately to many different applications, and that (in addition
to human/machine readability) is exactly why it's successful, and why
it'll probably be a stable, durable basis for products for many years
to come. We could learn from XML.
in XML, the character set is parameterized. It can be UTF-8 or
UTF-16 now, and in future it could be anything else; they don't have
to decide now. This is isomorphic to GMPI's per-sample encoding
format. We could make that float or double now, and in future it
could be anything else; we don't have to decide now.
In XML, there is no such thing as a generalized XML parser; XML is
only an underlying technology model, not an application, and XML only
becomes a usable application when combined with a DTD or schema
specifically defining an interchange format. This is isomorphic to
the proposed signal-level encodings for GMPI, where the underlying
technology model is always the same, but can be used for any signal
encoding based on separate definitions.
Note that the character set and the DTDs/schemas are completely
orthogonal in XML. So could per-sample format and encoding format be
in GMPI.
2. Profiles
So here's an idea: Maybe we should consider adapting XML's DTD/schema
idea, as a way of addressing the valid concerns about how to manage
the many possible format and capability choices, and also a way of
clarifying GMPI's many possible target market segments.
In other words, there could be separate GMPI 'format profiles' for
different application areas. This could be similar to the way
profiles were supposed to work for MPEG-4 (or how they do work or
SP-MIDI). So we start by publishing a GMPI 1.0 API, and a separate
range of Profiles. A plug or host would say what GMPI API version
and what profile it supports, for example 1.0/Basic, or 1.0/Music
Production, or 1.0/DJ, or 1.0/Film Mix, etc.
Example profiles might look like this (defaults marked as "^"):
Generic:
- Basic profile:
samples = { float }
channels = { N-channel linear }
Production systems:
- DJ profile:
samples = { float }
channels = { stereo linear }
- Music Production DAW profile:
samples = { float^, double }
channels = { mono linear^, stereo linear, N-channel linear }
- Film Edit DAW profile:
samples = { float^, double }
channels = { mono linear^, stereo linear, LCRS linear, 5.1
linear, 7.1 linear, N-channel linear }
- Film/TV Mix DAW profile:
samples = { float^, double }
channels = { stereo, LCRS linear, 5.1 linear, 7.1 linear,
N-channel linear }
- Dolby Mix DAW profile:
samples = { float^, double }
channels = { LtRt linear, N-channel Dolby A, N-channel Dolby
B, N-channel Dolby C, N-channel Dolby SR }
- Audio Mastering DAW profile:
samples = { float^, 24bit, 16bit }
channels = { mono linear, stereo linear^, quad linear, 5.1
linear, 7.1 linear, N-channel linear }
Playback systems:
- MP3 Player CE profile:
samples = { float }
channels = { stereo linear }
- Home Theatre CE profile:
samples = { float }
channels = { mono linear, stereo linear, LtRt linear, LCRS
linear^, 5.1 linear, 7.1 linear }
Maybe something along these lines might help clarify which formats
are expected to be supported in any given situation, reducing
confusion all around, while also preserving overall long-term GMPI
architecture flexibility.
-- Chris
----------------------------------------------------------------------
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:
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles
- » [gmpi] Re: Topic 7.1: Channel Formats / XML, Profiles