[gsharp-devel] Architecture question

Christophe Rhodes csr21 at cam.ac.uk
Tue Jul 20 10:07:22 UTC 2004

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.

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.

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).

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...



[ What /is/ the status of the OpenMusic work?  I've been trying to
  find out... ]
http://www-jcsu.jesus.cam.ac.uk/~csr21/       +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%")    (pprint #36rJesusCollegeCambridge)

More information about the gsharp-devel mailing list