From: Bill Z. <wrz...@po...> - 2005-04-01 03:03:19
|
Hey looky, I have two cents too! Here's my suggestion: <patchlib> <patch synth="CZ" name="fatlottagood"> <description>sounds like that sound from the song about the people .. y'know the one</description> <field1>CZ401A</field1> <field2>CZ401.SYX</field2> <field name="author">Mr. Bill</field> <data> 6238768263917634762873 7169374619384612387468 1349061032964912734883 </data> </patch> <etc./> </patch> We can use <author> or <field name="author"> as the mood strikes us; the former requires we update the schema (assuming we maintain a schema at all) while the latter allows new fields to be freely introduced. <data> can be base 16 or 64 or something, and is generated by the Driver superclass. Sub-classes can override and provide a human-readable XML element tree if they really want. The synth's name for the patch would be embedded in <data>; whether <patch name> has the same value is optional. I haven't used banks, but they'd probably look like <bank synth=".." name=".."> <patch name> .. </patch> </bank> A scene might look like: <scene name=".."> <patch synth=".." name=".." location="Internal/04"> .. </patch> </scene> Location is a slash-separated series of tokens that define a slot on the synth. The exact tokens are defined by the synth driver. Converting from the old format is easy. It's a serialized object stream, right? We can create a converter that deserializes the file, then produces the new object model on command. (We're renaming packages; that counts as a new object model.) You might look into the readResolve method, but I don't think that'll be necessary. http://java.sun.com/j2se/1.4.2/docs/guide/serialization/spec/input.html#wp5903 Unfortunately, I've no time to code this myself this spring, but I'm happy to heckle. =^p -Bill |