LMMS / lmms

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

All ZynAddSubFX presets retaining qualities if a non-default preset is previewed. #6074

Open Monospace-V opened 3 years ago

Monospace-V commented 3 years ago

(Issue also on forums here)

Bug Summary

I downloaded a preset from the internet and previewed it in the sidebar by clicking. After this, all other (default) presets had changed sound characteristics. Video explanation (easier to understand): https://drive.google.com/file/d/1Z_Szg8jPrchu7wT07AUtE2V9rY_DxADv/view This video is from when I first filed the report about a month ago. I have placed another video lower in the post.

Note: this happened with only two of my three non-default presets, and incidentally both had a stereo enhancer on them and were very similar (one was an equalized version of the other). I downloaded the original preset here

Steps to reproduce

  1. Download above preset and place in presets directory
  2. Open sidebar.
  3. First check a default preset for sound behaviour, eg Bass 3 (not necessary, but helps making telling the difference before and after easier)
  4. Preview downloaded preset by clicking and holding.
  5. Now click any other preset, and it has changed. Ideally, click the preset you clicked earlier (eg, if you clicked Bass 3 in Step 3, click Bass 3 again and you can tell the difference.)

Expected behavior

Previewing this preset shouldn't change characteristics of other presets to be similar to it.

Actual behavior

Previewing this preset changes qualities of other presets to sound like it

Screenshot

(Only video, no screenshot)

Affected LMMS versions

1.2.0, 1.3 alpha, presumably everything in between.

Note that the bug happens only with this preset, not any other. I have three presets in my folder: "Super Metal Bass Guitar"; "SMBG" (which is essentially the same thing but equalized slightly); and "Weird synth thing". The first two presets only give this problem, and both have (disabled) stereo enhancers. The stereo enhancers are not causing the issue. Also, clicking the first two changes the sound of all default presets, but clicking "Weird synth thing" resets them to normal. See: https://user-images.githubusercontent.com/76674645/124590875-42ea6a00-de79-11eb-8eee-b7732d61d118.mp4

he29-net commented 3 years ago

I thought I wrote about this problem somewhere before and that there was an issue for it, but trying to search for it turned up nothing. The problem is that many old presets use the default basenote and it is not explicitly specified in the preset file. That includes Zyn presets as well, since these do not even have an option to override the basenote in LMMS as far as I know.

Previews work nicely when only playing presets with no basenote setting (since the initial basenote is set to the default value) or presets which have the default basenote set. But once you preview a preset that does not use the default basenote, the preview player will change its basenote to that new value.

That causes a problem when you later play an old preset without any basenote value: the player does not know what new value to use since no value is supplied, so it keeps using the value set by the previous preset.

Spekular commented 3 years ago

Shouldn't the preview player then use the default basenote again?

DomClark commented 3 years ago

I thought I wrote about this problem somewhere before

This comment here? https://github.com/LMMS/lmms/blob/46c246a5b0bfa8d400301eca07ff9e3633322474/src/core/DataFile.cpp#L1723-L1725

In which case this should be fixed already. @Monospace-V Which alpha did you try? Can you try the latest, 1.3.0-alpha.1.102+g89fc6c960?

Monospace-V commented 3 years ago

I cannot compile. Where can I get a binary? The alpha I'm using is the one from the pull request adding a metronome context menu, ie image

qnebra commented 3 years ago

https://github.com/LMMS/lmms/releases and it was here.

Monospace-V commented 3 years ago

Still facing the issue in that version. Not resolved. I have linked to a preset causing the issue in the parent post, so if anyone wants to replicate the issue they can do so.

DomClark commented 3 years ago

@he29-net Do you mind investigating this? It seems to be in an area you're familiar with.

he29-net commented 3 years ago

I just played around with the preview player a bit, and whoa, the issue goes further than I thought. It seems that basically anything that is not set in the current preset is inherited from the previously played preset, not only the base note.

To illustrate, open LMMS, open the preset browser and play a ZynAddSubFX preset (for example something from the Guitar group). Then play AFP "Bass-Mania" preset. Then play again the same Zyn preset as before and be amazed.

So the preview player should be probably fixed so that it always clears all parameters to the default values before playing a different preset.