I have been playing with the idea myself of using cocoon as a sort of binary transformation engine (so not just XML). I was wondering if I wouldn't be abusing the framework too much in this way, as it was built for XML transformations mainly :-) Still i think that the generate-transform-serialize design contract can be applied to a few other domains (think direction audio, imaging, video, 3D etc)..
I don't know much of midi but i do know svg and cocoon, maybe we can find a common ground?
Regards Jorg
Mark Leicester wrote:
Hello,
I have just 'assembled' a Cocoon[1] generator for MIDI files. This component takes a MIDI file as its source and then generates an XML representation of the file in XMidi. XMidi was developed several years ago by Peter Loeb. I was looking for an excuse to develop a Cocoon component and I stumbled across his site[2] and his source code for converting MIDI into a DOM representation. I converted his implementation to SAX. Peter's code seems to have lain untouched for some time and is released under the MIT license[3].
My plans are to: 1. Implement a MIDI serializer (Peter Loeb's code includes an XMidi to MIDI converter also) so that round trips are possible. 2. Create some XMidi to SVG transformers so that graphical (e.g. Western musical notation, or Schenkerian analysis perhaps!) representations of MIDI files can be rapidly generated. 3. Create some transformers to do some amusing musical transformations of the XMidi, e.g. inversion, retrograde etc.
I realise that MIDI format provides very little presentation information thus limiting the scope of my second aim, but this could well provide the start of something that encompasses other XML formats for music (such as NIFF XML, MusicML, or perhaps a new markup for music).
Does anyone else on the Cocoon list have an interest in wrestling with the mismatch between markup and music?
[1] http://cocoon.apache.org/ [2] http://www.palserv.com/XMidi/ [3] http://www.opensource.org/licenses/mit-license.html
Cheers, Mark Leicester
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
