Hello all, I've been working on VLevel, a LADSPA plugin to keep me from having to fiddle with the volume, and it's now in a useful state, so I'm looking for some feedback. Basically, VLevel keeps track of the peak amplitudes, and adjusts the volume smoothly to make the quiet parts louder. Since it looks ahead a few seconds, the gain change is always smooth.
<http://vlevel.sourceforge.net> VLevel is written in C++. I have two questions. First, why do most other plugins allocate and free copies of their strings and structures, instead of just passing the literal (as I do)? The declarations in ladspa.h don't allow the host to modify what the pointers reference. Second, I keep a buffer of length n in my code, so the first n seconds of data I return is useless, and after the audio is sent, I need n more seconds of input before all the audio is returned. Is there any way of informing the host about this? In the future I plan to make some performance improvements, and perhaps a nice cross-platform GUI for applying VLevel to files. I may also try to get XMMS-LADSPA to save its state, which would be very useful to me. I suppose VLevel could use RMS or a psychoacoustic model to estimate volume, but that would make it very complex, and more difficult to avoid clipping. Despite that, it serves my purpose, to play classical music on the road, quite well. Have fun, -- Tom Felker <[EMAIL PROTECTED]>
