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

Open
wants to merge 5 commits into
base: master
from

Conversation

Projects
None yet
3 participants
@Igevorse
Contributor

Igevorse commented Jul 16, 2015

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

This comment has been minimized.

Show comment
Hide comment
@Jojo-Schmitz

Jojo-Schmitz Oct 28, 2015

Contributor

rebase needed...

Contributor

Jojo-Schmitz commented Oct 28, 2015

rebase needed...

@Igevorse

This comment has been minimized.

Show comment
Hide comment
@Igevorse

Igevorse Oct 28, 2015

Contributor

@Jojo-Schmitz rebase is done.

Contributor

Igevorse commented Oct 28, 2015

@Jojo-Schmitz rebase is done.

@Igevorse Igevorse changed the title from Listening to MIDI Machine Control messages [don't merge, welcome for testing] to Listening to MIDI Machine Control messages [welcome for testing] Oct 28, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment