Just another thought. Even the plugin technologies (LADSPA and LV2 at least) only support controller values being interpreted once, before the processing of each buffer. So, it would seem that the problem would still exist even if LMMS supported sample exact (or any multiple-values-per-buffer-period granularity).
The solution instead lies in the implementation of the plugin. The plugin must internally ramp the controls as needed during the processing. I imagine most properly written plugins already do this. Most LMMS plugins probably do not. Things like the FX-mixer sliders and instrument volume knobs are directly backed by their model and contain no state IIRC. So, LMMS could add a library for interpolation of control values, and we would need to utilize it in the various processing stages. The resolution of the automation events can stay at period boundaries. Another thought: 48000Hz / 1024 samples ~= 50Hz, so, that seems like a reasonable rate to me... Paul On Sat, May 29, 2010 at 6:14 AM, Tobias Doerffel <[email protected]> wrote: > Hi, > > Am Samstag, 29. Mai 2010, um 12:02:18 schrieb Stefan Fendt: >> Well, I'm not sure what you try to distinguish with this. But performing >> sample-exact calculations of the audio-automation (and the envelopes) is >> possible in realtime (at least on the sample-rates used for >> realtime-preview and -playback), too, nowadays... So I maybe don't get >> the point... > Doing that for all controls still is not feasible. Changing some parameters > sometimes causes a complete recalculation of a model and thus is not realtime > safe. I however agree with that it should be possible with simple controls > like volume, panning etc. > >> Without having done further test-renderings of the output of lmms and >> without having looked deeply at the source-code of these... Yes, any >> block-wise calculations of volumes can be the source of a multitude of >> different click-sounds. > In this case it is. Furthermore this depends on the resolution of the > according control. At least in older versions we used integers [0:100] for > volume which is far too coarse. > >> 1. Is lmms doing these block-wise calculations only(!) for >> audio-automation or is it utilizing this sort of calculation even >> for audio-envelopes? > No, all envelopes and LFOs are sample-exact. > >> I ask because I have these click-sounds not >> only when using audio-automation but also when using just >> envelopes... > You rather mean, when disabling them? Because then the signal is taken as > generated by the generator without any further processing. A simple phase > shift > could cause discontinuous jumps . > >> 2. May it be the case that for some reason uninitialized >> variable-values leak into this process? I noticed some rather >> strange clicks in the audio-output of at least the current master > Me too. Not sure whether it has to do with the new FX mixer. As far as I know > the 0.4.x series is not affected by this. Maybe someone should run Valgrind on > the master branch version. > >> 3. Is there some sort of ramping used? Linear approximation or >> anything better to soften the edges of the blocks? > Currently not - and sometimes unsteady jumps might be desired. I'm not sure > what way to go here.. > >> Just to clarify this: I have these strange click-sounds not only when >> using envelopes and or audio-automation. It's just that they appear to >> be a lot stronger and a lot more frequent when using envelopes and or >> audio-automation. > I'm really interested in the proposed test files :-) > > Toby > > ------------------------------------------------------------------------------ > > > _______________________________________________ > LMMS-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/lmms-devel > > ------------------------------------------------------------------------------ _______________________________________________ LMMS-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/lmms-devel
