Hi, As I said before somewhere, I am currently working on an Assistant *Composer* project, which needs to *write* SVG files containing MIDI information. I'm going to start with the scheme described below, though it will probably change as I go along.
Doing it like this means that clients don't need to look at the graphics *at all* in order to play the score. I could well imagine that this way of doing things may eventually become the basis for an official standard, but such things take time, and some proofs of concept... Okay, so here's how I'm going to start: First, a new namespace: xmlns:midi="http://www.james-ingram-act-two/svgMidi.html" This namespace is going to contain: midi:channel // for use in midi:svgType "Staff" (see below) midi:noteNumbers // for use in midi:svgType "Chord" (see below) midi:velocity // for use in midi:svgType "Chord" (see below) The names of all the MIDI switches, controllers and commands: midi:patch midi:expression midi:volume midi:modulationWheel midi:breathControl midi:celeste midi:pan etc. It will also contain names for sliders - controllers which change continuously until their next instance (or some default value): midi:expressionSlider midi:panSlider midi:portamentoSlider etc. Sliders will probably be defined analogously to SVG's multisegment lines, containing<startValue>,<endValue> and<msDuration> values. The following types need to be defined too: midi:svgType="System" // a container for a sequence of "Staff"s midi:svgType="Staff" midi:svgType="Chord" midi:svgType="Rest" midi:msPos (int) midi:msDuration (int) midi:staffName (string) // My client (the Assistant Performer) // needs this when setting performance // options. "System" midi:msPos is the (default) number of milliseconds from the beginning of a performance. "Chord" and "Rest" midi:msPos are the (default) number of milliseconds from the beginning of the "System". If defined, the "Chord"'s midi:msDuration defines when its noteOffs are sent. By default, the noteOffs are sent at the time of the following "Chord" or "Rest". Here's an example of how I imagine using these names: <svg xmlns="http://www.w3.org/2000/svg" xmlns:midi="http://www.james-ingram-act-two/svgMidi.html" ...> <!-- draw page objects here (title, page numbers etc.) --> <!-- there will be a sequence of Systems in the page --> <g midi:svgType="System" midi:msPos="0"> <!-- draw any System specific graphics here --> <!-- there will be a sequence of Staffs in the System --> <g midi:svgType="Staff" midi:staffName="Flute" midi:channel="0"> <!-- a sequence of Chords, Rests and other objects --> <!-- possibly draw a clef here --> <!-- possibly draw a key signature here --> <!-- possibly draw a time signature here --> <g midi:svgType="chord" midi:msPos="0" midi:msDuration="3500" midi:midiPitches="64 67 83 90" midi:velocity="101" midi:patch="75" midi:expressionSlider="20 110 3500" <!-- etc. --> > <!-- draw the chord symbol (and any grouped objects) --> </g> <!-- end of chord --> <g midi:svgType="Rest" midi:msPos="4000" > <!-- draw the rest (and any grouped objects) --> </g> <!-- end of rest --> <!-- etc. more chords, rests, barlines etc. --> </g> <!-- end of staff --> <!-- more Staffs --> </g> <!-- end of system --> <!-- more Systems --> </svg> Does that make sense? Is there any way to set up a special interest group for working on this subject? Neither this forum, nor [email protected] seem specialized enough. It would also be nice if I could find some sponsorship of some kind... All the best, James p.s. I have also sent this mail to [email protected]. ------------------------------------ ----- To unsubscribe send a message to: [email protected] -or- visit http://groups.yahoo.com/group/svg-developers and click "edit my membership" ----Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/svg-developers/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/svg-developers/join (Yahoo! ID required) <*> To change settings via email: [email protected] [email protected] <*> To unsubscribe from this group, send an email to: [email protected] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

