Musescore 3 internal audio structure
Hierarchy
- Score(Full or excerpts(aka File>Parts))
- Parts
- Instruments
- Channels
- Instruments
- Parts
Example 3 parts score
Horn in F | parts[0] | .longName |
+Horn in F | p.instruments[0] | .longName |
++open | p.i.channel[0] | .name, .mute, .volume etc |
++mute | p.i.channel[1] | |
Piano | parts[1] | |
+Piano | p.instruments[0] | |
++normal | p.i.channel[0] | |
Violin | parts[2] | |
+Violin | p.instruments[0] | |
++Vln. arco | p.i.channel[0] | |
++Vln. pizzicato | p.i.channel[1] | |
++Vln. tremolo | p.i.channel[2] |
ways to get Part
element(eg Note/Chord/Segment) .staff.part
curScore.parts
score.excerpts[].parts see this post
part.midichannel vesus instrument.channel
To mute an instrument without affecting others, use the instrument.channel.mute
TLDR
Musescore 3 use one IAC port in MIDI Output. Not to be confused with the Port in Mixer, that Port works internally. See this post
part.midichannel refers to one of 16 MIDI Output channels, these channels are not exclusive to one sound patch, different MIDI patches may be used in same channel using MIDI BANK SELECT internally when using >16 sounds. if you know src plz add link
instrument.channel refers to internal channel and one sound, same as defined in instruments.xml, eg buildin violin has 3 channels: arco, pizz, tremolo.
most properties of Part and Instrument are read only eg cannot set longName
if you know how to set longName or why disabled plz add