starfishmod / midi-implementations-schema Goto Github PK
View Code? Open in Web Editor NEWA generic schema for describing MIDI implementations
License: Creative Commons Attribution Share Alike 4.0 International
A generic schema for describing MIDI implementations
License: Creative Commons Attribution Share Alike 4.0 International
"Parameter maps, in GS, "master tune" is four bytes at address 40 00 00, and "master volume" is one byte at address 40 00 04. They could be set with two separate data set commands:
F0 41 10 42 12 40 00 00 tt tt tt tt ss F7
F0 41 10 42 12 40 00 04 vv ss F7
But it is also possible to combine them:
F0 41 10 42 12 40 00 00 tt tt tt tt vv ss F7"
see conversation:
https://www.midi.org/forum/request-for-comment-midi-implementation-schema
In sysex we currently have byte and length and then use expr to grab the bit values - this makes it long winded to write things like boolean values.
if we use a point variable instead it would be much easier.
{
byte: 1.6,
length: 0.1
}
vs
{
byte:1,
expr:"b(6)",
revExpr:"b(6,1,val)"
}
It is possible to have the length of a part determined by a value and then subsequent byte start positions are adjusted based on this. The spec should be able to cope with this
It would be handy if Cakewalk INS and DRM files can be used to help create the voice list and sysex outline if they exist. Maybe an upload button on the editor?
At the moment the spec says nothing about how to select the voice you want based on Bank Select MSB (cc #0) and the LSB (cc #32). Thinking a separate doc to list the voices available.
The same can be said for the program lists.
May be a reference in the chart section on where to get the file(s???) of this information. It would have to follow a schema?
The document should state that when using XG (GS too?) that the following sysex and NRPN is said to be included by default i.e. like an extension.
Also the NRPN of Drum filters the LSB is a variable... how should this be handled see
http://web.archive.org/web/20060926124939/http://www.yamaha.co.uk/xg/reading/pdf/xg_spec.pdf
Sysex can have checksums? Find a good example of this and add this to the spec
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.