SimpleAudioProcessor - Sync sample position to song position when continuing playback between notes
Nobody has claimed this yet.
- 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
- 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
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