od--=-mIbN12auAWVsC7zkUywK
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printableOn Fri, 2012-08-03 at 14:18 +1200, Jeff McClintock wrote:
Cool, thanks.
> > > The SEM DSP Plugin API has a total of four functions { open(),
I guess you probably don't have that many ports, unlike LV2 where often
there are LOTS of ports due to parameters. That is a lot of function
calls.
It also annoys me because it forces plugins to have state they don't
really need. Buffers are only valid in process(). I have quite a few
very simple plugins that have state exclusively to keep these buffer
pointers around, otherwise they could be purely functional (and the host
could exploit that fact in convenient ways, especially when threads get
involved)
> > A requirement specifically about a strong and sensible plugin/UI
LV2 UIs are also like this, though there is an extension to provide a
pointer to the plugin instance to the UI.
In theory this should only be used for displaying waveforms and such,
and always be optional. In practice it is used by people porting shitty
VSTs, and unfortunately abused by people to do communication and all
kinds of awful things. I hate it with a passion, but c'est la vie.
With a powerful enough communication mechanism now established for
higher level control, hopefully at least the abuse will go away.
=20
As is LV2.
> > "Including" MIDI is not a burden, it is a trivial consequence of having
This is a good idea, but not having it possible for plugins to process
MIDI is still a bad one.
Plugins should not have mystery parameters and most hosts would support
this kind of binding anyway. Supporting binding in every plugin is
indeed insane.
> With VST it's a mess. Developers MIDI support is highly variable, almost
I think you are in error considering these things mutually exclusive.
Yes, hosts dealing with MIDI binding is how things should be done, but
crippling a plugin API to not be able to handle MIDI is just that:
crippling. Maybe I want to patch up a bunch of plugins to process MIDI
events, or have some MIDI effect plugins: these are certainly reasonable
things to do.
Making generic events is so simple that not doing is it just silly.
There is no point in arguing about whether GMPI or LV2 should "support"
MIDI, because if the spec is mandating the blessed types of events you
are allowed to use it has already failed. Just as MIDI does not address
the needs of everyone today, whatever anyone else comes up with to
replace it will not either.
Your argument sounds very obviously right because it's about numeric
parameters, but note and voice control is trickier. That involves
inventing a new, better event format. That's not making the choice of
MIDI or OSC go away, that's *adding yet another choice*. That's fine,
but it is without a doubt wiser to do so within a generic event system
where all of these can be used, or new types added in the future, rather
than expect you thought of everything anyone will ever need this time
around.
Providing good powerful solutions for this stuff is good. Painting
yourself into a corner and misusing authority to make overbearing specs
is not. As a developer I prefer my reasons for not doing something to
be something more sound than "some person on a committee somewhere
decided you are not allowed to" ;)
> > That said, sure, MIDI sucks. Something better is needed, but certainly
Forbidding plugins from talking MIDI is 100% loss, period. Everything
you've said may be brilliant, and MIDI may be terrible, but it's still
just crippling.
Like it or not, MIDI exists, and people want or need to process it. As
a fellow modular person I am somewhat surprised at your stance on this.
Why should a plugin spec make this useful task impossible? A good
plugin API should make possible everything that is sensible to do with
plugins. Processing MIDI is certainly a sensible thing to do with
plugins. This is precisely the kind of reason why monolithic
non-extensible specifications suck.
Cheers,
-dr
--=-mIbN12auAWVsC7zkUywK
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part
Content-Transfer-Encoding: 7bit
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAABCAAGBQJQGzzoAAoJEDZyeCqb82jzxU8P/RTgoz6f8i0waAxwEwKBUyBl
dwGapwn3aD6g6cEegcxuS0mK8D7W9TLTZSx7pvCOyfknyXxoyRhufDgKud2OIY5h
JUkLtQfasI4Sw4sjSE7oip0lvZCx2TJ1XO6ehWRcZS1uMNlA47BmgrwzlRJlQ7Fj
ukv13zvLcGIe80iUL0P3vTzj6BO8f3sDfiGHgucHFBnkHLZkUI7R5bXiXBVnGkqs
sQ5B6Ce+uODZ+Y8HOXquOpzH5OMMHoqq/DCNWA96p2AJ1iwKLoMaNH9iAAX+RQcF
uh5iubfpauGnnkypNt/IJFrdnTGgyVdSPjknEUSBsCEHyKvV5+K7SRFeXXulNQR7
eLa/26xUtOBK5jbn1vtC7Bgu02VFCvpYk9aVBnGR2REFhi9RSMJIotPyw4epW8Kl
LM64sWa5N4BWfiePJhGS5GChm92a/ZxlAahn/AMhvLmKs3WRn42ikWGwo5qtO78J
7EB+FCjYFuly2gcTOAcVO/RN61KoJfJvsWRBOa527W+lCWOyxSM0UGY04oyL/aHq
abxT/YREqppel4FboR6SG9xg7oVIJ9vxevgNJ3oaIq/TJGa9i8Aflst6CZTs+p+l
x4opxWCcdN4LKPjcx0npOuq48q8Q0MbnchyRIFJbc3tmuQo5er91vQPipqj5/kVa
zEkyg8KpzSGAzv1k3KJy
=VHZz
-----END PGP SIGNATURE-----
--=-mIbN12auAWVsC7zkUywK--
LINUX® is a registered trademark of Linus Torvalds in the USA and other countries.
Linuxaudio.org logo copyright Thorsten Wilms © 2006.
Hosting provided by the Virginia Tech Department of Music and DISIS.