musescore / musescore/MuseScore

Midi Implementation Specification, Midi output tests, and any bug fixes that come as a result.

Open
#25,306 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request MIDI
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Your idea

I was looking at 'Fix multiple MIDI out issues #24944' and discovered some other strange behavior with at least the grand piano instrument. When given pitches on the extreme ranges of the instrument, the midi pitch output defaults to 0x6C. For example, pitches on the staff that should output MIDI pitches 0x00 - 0x0B instead output 0x6C.

Having discovered this, I created a repository for test MuseScore files that are designed to act as a benchmark for the midi output of museScore.

Problem to be solved
  • Need to gather any specifications on the MIDI output of museScore, and what it is intended to produce when given score items are present.
  • Design score files and expected MIDI output events that can be recorded and compared.
  • Write specifications for logging MIDI data and appropriate software for storing the test output to text file (recommending max/msp to record midi events in order without any delta times)
  • Integrate findings with community and plan future work based on it.
Prior art

I ran into this problem with Finale while writing my own JSX effect for Reaper to interpret MIDI output for my own compositions. When asking Finale for help on discerning what midi should be output, I received no help and had to resort to trial and error. The problem was never solved before finale was sunset.

Additional context

One of my personal requirements for composition software down the road is a better way to automate the score to midi. I write drumline music, and I have essentially worked out formulas for interpreting dynamics into velocity, but I need to know for sure what is output by MuseScore to have a good chance at making my own scripts succeed. In the past, I have found myself having to write the piece multiple times (once for notation and once for audio) to assemble everything for publication. There should be no need to do that.

Checklist
  • This request follows the guidelines for reporting issues
  • I have verified that this feature request has not been logged before, by searching the issue tracker for similar requests

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the MIDI behavior described here and the referenced issue #24944, then inspect the external repository of benchmark MuseScore files mentioned in the report. Define the MIDI-output specifications, expected events, recording approach, and test integration before determining what bug fixes are needed; no MuseScore files or tests are named in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.