MIDI export "folds over" notes within piano roll within too-few-steps BB editor
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
### Bug Summary
Background: When there is a piano roll _within_ the beat/bassline editor, the length of the beat/bassline loop is determined by the max of the piano roll length and the number of steps specified.
The bug occurs when the piano roll is longer than the steps specified, and then the MIDI export function is used. The resulting MIDI file has duplicate events that seem consistent with MIDI using the _specified_ step length.
Once I figured this out, it's trivial to add steps to the beat to correct it, but it was quite a headache to trace back my problem to this cause.
#### Steps to reproduce
1. New file with no instruments.
2. Add a beat/bassline and have it cover 4 measures in the song editor. It should have the default step length of 4 beats.
3. Add an instrument inside the beat/bassline.
4. Right click to edit in piano roll
5. Add 8 quarter notes in an ascending C major scale.
6. File > Export MIDI
7. Inspect the resulting MIDI file, e.g. using this [online inspector](https://onlinesequencer.net/import)
#### Expected behavior
The midi file should describe an ascending scale in quarter notes.
#### Actual behavior
The midi file describes parallel fifths ascending. The first beat of the midi file has C and G, the second beat has D and A, etc.
#### Screenshot

#### Affected LMMS versions
Version 1.2.2 (Linux/x86_64)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the issue through the beat/bassline editor and File > Export MIDI with an eight-note ascending scale in a piano roll longer than the specified step length. Inspect the exported MIDI and compare it with the expected quarter-note scale; done means the export no longer duplicates notes according to the shorter step length.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100