On Sun, 2005-07-03 at 16:15 +0000, Vladimir Savic wrote:
> On electric guitar you can play the same note E on every string. Matrix  
> editor can not use any advantage of this (it's always the same "rectangle"  
> drawn), but notation can. So my thought is -- you've been working on  
> notation editor related sub-editor.

What I original sought to do, for the most part have completed, was a
editor that would allow me to create guitar chord diagrams that could be
displayed above a measure in the notation editor. So that a guitarist
reading a piece of piano music could see that I need to play chord X at
a point in time in the music. There would be no guess work as to how to
play chord X because of this diagram.

> > A Note on a guitar is
> > played based upon two things: base tuning of the string (N Hz)
> 
> This is rg's event.
> 
> > plus note position (fret number).
> 
> Now you're talking about notation editor.

This is where my mind is at present: how to use the data structures
created to contain the guitar chord information with the notation
editor. So far I understand a lot more about the Segment, Event and
PropertyMap relationship (See attached diagram). What I believe is that
my Note and Barre class will contain a set of Events (0..1 for Note and
0..* for Barre) that can be used by the Notation Editor. 

In my diagram I sought to clean up the Event class. What I did was:

1) Move all PropertyMap related template functions to the PropertyMap
class. Since they are inlined template functions working only on the
internal structure inside the PropertyMap object it did not seem
advantageous to keep them in the Event class.

2) Simplified the Event interface to the six basic functions

3) Inserted the EventDB class
  a: Purpose: Provide the data structure for containing Event class
objects.
  b. Internal Data structure:
     1. Map:
        a) Key: Memory address of Event pointer (0x40385445)
        b) Data: Pointer to Event object
  c. Advantage: Eliminates need to have Subordering number.
  d. Association:
     1. An EventDB contains 0 or more Events.
     2. An EventDB is owned by a Segment object.

Now that I understand much more how the Event class works I am unsure
about how to make the bridge between the Note and Barre class and the
Notation Editor.

> > A Barre is a series of Note objects. So I am not
> > sure just yet how to play one of my Note or Barre objects. I hope the
> > picture helps.
> 
> Playing notes is totally out of my scope. I'm sure others can help here!
> What I would like to see, and is your editor related:
> 
>       - entered chords to override ones generated automaticaly for chord name 
>  
> ruler
>       - entered notes not to be shown as segment previews (in studio canvas) 
> -  
> or at least that to be configurable

I am not sure what you are getting at here since I have not seen these
in Rosegarden. Can you point out examples?

---------------------
Remaining Questions:
----------------------
1. Why are the Event Exceptions inside the class? Trying to find some
class is hard this way. It would be nice to have separate files.

2. Why are more than one class declared in the same header file? If it
is merely a janitorial task to move them to separate directories I would
be willing to do this on the guitar_tab_editor branch.

Stephen

Attachment: Event_Database_per_Segment.png
Description: PNG image

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to