LMMS / lmms

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

ZynAddSubFX + arpegiator = sticky notes #1762

Open unfa opened 9 years ago

unfa commented 9 years ago

ZynAddSubFX seems to produce a never-ending note when combined with LMMS's arpeggiator.

To reproduce:

  1. Open a new project
  2. Add a ZynAddSubFX instrument
  3. Put some notes for it to play (could a be a single whoel note to fill the bar)
  4. Loop playback in piano roll
  5. Enable arpeggiator in the FUNC tab
  6. Stop playback.
  7. Enjoy the drone.
tresf commented 9 years ago

Possibly related: #1251

Familiar with #6, #866, #568, #342

tresf commented 9 years ago

@unfa can you give us some branch information about this bug? I assume you're on stable-1.1?

-Tres

unfa commented 9 years ago

I'm expiriencing this with version 1.1.1 from KX Studio repos. Exact version: 1:1.1.1.1-1kxstudio-3

zonkmachine commented 9 years ago

I can confirm this on both 1.0~ and 1.1.3 I've seen it many times but didn't knew how to reproduce it. This is true in both song editor and bbTrack. The difference between the two is that 1.1.3 also crash if I try to delete the hung track while 1.0 lets me continue working after deleting the track.

zonkmachine commented 9 years ago

OK. I bisected the code to try and find why the bug change in quality from hanging with a cool drone to crashing when removing ZynAddSubFx(while playing said cool drone).

$ git bisect bad 44c42d9d38bc11fafeda8e7d4094da8169328e85 is the first bad commit commit 44c42d9d38bc11fafeda8e7d4094da8169328e85 Author: Colin Wallace wallacoloo@gmail.com Date: Thu Apr 2 05:14:27 2015 +0000

Provide status messages on splash screen when loading (#1696)

:040000 040000 428f4bad3dd26f2718b10f7b495c8577edfe5aaf 7879279beb39b3bd9f6e979126e19c101f32282b M include :040000 040000 5f9edaa603496ce03bc425629bbc0cf7ffaf3a32 410f2dbba6533b9ccfe6997d92eec6e449200880 M src

That commit is a... "...messages on splash screen when loading"?! Beats me. I went and removed that commit from the latest build and it went back to just failing with a cool drone that could be removed by deleting ZynAddSubFX. I don't think I've ever seen this bug with another synth but ZynAddSubFX even though I've tried to provoke it.

@tresf @Wallacoloo

zonkmachine commented 9 years ago

Could be related: https://github.com/LMMS/lmms/issues/1644 " Zynaddsubfx preview remembers previous arpeggio"

Wallacoloo commented 9 years ago

@zonkmachine That commit introduced the errors in #2049. It's because the LMMS' Engine class now implements virtual methods, and that causes a conflict with ZynAddSubFX's Engine class since their vtables get muddled up. It looks like it'll at least be fixed once our Zyn version is updated to 2.5, if not sooner.

Nice job with the bisect. I'll have to learn how to use that tool. Note that that particular commit was introduced after 1.1.3, however.

zonkmachine commented 9 years ago

Nice job with the bisect.

Well thanks, I think I've found a hobby within the hobby. Next step is to script the bisect sessions. That will be glorious!

Note that that particular commit was introduced after 1.1.3, however.

Correct, I was on master~ish.

But none of this explains the original problem (OP) then does it?

tresf commented 8 years ago

Is there a chance this is a duplicate of #340? Zyn has its own envelope, so this bug may be more benign on the native instrument plugins.

zonkmachine commented 5 months ago

I can't replicate this any longer.