>>> I've not yet seen any convincing arguments or test-cases to support the need for double audio i/o or interleaving. <<< (1) Need for double audio: DSP "kernels" require double precision float to retain sufficient accuracy. A modular synth builder or effects builder environment will have processing elements that are in essence DSP kernels, such as biquads, delay lines, etc. We should be able to package these processing elements as GMPI objects. Therefore, if we don't allow them to stream doubles to each, they cannot have the math precision needed. (1a) Need to not do do double everywhere. Double takes up 2x RAM = 2x L1 cache as float. For ordinary interconnects, where retained accuracy isn't as much an issue, halving the memory footprint equals a performance gain. (2) Need for interleaving: Surround applications are likely to have serial chains of effects processors that accept multichannel audio. Applying volume/pan to a multichannel stream is akin to a vector dot product, where one vector is the interleaved sample value and the other is the per-channel gain. Vector dot products can be performed more efficiently, with less cache pollution, using SIMD instructions. Therefore, if we don't allow interleaving, surround applications are going to suffer degraded performance because they won't be able to fully leverage parallelism -- they will be forced to do surround gain as uninterleaved SISD, whose performance has been deprecated on newer Pentium 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