LMMS / LMMS/lmms

MIDI import: Pitch bend range CCs ignored and wrong default

Open
#1,967 3 comments 1 reaction 0 assignees View on GitHub
core duplicate enhancement
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

First the easy part, the default range should be adjusted for instrument tracks imported from MIDI:
http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec/wheel.htm

> The GM spec recommends that MIDI devices default to using the entire range of possible Pitch Wheel message values (ie, 0x0000 to 0x3FFF) as +/- 2 half steps transposition (ie, 4 half-steps total range). The Pitch Wheel Range (or Sensitivity) is adjusted via an RPN controller message.

And second, if there are any pitch bend range messages, they should be handled. And they aren't plain CCs, I'm afraid:
http://kurzweil.com/knowledgebase/pc1x/internal_voices-program_mode/33/

> First you send cc# 100 with a value of 0; then cc#101 with a value of 0. This turns on reception for setting pitch bend with the Data controller (#6). Then you send cc# 6 with a value of 2 (in semitones; this will give you a whole step up and a whole step down from the center).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the MIDI import path for instrument tracks and trace how pitch-wheel settings and controller messages are currently read. Consult the linked MIDI specifications, then verify that the default range and RPN-based pitch-bend range messages are handled correctly during import.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.