Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Listening to MIDI Machine Control messages [welcome for testing] #2128

Closed
wants to merge 5 commits into from

Conversation

Igevorse
Copy link
Contributor

MIDI Machine Control (MMC) is a feature that helps to control playback of MuseScore via MIDI by sending special MIDI messages.
For now MuseScore is able to listen to this messages, not send them.

New opportunities unlocked:

  • Synchronize MuseScore with software that doesn't support JACK Transport
  • Control playback of MuseScore even without JACK

Supported events:

  • System realtime messages:
    • Start (0xFA)
    • Stop (0XFC)
    • Continue (0xFB)
    • Song Position Pointer (SPP) (0xF2)
  • System exclusive (SysEx) messages: (0xF0 0x7F <deviceID> 0x06 <command> 0xF7)
    • Stop (command: 1)
    • Pause (9)
    • Play (2)
    • Deferred play (3)
    • Rewind (5)
    • Goto/Locate (0xF0 0x7F <deviceID> 0x06 0x44 0x06 0x01 <hr> <mn> <sc> <fr> <ff> 0xF7)

It works with:

  • JACK MIDI
  • ALSA MIDI
  • PortMidi (partially)

Events that are not supported for PortMidi:

System exclusive messages

UI changes:

  • "Accept MMC messages" checkbox in Preferences->I/O
  • Combo box for selecting Device ID

Tips

  • Since MuseScore is a note editor/engraver, it's better to use SPP message instead of Goto/Locate. SPP operates with MIDI beats while Goto/Locate with time in seconds/frames.
  • Use small MIDI buffer to minimize the delay between applications. For JACK it is 64/128 samples. Using "ALSA Raw-MIDI" MIDI driver instead of "ALSA Sequencer" reduces the delay twice.
  • Not all sequencers can handle MIDI realtime messages in real time, so if you want to seek/locate while playing it's better to stop playback, seek and play again.
  • There is no restriction on using MMC with JACK Transport, but you can get a delay or other surprises.

Welcome for testing!

@Jojo-Schmitz
Copy link
Contributor

rebase needed...

@wschweer wschweer added the work in progress not finished work or not addressed review label Oct 28, 2015
@Igevorse
Copy link
Contributor Author

@Jojo-Schmitz rebase is done.

@Igevorse Igevorse changed the title Listening to MIDI Machine Control messages [don't merge, welcome for testing] Listening to MIDI Machine Control messages [welcome for testing] Oct 28, 2015
@Jojo-Schmitz
Copy link
Contributor

unfortunatly another rebase is needed

@dmitrio95 dmitrio95 added the archived PRs that have gone stale but could potentially be revived in the future label Mar 11, 2020
@dmitrio95
Copy link
Contributor

Archiving this for now, feel free to reopen if there is an interest in adding this feature.

@dmitrio95 dmitrio95 closed this Mar 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
archived PRs that have gone stale but could potentially be revived in the future work in progress not finished work or not addressed review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants