*** Intro ***
My name is Maxim Grishin and I am a participant of Google Summer of Code 2015.
Unfortunately, MuseScore was not accepted for the 2015 edition of GSoC. This summer I participate under Portland State University, but my project is about MuseScore.
Last summer while participating GSoC 2014 I implemented full JACK support in MuseScore: JACK MIDI Out, JACK Transport, JACK Timebase master/slave, etc. I also started to implement other features beyond GSoC proposal: some of them were finished and merged, but some were not.
Last summer there were several suggestions to improve MIDI subsystem in MuseScore on the mailing lists . First of all, it is manual assigning MIDI channels to Staves/Instruments, and also manual adding MIDI events (volume change, program change, etc) with the help of StaffText/SystemText.
I started to work  on this several times, and I had to rewrite the code several times. Unfortunately, I had a lack of free time and a high load at university, so I still haven't finished it.
Due to the latest changes in MuseScore I have to write code from scratch again.
*** GSoC 2015 ***
This summer I will implement these features:
1. Assigning MIDI port/channel to instruments.
With this feature it will be easier to manage JACK connections: we'll get rid of using qMidiRoute and will be able to connect to external VST(i)'s directly. Also we will have more control over MIDI channels of the internal synth.
2. MIDI Actions: sending arbitrary MIDI events from any part of score.
With this feature we will be able to change parameters/settings of external VST's via MIDI. Also this could be helpful for SSMN project and various applications mentioned last year .
Feel free to write questions or wishes about my work, also post your use cases of these new features.
You can track my progress at my blog  or find me on IRC #musescore as igevorse.
Welcome back Maxim ! And thank you for the intro.
2015-05-07 12:20 GMT+02:00 igevorse <[hidden email]>:
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
Mscore-developer mailing list
In reply to this post by igevorse
Good to have you back Maxim.
One thing which would be very dear to my heart is for MuseScore to recognise external MIDI transport messages.
Currently, unless a sequencer is JACK compatible you cannot start MuseScore playback from it - or at least I have not yet found a way of doing so.
If we could get MuseScore to listen for Sequencer Stop/Start messages that would solve the problem. Ideally recognising Song Position Pointer messages would be good too, but that could come later.
Would there be any way you could work this in with the rest of your work on MIDI.
In reply to this post by igevorse
Welcome back Maxim, I'm glad you are able to resume your project!
As you asked for use cases, I have one: driving GrandOrgue with MuseScore.
The case is rather specific -- I understand -- but, given the lack of sound fonts even remotely usable for 'early music', an organ could be a reasonable substitute in many pieces (and for GrandOrgue several historic instruments are available, even for free, which are totally plausible in a great number of cases)
At first sight, MuseScore => GrandOrgue works out of the box. In practice, it is necessary to configure each organ for each piece (simply to match the number of parts in the piece with the number of manuals+pedal in the organ, not to mention stop selection). Whence:
1) The ability to select the MIDI channels for each staff in MuseScore would greatly simplify this and would add a lot of flexibility.
2) The ability to send arbitrary MIDI events from MuseScore would allow to code in the piece the commands to select a specific configuration in the receiving organ and would also allow to change the registration mid-score (which currently can only be done manually while the piece is played back. And, well, yes, this is what a 'real' organist does, but we are speaking of playback here!).
There is one additional detail which I would like to see implemented, if possible. Imagine a 4-voice piece played on a man+ped organ; we can assume that the 4 voices are normally played on the manual (I believe this is called 'closed score' configuration in English).
Now, it happens frequently that two voices hit the same note, but partially shifted: 1) one voice attacks that note, 2) another joins and then 3) the first changes note while the second keeps it a little longer.
As the two voices are mapped to the same channel, currently, the note off event at 3) shuts down the note, even if the other voice is still singing it. It would be nice if some kind of 'note reference count' could allow to defer the note off event until *all* occurrences of that note are really over.
Thanks for reading and best wishes for your project!!!
In reply to this post by ChurchOrganist
Hello. Here is a short list of achievements:
Ardour sends SysEx Goto/Locate messages, Qtractor sends Song Position Pointer messages, so if you set correct tempo and time signature, the sync with Qtractor will be more accurate. You can clone my mmc  branch for testing.
This post was updated on .
First of all, let me say that I'm very glad you could rejoin the MuseScore development team.
Unfortunately, I've been extremely busy for the past three months (still am) and failed to reply the first post of yours from May 7th, so this is a long overdue reply to that first post, regarding your new MIDI implementations in MuseScore.
On this regard, I must say that I read, saw and heard your last blog post, and it's quite impressive what you've accomplished with pitch Bend playback. Would this effect be extensible to glissando playback? If the answer is yes, than that would be fantastic, since it is a rare feature among the available notation softwares with playback capabilities.
Concerning other new features, I've had some ideas that may interest you, namely, the addition of a timeline in Continuous View mode, along with automation tracks (which we already address back in ), and the enhancement of MuseScore's SFZ sampler (Zerberus), to allow for certain SFZ format compliant features that could be really useful.
If time permits, I'll try to test your new features, but I can't promise I'll be able to do it rather soon. If, eventually, you were able to compile a generic 64bit binary for a Ubuntu 14.04 based system (I use KX Studio, which derives from Ubuntu 14.04 LTS), for local testing, that would speed up things, since I already have some samplers installed in the system that I could try with your MusesScore version.
Regarding the SSMN parallel project, Emile Ellberger wrote a post, back in March 26th this year , saying that they wanted to merge their version with MuseScore 2.0 and they were looking for developers to assist them. I don't know how they are doing right now, but if this is of some interest to you, you could try help them or inform them of your achievements, to see if they're useful for them.
My best regards.
This post has NOT been accepted by the mailing list yet.
what's wrong with glissando playback? I just tested several types of Glissando and I can hear them playing.
It's not easy to implement automation tracks, so I don't think somebody will implement it soon. Nevertheless, I hope we will get the improved "MIDI Actions" feature by the end of the summer (see below). If you have some ideas related to Zerberus, it's definitely better to describe them in MuseScore forums  so that more developers could see them.
Bend playback is merged, so you can try MuseScore 2.0.2 or latest linux nightly build  to use it. Regarding other features: it's probably not a good idea to send binaries to the mailing list, so please write me a PM with your e-mail.
I think it's too early to write to Emile Ellberger about new features because they're still not merged.
I have good news about my GSoC participation: I've finished implementation of "Assigning MIDI channels to instruments"  feature. Also let me remind you that I've finished Midi Machine Control  feature that helps to control MuseScore playback without using JACK Transport.
I created pull requests for these features, so you're welcome for testing!
I will start to work on "MIDI Actions" feature in a few days. It will give us an ability to send arbitrary MIDI messages to sequencers/synthesizers/VSTs. 
|Free forum by Nabble||Edit this page|