>By looking at the LADSPA system, I was taken of surprise by something: is >there no buffer for control bytes? I mean, if I want to process one frame >of audio sample with, say, a volume control plugin, but I want that the >value of the volume control changes during the whole frame, with a >sinusoid for example, how can I do that? Shall I set the frame size to 1 >and change my control for each one-sized frame? I'm a bit dazzled with >this one... Its up to a plugin to decide how to handle control port value changes. You may wish to use linear interpolation, cubic interpolation, no interpolation, whatever. It may vary depending on the state of the plugin internals and/or what the port value controls. If the port value is a switch, for example, there is no interpolation to be done. LADSPA doesn't control the way in which a user may modify the control port values. So the plugin has to be ready to accept any and all values at its control ports, and use them however it sees fit. Since its incredibly unlikely that anything will feed control port changes at the audio sampling rate, the data you will see there are necessarily a discontinous curve with respect to the audio samples. Thus, you will *have* to do some kind of curve shaping if you want a true "curve" of any kind. BTW, you're using the word "frame" in a confusing fashion here. on LAD as elsewhere, "frame" is generally used to mean the set of samples for all channels during a single sampling interval. Eg. for a 12 channel system, a 1 frame is 12 samples. I think it will be clearer if you use the term "block". --p
