A GUI panel for MIDI import

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

A GUI panel for MIDI import

andrey.m.tokarev
This post was updated on .
This is a GUI panel for MIDI import - frontend for different midi import functions:
https://github.com/musescore/MuseScore/pull/325

 One can choose midi file to import and specify operations to perform on each midi track (selectable) during the import. More operations can be added in the future.

Here is how the panel looks like:
http://imageshack.us/photo/my-images/849/midiimportpanel.png/

It can be toggled in Display menu. Also it appears when midi file import is invoked.

Thanks David Bolton-2 for his thoughts on instant feedback for midi import:
http://dev-list.musescore.org/GSoC-MIDI-proposal-draft-tp7578046p7578048.html

Any discussion is welcome.


--
Andrey
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

David Bolton-2
Andrey,

I really like UI for the track selection and "operations". Often the
tracks are unlabeled so seeing exactly which staves disappear in the
score with each check mark is quite helpful. It will also encourage more
exploration for other MIDI settings and hopeful helps users get a nicer
score. Below are some thoughts as I used the new GUI for the first time.

Main UI issues

1. When I went to Display > MIDI Import Panel nothing happened
initially. Then I noticed I needed to drag the panel up from the bottom.
Is the panel height set to zero by default?

2. My main concern is that this UI does not use the typical File > Open
method that is standard for every other file type. I would recommend
removing the custom file picker UI (the left side of your mockup).
Instead, the rest of your UI could appear after the user opens a MIDI
file via File > Open. The current "Import" button would be relabeled
"Apply" (or something similar).
        This approach would also eliminate the need for a menu item in
the Display menu (this menu is already crowded). In other words the new
MIDI import UI would appear automatically when someone imports a MIDI
file (when it is needed and helpful), but not distract when it is unneeded.


Minor issues:

1. When I dragged the panel up from the bottom, it shrunk the Navigator,
instead of the page view. I expected the Navigator to stay the same
height (so it would remain usable) and the page viewing section (which
has the most available space) to become smaller.

2. The MIDI panel close button uses a different image than the Edit >
Find close button. Also the MIDI panel title and close button is
right-aligned while the Edit > Fine close button is left-aligned

3. I noticed the "Instrument" column is often blank (since the MIDI file
often does not label each track). I wonder if there is value in showing
the sound name (based on General MIDI), either in a separate column or
as a substitute when the instrument label is missing. Of course this
would be a low priority feature compared to tuplet recognition and other
MIDI import features.


Other thoughts:

1. Having it as a docked panel is nice but not strictly necessary. If
some of the issues mentioned above (such as default height and
competition with the Navigator) or not easy to solve, a floating dialog
would suffice.

2. I haven't had a chance to read over the features planed for MIDI
import but it would be worth thinking through the UI for the completed
feature set. Some questions that came to mind were how the LH/RH
separation would work if you wanted to select a different split point,
where the quantization settings would go, etc. Probably you have some
preliminary thoughts on this already.

David



On 5/2/2013 11:13 AM, andrey.m.tokarev wrote:

> This is a GUI panel for MIDI import - frontend for different midi import
> functions:
> https://github.com/musescore/MuseScore/pull/325
>
>  One can choose midi file to import and specify operations to perform on
> each midi track (selectable) during the import. More operations can be added
> in the future.
>
> Here is how the panel looks like:
> http://imageshack.us/photo/my-images/849/midiimportpanel.png/
>
> It can be toggled in Display menu. Also it appears when midi file import is
> invoked.
>
> Thanks David Bolton-2 for his thoughts on instant feedback for midi import:
> http://dev-list.musescore.org/GSoC-MIDI-proposal-draft-tp7578046p7578048.html
>
>
>
> --
> View this message in context: http://dev-list.musescore.org/A-GUI-panel-for-MIDI-import-tp7578066.html
> Sent from the MuseScore Developer mailing list archive at Nabble.com.
>


------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
This post was updated on .
David Bolton-2, thank you for feedback.
Sorry for the late answer, I saw your post just now. Dind't know that there is no notification on topic reply... Now I know that I need to subscribe the post.

1. About MIDI panel height. Yes, strange thing with zero height - I set minimum height of it to 150.
But when I enlarge it manually the issue didn't repeat. So I don't know yet how to solve this, some piece of advice could be helpful .

2. MIDI panel appears now on import or open recent MIDI file event.
About file picker. The current idea is:
- user opens midi file
- file is imported as is - without operations on its tracks
- after that user can apply different operations or unmark some tracks and push Import button to update import result and see the immediate difference
- user may want to import different file and pick it through the Browse button - here it is
- and repeat the set of operations, then press Import

If this solution is not good and it's better to show this panel only during one single import - please tell me about it, and I'll rebuild the ui.

On minor issues.

I agree, it's better to shrink the page view and leave navigator height the same - or place MIDI panel in the bottom dock section.
Close button - I'll try the Edit->Find close icon. By the way - which one looks better in your opinion?

Instruments - yeah, very often there is no instrument defined for the track. There is a function in midi/midiinstrument.cpp that returns empty string if midi track type is MT_UNKNOWN = 0. Maybe set the track instrument to Grand Piano in that case or ignore midi type value?

Split point for LH/RH - I think to include fixed split point separation ability as well as LH/RH "smart" option - and put all of it on MIDI panel, so user will have a choice.
"where the quantization settings would go" - could you please explain this thought, sorry, didn't understand?
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
New pull request: https://github.com/musescore/MuseScore/pull/340
Now panel without file picker.
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
Pull request 340:
Added new MIDI import operation - Use dots (instead of ties, if possible)
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
Created a new pull request with
- meter-based duration subdivision functionality;
- tree-view operations panel.

All description is here:
https://github.com/musescore/MuseScore/pull/373
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
My hello words to the MuseScore community:
http://musescore.org/en/node/21274

Andrey M. Tokarev
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

David Bolton-2
In reply to this post by andrey.m.tokarev
Andrey,

The screenshots look good. I'll play more will a local build in the
morning.

I'm curious to know more about the quantization setting "Reduce to
shorter notes in bar" and its use-cases. Does it give results that
differ from selecting something like 64th notes as the quantization
setting for the whole piece?

David


On 5/26/2013 7:33 PM, andrey.m.tokarev wrote:

> Created a new pull request with
> - meter-based duration subdivision functionality;
> - tree-view operations panel.
>
> All description is here:
> https://github.com/musescore/MuseScore/pull/373
>
>
>
> --
> View this message in context: http://dev-list.musescore.org/A-GUI-panel-for-MIDI-import-tp7578066p7578154.html
> Sent from the MuseScore Developer mailing list archive at Nabble.com.
>
>


------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
This post was updated on .
David,

The option "Reduce to shorter notes in bar" works only
if there are MIDI events in bar shorter than main quantization value.
So to keep such fast events program reduces quant value (only in that bar).
But if all the notes in some bar are, for example, 8th and 16th, and the quant value is 1/16,
then it will remain 1/16 during that bar, and no garbage short (1/32 or similar) notes will appear.

--
Andrey
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
This post was updated on .
Tuplets for MIDI import:
- duplets
- triplets
- quadruplets
- quintuplets
- septuplets
- nonuplets
and multiple voicing support.

Pull request with examples: https://github.com/musescore/MuseScore/pull/404

Finally :)
Reply | Threaded
Open this post in threaded view
|

Re: A GUI panel for MIDI import

andrey.m.tokarev
More tests for MIDI import: tuplets, meter, dots, ties + fixes:
https://github.com/musescore/MuseScore/pull/410