[gsharp-devel] future development of Gsharp

Robert Strandh strandh at labri.fr
Sun Jun 18 02:41:33 UTC 2006


Hello,

Here is some food for thought.

It seems to me that the user would want to preserve between editing
sessions various pieces of information that are not directly
associated with the music contents of the buffer, such as the value of
the spacing style (which determines how space relates to time), the
smallest distance between notes (which determines the density of the
score).  Furthermore, the user certainly would like to edit several
"views" of the score, such as a full orchestra view and several
"parts" views, and those views should be preserved between sessions as
well.

In my opinion, the spacing style and the smallest distance between
notes are also part of a view, simply because one can imagine wanting
different values for these parameters in a single editing session.
The current cursor position is also part of the view.

On the other hand, Gsharp should be able to load a buffer from disk
without any preexisting view, say if the buffer contents has been
generated by some other program.  

I suggest solving these problems as follows:  A Gsharp file should
contain the buffer (much like now) without any view-related parameters
followed by zero, one, or several named views.  When a file is loaded
into Gsharp, if there are no views following the buffer description, a
default one is created (a full orchestra view with default parameter
values).  When a buffer is saved, existing views are appended to the
file.  

This system makes it possible for programs that don't deal with views
to read and write Gsharp files (by only reading and writing the buffer
contents) while still allowing for Gsharp to preserve views between
editing sessions.  

Thoughts?
-- 
Robert Strandh

---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------



More information about the gsharp-devel mailing list