adafruit / adafruit/Adafruit_CircuitPython_MIDI
Add support for MIDI running status
- Dominant language
- Python
- Stars
- 56
- Forks
- 26
- PR merge metrics
- No merged PRs in 30d
Description
_Per channel_ messages can omit the status byte and just provide data bytes which are then consider to be a repeat of the previous MIDI event with the new data.
For the implementation this implies storing the last status byte for every relevant message in case it occurs.
Some non-official discussions on this:
- http://midi.teragonaudio.com/tech/midispec/run.htm
- http://blog.cornbeast.com/2012/12/beware-of-midi-running-status/
Test for this is partially written, see `Test_MIDI.test_running_status_when_implemented()` in https://github.com/adafruit/Adafruit_CircuitPython_MIDI/blob/master/tests/MIDI_unittests.py
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with tests/MIDI_unittests.py and the partially written Test_MIDI.test_running_status_when_implemented() test. Trace the MIDI decoding entry point it exercises and determine how per-channel status is represented. Done means data-only messages reuse the previous status for each relevant channel and the running-status test passes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- audio-video-rtc, embedded-iot
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100