LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
7.98k stars 995 forks source link

Muted tracks, unlike muted patterns, do redundant processing when played #5257

Open ExperiBass opened 4 years ago

ExperiBass commented 4 years ago

New issue, this time with Zyn.

Depending on how many Unison voices the preset has + the decay, Zyn will eat alot of cpu, especially when layering 3 or more notes in a single loop. This may not be just Zyn, but its the one ive noticed this issue most.

The issue is, whenever i mute a zyn instrument, the cpu still spikes. if i mute the actual loop, the cpu stops spiking. I'm assuming thats because LMMS keeps processing audio even when a instrument is muted?

Sawuare commented 4 years ago

The issue is, whenever i mute a zyn instrument, the cpu still spikes. if i mute the actual loop, the cpu stops spiking. I'm assuming thats because LMMS keeps processing audio even when a instrument is muted?

I believe this is correct. Muted tracks, unlike muted patterns, do redundant processing when played, so this is not ZASFX specific.

DomClark commented 4 years ago

Is this really a bug? The mute button isn't there to stop an instrument using CPU, it's there to stop it making sound. The way this is currently implemented means that you can unmute an instrument and it will sound exactly as the same as if it had never been muted. Suspending processing for muted instruments could, for example, mess up the timing of envelopes, LFOs, and arpeggiators, or skip notes that began while the instrument was muted, and this is likely to be worse for instruments that don't have access to LMMS's internals to correct for this.

enp2s0 commented 4 years ago

Perhaps this calls for a settings toggle?

Personally I find this very annoying, esp. when I have some CPU-heavy VSTs that aren't playing essential sounds so I mute them.

grejppi commented 4 years ago

Just chiming in; if I remember correctly, sometime between 0.4.15 and 1.0 muted instruments were made to stop playing notes, and it was quickly reverted because of the unexpected behavior it caused with MIDI-based instruments among other things.

Some DAWs offer, in addition to a mute button, a separate option to disable a track and all its plugins. That could possibly give more control than a single settings toggle as sometimes it is necessary for a muted track to have side effects (if it has a peak controller, for example), and sometimes it's useful to completely disable the track if it takes up too much CPU.