w3c / mnx

Music Notation CG next-generation music markup proposal.
176 stars 19 forks source link

Demiditizing - Information for the synthesizer should be more general #72

Closed mogenslundholm closed 1 month ago

mogenslundholm commented 6 years ago

Demiditize? It seems to me like MNX should have an interface that is more general than the specification in MusicXML, which is close to MIDI-specification. We should call an instrument for an instrument and not for a program. And the instrument should not be limited to 0..127 but to a bigger list. And channel numbers not limited to 0 to 15. (And pitch not to 0..127, but with fraction) So that instead the instrument-list should not be devided in 127 pitched and 127 not-pitched instruments, just one big list. I think that a channel number is still needed - to address a specific unit.
A number of settings in MIDI are done with "Control Change". Other settings are in Meta-Events, e.g. MIDI Tuning Standard. Can we make an open definition such as "<synthesizer-setting reverb="234", panorama=...><....>"? (So that MNX knows that this is synthesizer-settings, but not what reverb is, just passes it to the synthesizer-interface). Where to put this stuff in MNX? In MusicXML it is in <part-list><score-part ......>

mogenslundholm commented 6 years ago

Noting the keywords with performance: <performance-event>, <performance-audio>, <performance-audio-media> etc.

Wonder if the intention is to have synthesizer-related stuff in <performance-....> definitions?

joeberkovitz commented 6 years ago

@mogenslundholm: Let me sketch what's in the spec now, and some thinking about how this could evolve. From the description of this issue, I'm not sure if you've seen everything that's there, or perhaps it could be clearer.

First, the MNX spec already proposes a set of elements that are intended to function in the way I think you are asking for: a way to encode musical performance data (including instruments and techniques) that is quite general and independent of MIDI. These are <performance-part>, <performance-tempo> and <performance-event>.

In this proposal, there is no restriction to 0..127, or to MIDI program channels. <performance-part> is expected to use the same open-ended sound list as the regular <instrument-sound> element. And instead of using controller numbers, we've suggested a list of "techniques" that are truly musical concepts (e.g. staccato, col legno, etc.).

Second, these elements are intended to function in two ways: within CWMNX (as a way to override the default performance interpretation of any part of a score), and in GMNX (as a way to encode a complete, fully instantiated performance that can be played back on any reasonable synthesis engine). In the

Because these elements are already decoupled from MIDI, I don't think there is any need to think of this as "demiditization" -- MNX is already "demiditized". But what we do need is to build out the elements so that they support all the musical performance concepts that we need.

adrianholovaty commented 1 month ago

Marking this as closed, for the sake of cleaning up our issue database. This is very outdated — it deals with the older XML version of MNX.