LMMS / LMMS/lmms

BPM-Clock sync issues

Open
#6,627 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

### Bug Summary
Timer/Clock Desyncs from/doesn't line up with BPM changes unless song is played in full from start, frustrating when trying to time a song (For example: Trailer Music).
#### Steps to reproduce
Change the BPM with either "song-global automation" or just a normal automation track (this applies to both). compare timer/clock when playing from start to seeking or playing from midway through
#### Expected behavior
I would really hope it'd take into account the bpm change so people could line songs up with things if they have to change the bpm
#### Actual behavior
A bar could take place at 5 different moments according to the timer/clock, the only **correct** one being when you play the song from the very start. (_incredibly_ annoying on anything longer than 10 seconds)
#### Screenshot
In the screenshots, the first BPM is 135, and the second is 200. Only screenshots for when using song-global automation are provided, but that's because the automation track functions the exact same. All screenshots are taken from the playhead being at just about the same point, at different states of the BPM shenanigans.

**Played in full from start**
![image](https://user-images.githubusercontent.com/65266122/216425815-b335602b-ea28-403c-b294-30caf9424b9e.png)
**Seeking 1**
![image](https://user-images.githubusercontent.com/65266122/216426480-36f5526e-041f-49dc-b23e-ea89fc98c78b.png)
**Seeking 2**
![image](https://user-images.githubusercontent.com/65266122/216426017-41d7c038-87ff-422d-b36e-9cd8a0482339.png)

#### Affected LMMS versions
I am using
![image](https://user-images.githubusercontent.com/65266122/216426652-380988f3-5ee8-4cb8-b125-baf1e62796fd.png)

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the desynchronization in LMMS using both song-global BPM automation and a normal automation track, comparing playback from the start with seeking or starting midway. Trace the timer/clock and BPM-change handling; done means the clock and bar timing remain consistent after seeking and BPM changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.