LMMS shows odd behaviors with non-default denominator
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
LMMS supports variable time signature since bf077dd. There have been so many bugs and most of them have been fixed. Now LMMS seems to work correctly with any numerator.
However, there are still some bugs with meter denominator. Here's the list of bugs that I found:
- [ ] Piano-roll and automation editor displays weird grid~
To reproduce:
1. Set time signature to 4/28
2. Open piano-roll or automation editor
3. The grid will look very weird
**Edit**: odd quantization grid isn't a bug, but beat grid and bar grid should be synced.
- [ ] Pattern length become wrong after changing denominator
To reproduce:
1. Set time signature to 4/4
2. Add a whole note at the beginning of a pattern
3. Set time signature to 4/20
4. The pattern should be 5 bar long, but it shows exceeding length.
- [ ] Metronomes are out of sync
To reproduce:
1. Set time signature to 4/5
2. Turn on metronome and play song
3. Two metronome sounds won't be synced.
- [ ] LMMS treats BPM as quarter notes per minute, not as beat for minute
When the denominator changes, the length of quarter notes(and other notes) should be changed according to that. For example, a quarter note has two-beat length with time signature 4/8, but LMMS treats it as if it is one beat long.
Supporting exotic denominator may need large rework on whole codebase, but some issues may be fixed easily.
If there are any duplicates or related issues, please let me know!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. First reproduce the listed denominator cases in the piano-roll, automation editor, pattern length, and metronome workflows. Done means these behaviors correctly follow the selected time-signature denominator, including beat and bar-grid synchronization and BPM interpretation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- audio-video-rtc, desktop
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100