Mozart and Music (was Mozart and MIDI)

Torsten Anders t.anders at qub.ac.uk
Tue Jun 3 14:59:16 CEST 2003


On Tue, 2003-06-03 at 09:30, Maarten van den Dungen wrote:
> How far are you at present, and what it the scope and timeline of your 
> research?
I am glad that I got a studentship for three years. I started last
autumn, still quite some time left :-)

Its a bit hard for me to say how far I am in a few sentences. If you are
interested, I may send you two papers (ICMC 2000, ICMC 2002) to tell you
where I started with the subject music composition & constraints. I may
also send you my diploma thesis (2000) -- if you want to read German ;-)

		---

Currently, one of my main research questions is: how can I declare music
form in a nondeterministic way to add constraints on the form. I am
looking for a score, which is a graph data structure (it may be a tree
in a restricted setting) of score elements (e.g. notes) and containers
(e.g. voices). Both, elements and containers, have numeric parameters
(start time, duration, pitch ...) represented by FD variables.

Now, my problem is, that before search I do not know the number of the
elements nor containers I am looking for. E.g., if you are looking for a
melody, you do not know the number of notes beforehand. Fixing the note
number would be a very artificial restriction, which excludes many
otherwise valid solutions. But not fixing the number means, I only learn
the number of my FD variables during search, i.e. I can not hand them to
the distribution strategy in the first place. 

Currently, I have different ideas to handle this -- but no real clue. It
is probably a bad idea to add new variables during search, because then
propagation can not work anymore (e.g. FD.distinct can not reduce
variable domains before the number of variables involved is known).
Instead I somehow must express the full search problem (e.g. the
possible maximal number of score items) in the first place. I only can
use propagation and distribution to _reduce_ the problem. (Question: is
this correct?)

I am thinking about finite sets to represent the elements in a
container. In that case, I may use the FD variables of the FS as indices
to the elements of the container represented by the set. But there are
still a lot of open questions (Must I start with lots of score items
which are later excluded from the score? How can I support propagation
-- if score items not yet know where they belong to, then propagation is
blocked). 

So, in short my question is: how to constraint a graph/tree of
parameterised data, namely how to constraint both the shape of the graph
and the parameters of its nodes. Any comments?

	---

At the more user oriented side, I am working on a environment which
offers a score data representation to the user, incl. I/O to various
formats. Constraint generators allow the user to declare constraints on
the score in a high-level manner. As an example, a simple but generic
constraint generator may look like this:

{ForAll {FilterScore Score TestFn} ConstraintProc}


> Not too many people have sufficient knowledge (and liking) of both music 
> and computers. 
Actually, my background is music -- I studied composition. So, I am very
grateful for all comments I got from people of the technical world at 
this highly responsive mailing list!! Believe me, you help me more then
any supervisor here can do ;-)

Kind regards,
Torsten

PS: Ik was ook twee jaaren in Nijmegen, heb als een programmeur an de
Universiteit gewerkt. Wij hebben nog stets frienden in Arnhem (sorry for
mijn fouten -- I never really studied Dutch ;-)

-- 
Torsten Anders
Sonic Arts Research Centre
Queens University Belfast
Tel: +44 28 9027 4831 (office)
     +44 28 9066 7439 (private)



-
Please send submissions to users at mozart-oz.org
and administriva mail to users-request at mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.
Please send bug reports to bugs at mozart-oz.org.





More information about the mozart-users mailing list