Constraining lists, whose length is undetermined
Torsten Anders
t.anders at nici.kun.nl
Tue Jan 29 14:47:20 CET 2002
On Monday 28 January 2002 18:32, you wrote:
> t.anders at nici.kun.nl (Torsten Anders) writes:
> > I would like to do music composition / analysis with the means of Oz.
> First, a disclaimer: I know zip about computational music
> composition.
I am no computer scientist either 8~)
> From a solution [..] you can then construct a
> term-based representation [...]
Sorry, but I do not understand "term-based".
> If you start with a commitment to the term-based representation, I
> doubt that you'll be able to really take advantage of constraint
> propagation.
Sorry, but I do not understand "commitment to the term-based representation".
> Term-based representation are well-suited for
> model-generative approaches, but not at all for the model-eliminative
> approach of constraint propagation.
I understand: you can only propagate constraints between variables which are
all "accessible".
I thought it may be possible to compute with lists of undetermined length in
a search mechanism which generates a new child space for each additional
element of that list (a variable). In a certain child space, all list
elements up to the elements introduced in that space are "accessible". So
within that space you may do constraint propagation on all those accessible
elements.
But of course this results in an (much) increased total search space, because
the search will process all those lists with different length independently
and probably there is no way to propagate between partial solutions of
different length.
[Rest of the mail is OT]
> Define a score as consisting of a number of voices (single note tunes).
> Define a voice as an assignment of pauses and pitches to consecutive
> time intervals. Now this is starting to look vaguely like a scheduling
> problem
Thanks for this proposal! But there are little musical forms you can
represent that way (but chorals and fuges are examples). Even for a solo
violin you may need 4 voices at maximum (on for each string). For a piano
(needs a theoretical max of 88 voices) this will become cumbersome to handle.
With a presentation using parallel and sequencial containers at the other
hand you can have an avarage classical piano piece in an (almost) humal
readable way.
But this presentation is limited too. You would need special
constructs to represent events with underspecified time information (like
trills, appogiaturas etc.).)
However, I will keep your suggestion in mind and read about scheduling in Oz.
> Let me offer an other way of thinking about it. A long time ago, I
> read "a generative theory of tonal music" by Jackendoff and someone
> else whose name I can't remember.
F. Lerdahl and R. Jackendorf. 1983. A generative theory of tonal music. MIT
press
> So another way to approach the problem would be to regard it as a
> linguistic problem [...]: give a well-formedness condition
> characterizing the grammatical (i.e. admissible) scores.
> Here again, there are constraint-based approaches which might help...
So far as I know: Lerdahl & Jackendorf were interested to find style
independend analysis criteria, which are therefore rather general (example
for a preference rule: "at a note of longer duration it is more likely we
perceive a grouping border". well-formedness rules are even more general as:
"every note onset must be associated with a beat." [Both cited only by
heart]). It does not lead very far to use such general rules "the opposite
way" to turn them into pieces.
But anyway, if I am going to do an analysis inspired by Lerdahl & Jackendorf
I still have similar problems. An analysis of e.g. the grouping structure
will be represented in a tree. I am starting with the leaves of the tree
(e.g. the notes of a single voice [Lerdahl & Jackendorf only dealt with
single voices]). Now I need to estimate how many notes belong to the first
group and collect them in a list as the elements of the first group container
etc. So again I am constraining a list of undetermined length.
A less clean approach will be just to mark the notes (e.g. by a special
feature of the note). But I can't do that with an integer only: I will
probaly need to analyze more then only one grouping hierachy. And it will be
not a good idea to have a special feature for every grouping layer: this
would become a somewhat clumsy program. But even more important: I do not
know before, how many grouping layer I will need.
I thing I need to continue reading "Concurrent Constraint Programming in Oz
for Natural Language Processing" to see how you did that for language
processing. It shoulded be that different, I dare to thing.
Perhaps I missed your point of proposing a model-generative approach. You are
proposing to generate a score-tree by a certain grammar? I certainly do not
dislike this idea. But a deterministic approach (e.g. like a markov-chain)
will not help me. I like the general idea of constraint programming, because
it allows to describe various aspects (e.g. rules concerning melody vs.
harmonic rules) independently. I would really be glad if I could write some
effcient constraint based music composition stuff (I did something
compareable once using Screamer in Lisp: it worked well but was unusable
slow.). But I understand that you can not propagate over an undetermined
number of elements.
So probably I either solve a subproblem (e.g. set the number of notes before
search) effciently. Or I do something more general but inefficient.
Did I miss your point?
> of course,
> for most music (i.e. not Bach-like :-), you pretty much have to forget
> the whole Shenkerian analysis angle.
Sorry, didn't got that.
Thank you for your comments,
Torsten Anders
-
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/.
More information about the mozart-users
mailing list