[gmpi] Re: High level milestone plan (long message)
- From: Jeff McClintock <jeffmcc@xxxxxxxxxx>
- To: gmpi@xxxxxxxxxxxxx
- Date: Fri, 11 Mar 2005 11:38:43 +1300
Ron.
The challenge is we assume that we will be able to
easily wrap GMPI parameters within a VST, AU or DirectX wrapper.
Hi Ron,
The SynthEdit plugin API is broadly similar to GMPI. Parameter updates
are sample-accurate events. SynthEdit also specifies that the plugin DSP
need not be re-entrant.
Wrapping that in VST proved difficult, but not impossible. VST's
setParameter() for example is called from multiple threads. So it's
pretty challenging getting it all working smoothly.
But I'm pretty confidant we can provide good wrappers. There's people
here who have written excellent VST-DXi wrappers too (Angus I believe?).
Backward compatibility is very important, but I hope the focus of GMPI
is not only as a wrapper.
Acceptance of GMPI may be a gradual process, but I do see a good
future for an independent plugin standard, especialy one supported by
well respected body such as the MMA and a major sequencer vendor such as
Cakewalk.
Best Regards,
Jeff McClintock
The opportunity is, there may be some interest in the MMA hardware
community for a parameter discovery and control mechanism such as the
one we are planning for GMPI. It might really help our efforts to get
input from the hardware vendors on this slice of the GMPI protocol. IMO
it would be a huge design win if something like Chris Grigg's proposed
message format could be massaged into something that hardware vendors
would like to use, too. Maybe nailing down the final ultimate parameter
mechanism needs to be another milestone?
Based on these musings, I suggest we phase GMPI implementation using in
the following milestones.
M1: Establish coding standards, create basic skeleton modules for Win,
Mac and *nix. (Currently underway.)
M2: Define base C interface to the GMPI core object. This interface
will not initially address packaging, registration, meta-data or UI.
M3: Create a simple volume control plugin (headless) using the base C
interface, plus command line test harness.
M4: Implement wrappers for VST (PC), VST (Mac), Audio Units and
DirectX. These wrappers will be constructed as projects in the IDE of
choice (TBD) for each platform. These wrappers will be headless. The
projects will statically link to the simple volume control plugin.
M5: Create a simple sine wave synthesizer using the base C interface,
plus command line harness. This synth will be MIDI controllable only.
M6: Update the wrappers that were created in M4 so that they support a
MIDI controllable software synthesizer.
(***) Note that M1-M6 do not require involvement in the MMA. By the end
of M6 we wil have created something very close to a universal plugin
wrapper, and that will be significant achievement onto itself.
Thoughts?
----------------------------------------------------------------------
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: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
- References:
- [gmpi] High level milestone plan (long message)
- From: Ron Kuper
Other related posts:
- » [gmpi] High level milestone plan (long message)
- » [gmpi] Re: High level milestone plan (long message)
- » [gmpi] Re: High level milestone plan (long message)
- » [gmpi] Re: High level milestone plan (long message)
- » [gmpi] Re: High level milestone plan (long message)
- » [gmpi] Re: High level milestone plan (long message)
Based on these musings, I suggest we phase GMPI implementation using in the following milestones.
M1: Establish coding standards, create basic skeleton modules for Win, Mac and *nix. (Currently underway.)
M2: Define base C interface to the GMPI core object. This interface will not initially address packaging, registration, meta-data or UI.
M3: Create a simple volume control plugin (headless) using the base C interface, plus command line test harness.
M4: Implement wrappers for VST (PC), VST (Mac), Audio Units and DirectX. These wrappers will be constructed as projects in the IDE of choice (TBD) for each platform. These wrappers will be headless. The projects will statically link to the simple volume control plugin.
M5: Create a simple sine wave synthesizer using the base C interface, plus command line harness. This synth will be MIDI controllable only.
M6: Update the wrappers that were created in M4 so that they support a MIDI controllable software synthesizer.
(***) Note that M1-M6 do not require involvement in the MMA. By the end of M6 we wil have created something very close to a universal plugin wrapper, and that will be significant achievement onto itself.
Thoughts?
- [gmpi] High level milestone plan (long message)
- From: Ron Kuper