> At NAMM meeting J=E9r=F4me No=EBl proposed to use PTAF work to > design GMPI. Below are some requirement we used to make > PTAF, some of you may already have got the printed copy > at the NAMM. I had to leave a little early and didn't get a copy. Is it available=20 online somewhere? My first reactions are that this reminds me a lot of the Audio Unit=20 interface. Which I like, because AU is by far my favorite interface that= =20 I've worked with. :) > - Supports many plug-ins per library unit with the help of a > factory > - Protocol to update the factory on the fly > - Plug-ins can share data through the factory > - Designed to implement wrappers easily I'm not sure I understand this, but it sounds like it might be something=20 like the AUGraph stuff in AU, am I right? > - Process only PCM audio data (not FFT-based nor compressed > data). I personally would *love* a spectral plugin interface, but I could=20 understnad if other folks didn't want to add that degree of flexibility=20 into this project... > - Identification of silent input and output for CPU > saving > - Normalized values for communication with the host, > floating point data. I don't know about x86 chips, but with PowerPC it's very simple to just=20 turn off denormals mode and then you have no chance of getting denormal=20 values. If this is also possible with other chip architectures, then I=20 think that it would be much nicer to have the interface specify that hosts= =20 are required to disable denormals before audio processing begins, rather=20 than requiring that every host do denormal detection all through the=20 signal path, which wouldn't even really work anyway since it wouldn't=20 catch all of the denormals that I plugin might generate within a=20 processing frame. > - Optional type specification for internal use by plug-in > and complementary use by the host What does this mean? > - Decent string support, for GUI-less plug-ins. What do you think of AU's solution to this? I really like it. Because=20 you can specify unit types and real value ranges for parameters, you only= =20 need to specify strings for special cases, which is done by providing an=20 array of ValueStrings. > - Locking : token system designed to handle conflicts > between host and plug-in for parameter changes. This is one thing is one thing that always seems to be missing from=20 APIs... > - Abstract note support Again, what do you think of AU's solution to this? It is a clearer and=20 more flexible musical event system which can wrap MIDI and optionally=20 supports straight MIDI. > - Internal opaque state loading and saving. Personally I think that totally opaque is not so good. I like AU's=20 solution with a non-opaque XML settings structure with standard keys and=20 values which can easily be extended to include any personalized opaque or= =20 non-opaque data. > - Preset support > - On the host side. > - Static factory presets. Sorry to sound so redundant, but again, what do you think of AU's solution= =20 to this? I think it's great, presets really are static, non-volatile=20 presets and since the settings format is XML, any configuration and=20 hierarchy of single or multiple preset storage is very straight-forward,=20 with all of the burden of management falling on the host, since the plugin= =20 only manages a single user state. > - Notification-style API to avoid constant polling overhead. Yes, this is sooo important and useful! I recommend checking out AU's=20 property listener and parameter listener systems for example. > - GUI > - Independent window at system level: host does not have > to dispatch and filter events. > - Resizable window. > - Communicates with the DSP part via the host, which is > an arbiter for concurrent access to parameters. I think that the OS would be a better arbiter. This would allow running=20 the GUI and DSP components in separate address spaces, computers, etc. Anyway, these are just my reactions. Anything that I didn't respond=20 specifically got an implicit "yup." ;) Marc ---------------------------------------------------------------------- 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