Discussion on the current LMMS detuning implementation
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
_This is copied from my post on the lmms discord for people who aren't on the discord_
I think there should be a discussion about the LMMS note detuning implementation
Right now the note detuning implementation relies on the concept that each note has its own individual automation clip under the hood, when we detune the pitch of a note, it will just apply what we do to this specific note
I'd say this approach works but the way it's done is kind of weird
first of all by default this automation clip is empty, I feel like it should by default have two points that delimit the length of the note, there shouldn't be the ability to have the pitch detuning go over the length of the note as it will never be played, or at least it should not appear in the midi editor, right now it does, it should probably cut the remaining part that is outside the bounds of the note and should always have two points that define the start and end of the note
also, the detuning is done in a separate window, it works but it makes it harder to do precise modifications, it might be better to have the ability to directly edit it on the midi editor
talking about the editor itself, right now it lacks a lot of options, it seems like it's not possible to set a different interpolation type per point and instead we can only set an interpolation type for the entire detuning of the note, and the pitch curve appearing in the piano roll only displays linear interpolation rather than the actually chosen one in the detuning popup
I feel like it would be good to discuss a bit about how it could be improved as the detuning will become important for the UTAU integration and could be very useful for various instruments such as synths etc
there's also the fact not all lmms instruments actually support the note detuning
in a way for this I feel like lmms's core features should be made in a way where they're sure to work on all built in instruments
I'm right now thinking about adding support for stuff like portamento, vibrato etc but that's why I kind of want to discuss about the way detuning in lmms works in general because it will make it easier to define the way to go about extending it
as an example, one way to do things that I like having worked with OpenUTAU is this
OpenUTAU is really visual in its way to handle note detuning, and makes it easy to manually handle the pitch bending between two different notes
https://user-images.githubusercontent.com/16335601/141665099-2b19a9dd-c7fe-4d74-8243-35ff0ef0e8fe.mp4
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing LMMS's current note-detuning implementation, MIDI editor, and detuning popup. Compare the behavior with the linked OpenUTAU example, then define an agreed scope for detuning, interpolation, editor integration, and instrument support; the issue is done when that design has a clear decision.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100