> "Give developers the freedom to use either MAS, DX or TDM. There's > bound to be situations where two formats will co-exist to provide > backward compatibility, whatever". > > What is the difference? yes, I am starting to see the problem. If we allow F32 and F64 types, some developers will start to write F64 plugs, JUST for marketing. Then, when they fail to load in some host, we have to say "Oh that host supports GMPI v1.0 and this is a GMPI v1.0 plugin, but that host doesn't support this plug". We thereby (kinda) force all hosts to support F64, just so they aren't incompatible with plugs. Especially as F64 gains momentum. If we force plug developers hands to F32, we can say a GMPI v1 host that does float supports all GMPI v1 plugins. Maybe GMPI v2 supports only F64, and any GMPI v2 host must support F64, but CAN support v1 and v2 If we didn't have to support Int at all, this would be much easier. So I THINK I am starting to believe a) supporting multiple datatypes costs plugins nothing (they choose one) b) supporting multiple datatypes costs hosts because they need to support the different types or be less competitive. I don't really think B is all that bad, but we don't have a good reason to do it. As a jaunt aside: We could make it pretty painless for hosts. We allow both F32 and F64. We provide loadable converter libs as part of the GMPI SDK for all GMPI types. When the host sees a plug with format X and wants to convert it to format Y it loads the libgmpi_convert.so and calls gmpi_convert(X, Y). for example (real code!): int gmpi_convert(gmpi_datatype, gmpi_datatype, int, ...); int r; r = gmpi_convert(GMPI_FLOAT32, GMPI_FLOAT64, nsamples, f32_buf, f64_buf); if (r < 0) { /* can convert those types! */ } It isn't the most efficient thing in the whole world (you really do want to discourage the user from doing it too often), but it does allow hosts to support multiple types essentially transparently. It even allows the user to load other libs with the gmpi lib, if the other lib provides better functionality (dithering or whatnot) for a conversion. The engineer in me REALLY likes this. I know everyone here will hate it. But think about it - it makes plugs free to do a lot of things. It is almost free to host coders. We debug it once. It even opens a new market where dithering companies can sell dithering modules. Maximum flexibility, and the only cost is to the user at runtime, where it should be. ---------------------------------------------------------------------- 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