LMMS / LMMS/lmms

MIDI export "folds over" notes within piano roll within too-few-steps BB editor

Open
#6,203 0 comments 0 reactions 0 assignees View on GitHub
bug
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
![image](https://user-images.githubusercontent.com/6500636/138914889-7df5df80-6a79-4295-b9aa-44ffc8fab98e.png)

#### 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.