From: Vince N. <vin...@gm...> - 2006-03-18 17:59:58
|
Hi All, Quick status report: I now have a first cut of some code, organised (as I planned) as a standalone library with a test harness executable. I'm going to work on it some more tomorrow and then post something for comments. Because there is a fair amount of code (including Doxygen documentation) the simplest thing seems to be to upload it all to a website (including tarballs) and point you guys at it with an introductory email. For now, some background. The "codename Holdsworth" library revolves around the following classes: 1) InstrumentDefinition (number of strings, tuning, highest fret on each st= ring) 2) HandModel (how many frets the hand can span, including "stretches" - fingerings that are possible but to be avoided if possible) 3) Algorithm (decides between possible fingerings that emerge from the interaction of the above two, attempting to create a smooth line) 4) Engine (glues all the above together and presents the interface to the outside world.) 1) 2) and 3) are all base classes which are meant to fan out into different instruments, models, etc. From RG's point of view, as of now things look like this: Upon opening up a segment and going for tab view, RG loads the note data into a Holdsworth::NoteList and passes this to the Engine which has already been initialised with the desired Instrument, HandModel and Algorithm (these being governed by a mix of track properties and user prefs.) The library chucks back a list of Chunks, each chunk being a block of notes in a given position (important if we are going to put position markings in the score.) The notes back are the notes you put in, but with each note now having fret, string and finger set. So from the ChunkList RG can fill in the note properties, at which point the new TabStaff will do its party piece. I imagine that ultimately we may want to streamline this and avoid unnecessary data-shovelling by enabling the library to work directly on the RG note data in the segment; but I would like to retain the ability for the library to be built and used in its own right, so that it can go into KGuitar etc. On 3/10/06, Vince Negri <vin...@gm...> wrote: > On 3/10/06, D. Michael 'Silvan' McIntyre <ros...@gm...>= wrote: > > On Friday 10 March 2006 4:05 am, Vince Negri wrote: > > > > > However, this is an area I'm very interested in and so I'll step > > > forward to implement the feature. > > > > Well, there's not much else I need to say at this point then, is there?= It > > sounds like you've wrestled with all of this before, and you said the = magic > > words "...So I'll step forward to implement the feature." > > hehe... it's a dirty job but someone's got to do it. > > > I think that's pretty much our cue to shut up and let you at it, until = you > > reach whatever point of dealing with implementational details. |