> Henning Thielemann wrote:
> > The current version of Haskore only respects the Tempo change when
> > computing the duration of a music. But it ignores phrases like
> > ritardando. It would be difficult to respect these phrases, because
> > they depend on the player. Even more, they are only considered when
> > linearizing the music (what is called "performance"). It would be
> > inconvenient to pass a 'Context' to 'dur' or 'take' and other time
> > related commands. I'm thinking about resolving temporal effects within
> > the hierarchical Music structure, that is before switching to the
> > linear Performance structure.

On Thu, 18 Oct 2007, Paul Hudak wrote:

> I'd be interested in discussing this issue further.  What do you mean by
> your last sentence below?

 I think of an extended Music structure where a label is attached to each
node (primitive, serial or parallel composition). This label can store the
duration of the contained music, respecting temporal effects like Tempo
and Ritardando. Especially primitives then have two values for duration:
The original (local) duration and the duration which is altered according
to temporal effects. 'take' is then implemented the following way: Attach
the sub-music durations to all nodes, respect temporal phrases. In the
labeled structure you can easily find the cutting points for 'take'. Then
cut the according notes and rests. Then convert back to the unlabeled
Music structure. There remains the problem, that undoing ritardando means
computing square roots, which is not possible in general with Rationals. I
could only do that approximately. :-(
 Flattening phrases within the hierarchical music structure turns out to
be useful also for the application of software synthesis effects. If I
want to apply a software synthesis effect like a reverb to a part of the
music, today I must do this after conversion to the linearized Performance
structure. But in the performance the information of which event belongs
to which musical part is lost. However, since there is a class of phrases
(maybe even all phrases?) which can be expressed using general Music, I
could expand those phrases within the hierarchical Music, then manage
synthesizer effects, then linearize to a performance ready for MIDI,
CSound, or SuperCollider. In case of pure Haskell sound synthesis a
linearized performance is even not needed.
_______________________________________________
haskell-art mailing list
haskell-art@lists.lurk.org
http://lists.lurk.org/mailman/listinfo/haskell-art

Reply via email to