rgosens2 / NoteList

MuseScore 3.0 and 4.0 Plugin
https://musescore.org/en/project/note-list
2 stars 0 forks source link

Can you add a function that recognizes the dynamics of each note in the .mscz file? #5

Open yedaming12 opened 1 year ago

yedaming12 commented 1 year ago

I don't know how to implement this feature. If you additionally add this feature complicated no?

rgosens2 commented 1 year ago

See: https://musescore.org/en/node/279917 for a plugin that shows note velocity (veloOffset). Default note input (Step-Time) always has velocity set to 0. Dynamics are channel specific.

rgosens2 commented 1 year ago

See also: https://musescore.org/en/handbook/3/dynamics

rgosens2 commented 1 year ago

And also: https://musescore.org/en/handbook/developers-handbook/references/instrumentsxml-documentation

rgosens2 commented 1 year ago

A possible approach would be to check for dynamics marks in the score and use their velocity as the note velocity. But those are not the only factors determining the final velocity of a note:

MIDI velocity is also affected by each note's Velocity and Velocity type properties, Articulations (eg Accent >, Marcato ^) and Hairpins

I doubt whether the Plugin API allows access to all those factors to determine the final MIDI velocity of a note.

yedaming12 commented 1 year ago

think for you help!

2589961552 @.***

 

------------------ 原始邮件 ------------------ 发件人: "rgosens2/NoteList" @.>; 发送时间: 2023年3月21日(星期二) 晚上7:54 @.>; @.**@.>; 主题: Re: [rgosens2/NoteList] Can you add a function that recognizes the dynamics of each note in the mxcz file? (Issue #5)

A possible approach would be to check for dynamics marks in the score and use their velocity as the note velocity. But those are not the only factors determining the final velocity of a note:

MIDI velocity is also affected by each note's Velocity and Velocity type properties, Articulations (eg Accent >, Marcato ^) and Hairpins

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

rgosens2 commented 1 year ago

Also: how will you determine velocity for Single Note Dynamics (SND)?

rgosens2 commented 1 year ago

More discussion here regarding dynamics and velocity in MS3 and MS4: https://musescore.org/en/node/340461

yedaming12 commented 1 year ago

I’m not sure I have the ability to identify dynamics, even if I spend time learning. I don’t want to make dynamics intuitive in the score, but rather output and print out the dynamics information for each note, similar to the notelist plugin. I will also look for some help. If it is difficult to achieve this function, I plan to use python to identify dynamics information, and then use excel tools to match with the .csv output by notelist, which can also achieve my purpose, but the accuracy needs to be tested. At least the python accuracy I tested before was very low for complex scores.    Aslo,If you need, I can send you my test python code after I finish testing.

2589961552 @.***

 

------------------ 原始邮件 ------------------ 发件人: "rgosens2/NoteList" @.>; 发送时间: 2023年3月22日(星期三) 凌晨4:34 @.>; @.**@.>; 主题: Re: [rgosens2/NoteList] Can you add a function that recognizes the dynamics of each note in the .mscz file? (Issue #5)

Also: how will you determine velocity for Single Note Dynamics (SND)?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

rgosens2 commented 1 year ago

https://musescore.org/en/node/347021

rgosens2 commented 1 year ago

For a plugin to be able to calculate the final MIDI velocity of a note it would be essential to find the start and duration of hairpins. Looks like the Plugin API does not give access to that. See: https://musescore.org/en/node/299997

Parsing a .musicxml or .mscx file would of course give access to this info.

rgosens2 commented 1 year ago

BTW MuseScore can show each note's absolute velocity in the Piano Roll editor. But even there, only the start velocity is shown. No hairpins, no cresc./dim., no Single Note Dynamics.

rgosens2 commented 1 year ago

See: https://github.com/rgosens2/DynamicVelocity for a conceptual plugin to find each note's dynamics and velocity.