Igevorse Otonnoleare

Category: Google Summer of Code 2015 · Feed


Assigning MIDI channels and Midi Machine Control features are implemented!

Here're good news about MuseScore!

I finished implementation of two features:

This is a part of my work in Google Summer of Code 2015.

"Assigning MIDI channels to instruments" allows to assign any MIDI port/channel to an instrument in Mixer.

Animation of MIDI port/channel synchronization

New opportunities unlocked:

  • Assign each instrument to a different MIDI port and connect MuseScore to external synthesizers, effects processor and VST instruments via JACK with minimum additional software (JACK + MuseScore + QJackCtl/any patchbay).
  • Export MIDI mapping to MusicXML and MIDI files to make futher editing/processing simpler.
  • Better control of MuseScore output for research/related projects (MuseScoreSSMN, etc).

MIDI Machine Control (MMC) is a feature that helps to control playback of MuseScore via MIDI by sending special MIDI messages.

New opportunities unlocked:

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

Supported events:

  1. System realtime messages:
    • Start (0xFA)
    • Stop (0XFC)
    • Continue (0xFB)
    • Song Position Pointer (SPP) (0xF2)
  2. 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)

These features are not merged, so welcome for testing!


I'll start to work on "MIDI Actions" feature in a few days.

With this feature we will be able to change parameters/settings of external VST's via MIDI, it will be possible to create scores with more dynamic sound: musicians will be able to change chorus and pan dynamically, add portamento, sostenuto effects, and also use special MIDI events for changing parameters of external synthesizers/VSTs on the fly!

You can find me on IRC #musescore as igevorse.

Feel free to write me about implementing some JACK-related features in MuseScore that you need and want.

· Retweet Retweet! · Share Share · Comments (4) ·

GSoC 2015: bend playback in MuseScore

This summer I participate Google Summer of Code at Portland State University.

My project title is "Improving sound in MuseScore scorewriter up to the level of commercial software".

I have two goals to implement:

  • Assigning MIDI port/channel to instruments.
  • MIDI Actions: sending arbitrary MIDI events from any part of score.

I started to work on the first feature last summer when I had a free time after GSoC 2014 and I've done a working prototype. Unfortunately, I had a lack of free time and a high load at university, so now I have a chance to finish it.


I work on my project for several weeks and I already have something to share.

I've done a significant work on "Assigning MIDI channels to instruments" feature and implemented bend playback. This feature wasn't mentioned in my GSoC proposal, but it matches my GSoC title well.

MuseScore had tools for creating different kinds of bends, but it wasn't able to play them: bended note was sounding like an ordinary one. Bend playback was implemented a long time ago, but then something was changed in MuseScore and bend playback was broken.

So, for many years people were asking for this feature, and now it's implemented!

Here's a video demo of bend playback: a solo from Guns N' Roses - Sweet Child O' Mine.

Now we have:

  • bend playback via internal and external (via JACK) synthesizer.
  • import bends from gp* files.
  • export bends to midi files.
  • "Export RPNs" checkbox in Preferences window that allows export of RPN events (some software crashes while getting RPN events).

You can find me on IRC #musescore as igevorse.

Feel free to write me about implementing some JACK-related features in MuseScore that you need and want.

· Retweet Retweet! · Share Share · Comments (0) ·
Style `onWall HashCode` by Lited & Sayori
Get your own blog immediately for free with Lited!