LMMS / lmms

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

Unbind Piano Roll from Timer when closed and paused #1673

Closed ShurikMur closed 6 years ago

ShurikMur commented 9 years ago

Edited Jan 30th @tresf added @badosu's better description of the issue

If you play something on piano roll then pause (the pause word is important here, stop resets the timer) and close the piano roll the Timer will show a time offset still related to Piano Roll.

But see: since piano roll can keep playing on background even when closed means that the Timer is still bound to the Piano Roll instead of the Song Editor, which is not much of an issue to me, but can be "fixed". This however overrides what someone can think of as a feature, restoring the last Piano Roll timeline point when reopening it.

The correct wording for this issue in this case would be: Unbind Piano Roll from Timer when closed and paused.


V 1.1.0, win 32

How to reproduce:

  1. Play in a piano roll, then stop;
  2. Fold or exit piano roll;
  3. Play in a song editor.

It starts from a beginning of song, but the timer goes from the last value after playing in a piano roll. If stop and play again - timer resets and works properly.

tresf commented 9 years ago

Yeah, it seems we should be resetting our LCD in some more scenarios. Thanks for the bug report.

curlymorphic commented 9 years ago

Can anyone reproduce this in master. possibly fixed by #1570.

badosu commented 9 years ago

This still happens on master, but I wonder if this is a bug or not.

I don't know though if what I am experiencing is the same as @ShurikMur when this bug report got written. Maybe there was indeed a bug that was fixed by #1570.

If you play something on piano roll then pause (the pause word is important here, stop resets the timer) and close the piano roll the Timer will show a time offset still related to Piano Roll.

But see: since piano roll can keep playing on background even when closed means that the Timer is still bound to the Piano Roll instead of the Song Editor, which is not much of an issue to me, but can be "fixed". This however overrides what someone can think of as a feature, restoring the last Piano Roll timeline point when reopening it.

The correct wording for this issue in this case would be: Unbound Piano Roll from Timer when closed and paused.

A much better solution for this would be to avoid binding the Timer carelessly between the Song Editor and Piano Roll. Storing state for this in two different variables: one for each, and setting the timer when one gets focus or another.

tresf commented 9 years ago

A much better solution for this would be to avoid binding the Timer carelessly between the Song Editor and Piano Roll. Storing state for this in two different variables: one for each, and setting the timer when one gets focus or another.

That sounds about right actually. :+1:

badosu commented 9 years ago

@tresf Yeah, but bear in mind that this issue can still be "fixed" without this refactor being made. :bear:

EDIT: Also please replace "Unbind" where I said "Unbound".

SecondFlight commented 6 years ago

I'm not still having this issue on master, could someone test this and confirm before I close the issue?

musikBear commented 6 years ago

could someone test this and confirm

Confirming, i can play from bar 0:0:0 in songeditor even though pianoroll has timer value paused at 5:2:0. If i stop play in song-editor and i reopen the paused piano-roll, it is now not at bar 5:2:0, but at bar 0:0:0 If i pause in song-editor and i reopen the paused piano-roll, it is now at bar 5:2:0.

imo logical and good behaviour. Song-editor stop resets timer, is ok

SecondFlight commented 6 years ago

Alright, I'm closing the issue based on that. If it works on master and the latest RC then I'm not worried.