[gsharp-devel] Architecture question

Robert Strandh strandh at labri.fr
Tue Jul 20 11:39:18 UTC 2004

Christophe Rhodes writes:
 > Robert Strandh <strandh at labri.fr> writes:
 > > The score-pane is supposed to be reusable in other programs that need
 > > to display scores.  For that reason, the score pane should not know
 > > about the internal data structures of Gsharp, nor about its GUI. 
 > It may not need to know about the internal data structures of Gsharp,
 > but it will in that case have to have some internal data structures of
 > its own.

Right, but that internal structure could be entirely dedicated to the
way things are drawn. 

 > There is, as far as I can tell, no way of having a score pane in any
 > meaningful sense without some understanding of what a musical score is
 > and how one would lay one out.  Whether this is achieved by a
 > score-pane datastructure, into which clients of the pane should force
 > their own data for display, or by defining protocols (so that, say,
 > one defines a read-sequence or equivalent operation on some stream,
 > say a stream of midi events, and various functions are responsible for
 > constructing a data structure), is unclear: but if you don't have any
 > knowledge of what a score is in a score-pane then a score-pane doesn't
 > look terribly different from just a blank canvas.

I think you need an idea of what a PRINTED score is.  You need to know
about where and how various music signs are presented (nu pun
intended).  I just do not think it is a good idea to force into the
score pane the fact that music is structured in layers, segments,
etc., the way Gsharp does it. 

 > In other words, I think that if a score-pane is to be useful it must
 > make some assumptions, have some representation, for what it's going
 > to display.  I can't see any viable alternatives (a sequence of
 > PRESENT commands on individual atoms fails immediately because music
 > is not one-dimensional).

I am not so convinced that it fails.  For one thing, I think it would
be the job of the score pane to know in which order things should be
redisplayed, to know about staff steps, to know how to beam one stem
to the other perhaps, etc.  

 > Does OpenMusic (or any non-Gsharp project) have a use case yet?  It's
 > hard to build the right kind of generality without any kind of use
 > case at all...

I don't know about OpenMusic or any other project.  I am just
imagining the protocol to be used by a different application that
would like to display music.  

 > [ What /is/ the status of the OpenMusic work?  I've been trying to
 >   find out... ]

I don't know.  I was supposed to meet one of the authors at the last
notation meeting in Lyon, but he did not show up, supposedly for lack
of funding. 

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