Why is it useful to make it contiguous instead of separate buffers? It
would seem that for many operations you are going to hurt yourself on
memory loading and alignment issues without much benefit. For instance,
consider stereo uninterleaved where the buffer length is 1023. By
requiring continuity, you guarantee that the second channel cannot be 16
byte aligned if the first one is. This method also seems to mandate
buffer copying for hosts that use mono uninterleaved buffers, since few
hosts are going keep them contiguous.
As for the channels, I see no reason to put a limitation on the number
that a plugin can request.
Michael Gogins wrote:
e) Other.
void gmpi::send(double* buffer, size_t dimensionCount, int* shape); void gmpi::receive(double* buffer, size_t dimensionCount, int* shape);
buffer: contiguous block of memory, can be 1 or more dimensions; each dimension can be 1 or more samples; or even an N x M block of transform coefficients or envelope breakpoints. This preserves some of the usefulness of GMPI for experimental computer music without going into all the complexity of SDIF.
E.g. 1 mono buffer would be dimensionCount 1, shape {1024}; 1 stereo non-interleaved buffer would be dimensionCount 2, shape (2, 1024}; 1 stereo interleaved buffer would be dimensionCount 2, shape {1024, 2}; 1 stereo non-interleaved FFT frame would be dimensionCount 3, shape {2, 1024, 2};
Failing that, mono only, non-interleaved; with enough channels you can do a lot of the above sort of thing.
=========================================== Michael Gogins gogins at pipeline period com Irreducible Productions Silence, a language for programming music and sound Available at http://www.csounds.com ===========================================
----- Original Message ----- From: "Tim Hockin" <thockin@xxxxxxxxxx>
To: <gmpi@xxxxxxxxxxxxx>
Sent: Monday, June 09, 2003 2:05 PM
Subject: [gmpi] Decision Time: 7.1.1
OK, gang - it's decision time. We've bantered for almost a month on this. We will NEVER finish if we don't devote some time to finishing.
One topic at a time. Let's bang out a majority (or better) on each topic, PLEASE.
Q 7.1.1: Do we support interleaved or mono buffers?
a) Mono buffers only.
b) Interleaved buffers only.
c) Either, as requested by the plugin. Plugin chooses one (global or per-stream).
d) Both, as requested by the plugin. Plugin can specify preference, but accept either (global or per-stream).
e) Other. Explain.
---------------------------------------------------------------------- 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
---------------------------------------------------------------------- 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
-- Mike Berry Adobe Systems
---------------------------------------------------------------------- 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