LMMS / LMMS/lmms

Discontinuities in sample-exact automation in high tempo, resulting in crackles

Open
#6,567 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug core
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

(Originally reported by @LostRobotMusic on Discord)

Bug Summary
  • Sample-exact automation doesn't work well if a tick is shorter than the buffer size. Some jump discontinuities are observed in the automation.
    Note this bug depends on your sample rate and buffer size settings. If you can't reproduce the bug, try higher tempo, larger buffer size and lower sample rate.
Steps to reproduce
  • Set tempo to sufficiently high value(300 is enough for sample rate 44100Hz and buffer size 256)
  • Add any instrument, and add amplifier effect in the track
  • Connect the gain of the amplifier to an automation pattern with linear progression
  • Render to a file

Here's an example project file:
bug.mmp.zip

Expected behavior

Smooth automation

Actual behavior

Discontinuity observed, resulting in audible crackles

Affected LMMS versions

Not sure

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with the attached bug.mmp.zip project, using 300 BPM, a 44.1 kHz sample rate, and a buffer size of 256 or larger. Trace the sample-exact automation path during rendering and verify that the rendered amplifier gain remains smooth without discontinuities or audible crackles.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc
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.