Frost wrote:Metadata editor should be released in few weeks according to Nicholas (right?), so the file format should be designed by now (I'm curious about how the finger information is added to a specific note)...
The first pass of the editor (that will only have simple fields like title, composer, difficulty, and tags) is nearly finished. This first effort was to basically get my foot in the door with metadata. Once it's complete, the half-dozen or so tasks on the voting list down in the "with dependencies" section will be unleashed on the masses and I fully expect them to be voted up rapidly.
That said, AFP is a special case. I'll be "accepting" the "Manual Note Fingerings" feature (which now desperately needs to be renamed and re-worded) for 0.7.1 regardless of votes. With results as promising as yours and with the potential impact being as strong as it is, it would be a mistake not to make it happen as soon as possible.
(I will also have to take that little lock symbol off the feature. Since note fingerings will be community-developed, it doesn't make any sense for me to make any money from it.)
Anyway, to answer your other question, I'm *also* curious how finger information will be added to specific notes.
At first, the (open source) C# metadata editor was just going to be a decent code-example for community members to see how to parse and serialize the metadata XML. But, there was always the tricky problem of making note and track information available too. (I wasn't tackling that this time around, but I have had it in mind the whole time.)
My solution for now, to get the most code-reuse as possible, was to make a little (C++) library DLL out of my Synthesia MIDI code that could do things like load, format-0 MIDI splitting, quantization, etc. and make it available via some interop layer in the C# editor.
Now, if I go to all that trouble, and also taking into account that the first community effort we're seeing (before the editor has even been released!) also happens to be a .NET app, I'm wondering if I shouldn't take the editor a tiny bit further and make it a platform that supports plug-ins.
To make your app a plug-in, you'd basically implement some interface. One of the interface methods would be to return a Windows.Forms.Control for display on a generated tab. Plug-ins would be placed in a nice song-based context where they could ask the top-level app for things like the song's notes. Finally, when it came time to load/save, each plug-in would get its chance to read/write from the xml element of that particular song.
I'm not sure how that sounds yet. What do you think?