LMMS / LMMS/lmms

SimpleAudioProcessor - Sync sample position to song position when continuing playback between notes

Open
#6,479 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

### Enhancement Summary
I want to hear the same thing each time I listen to my song. For example, if my sample is a spoken sentence, I want the same word to be spoken on a particular note each time I play the song. Currently, this is impossible. (I discovered this limitation when attempting to make one of those 'auto-tuned meme songs' from a spoken audio sample)

When the "continue playback between notes" mode is engaged, currently, each time a note is played, the SimpleAudioProcessor continues playback from where ever it left off. This means a different part of the sample is played for the same note of different replays of the song. The sample and the song fall out of sync.

In my opinion, ideally, the position in the sample would be calculated by adding the lengths of all the notes that have already played in the song. Thus, the same part of the sample would play on each playback.

If this is too complex, we could instead just reset playback position when restarting the song from the beginning. It would be annoying to have to listen to the entire song every time to hear the 'real' version, but it would be better than the current situation where what part of the sample is mapped to each note is effectively random.

I really appreciate all the hardwork you developers do for free. LMMS has significantly improved even in the few years I have been using it.

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 locating the SimpleAudioProcessor implementation and reproduce the behavior by replaying a song with “continue playback between notes” enabled. Trace how sample position is retained between notes and song restarts. Done means repeated playback maps the same song notes to the same sample positions, or consistently resets position when restarting from the beginning.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.