Jump to content
Sign in to follow this  
torstenanders

Constructing and deconstructing scores

Recommended Posts

The functions omn and make-omn are powerful tools to construct and deconstruct scores of multiple parameters. However, beyond the parameter keywords that are well-documented (:length, :pitch, :velocity, and :articulation) it seems there are other keywords that represent important parameters of the score that should not be omitted (e.g., when we are transforming scores, and do not want to loose important characteristics).

 

Here is an example. When the following melodic line is deconstructed, then beyond the well-documented parameter keywords it also shows the parameters :duration and :leg. If the :leg parameter would be omitted in the construction of the (possibly transformed) score, then all legato information would be stripped from the original music.

 

(omn nil '((-3h fs4 pp leg g4 leg) (h a4) (-q cs5 mp< ord) (q c5 f stacc -) (-5h - c5 pp leg e5 < leg f5 < leg) (h gs4 pp)))

 

(:length ((-1/6 1/6 1/6) (1/2) (-1/4 1/4) (1/4 -1/4) (-1/10 -1/10 1/10 1/10 1/10) (1/2)) 
 :pitch ((fs4 g4) (a4) (cs5) (c5) (c5 e5 f5) (gs4)) 
 :velocity ((pp pp) (pp) (mp<) (f) (pp < <) (pp)) 
 :duration ((1/6 1/6) (1/2) (1/4) (1/4) (1/10 1/10 1/10) (1/2)) 
 :articulation ((- -) (-) (ord) (stacc) (- - -) (-)) 
 :leg ((2) (-) (-) (-) (3) (-)))

 

Now, my questions are as follows.

 

(1) Do there exist more than the two additional parameters :duration and :leg shown above? For example, have other special articulations their own OMN keywords?

 

(2) Where are all these parameters documented?

 

(3) Are these parameters stable, or will they possibly change in future?

 

Janusz, in your process-omn function we recently discussed, you used (omn-plist :attribute <my-sequence>) instead of (omn :articulation <my-sequence>). Should omn-plist perhaps be used instead for more stable transformation functions when deconstructing scores? If so, it would be helpful to have that function also documented :)

 

Thanks a lot! 

 

Best,

Torsten

Share this post


Link to post
Share on other sites

The OMN-PLIST and OMN-PROCESS function is not documented because is a not part of the release yet. (work in progress).

 I have created the new function in order to get all the attributes and articulations symbols into one list:

:leg
:ped :ped1 :half-ped :half-ped1 :sost-ped :sost-ped1 :una-corda :una-corda1
:15mb :15ma :8vb :8va
:kgliss-ch :kgliss :gliss4 :gliss3 :gliss2 :gliss

 

The OMN function will stay as it is for now.

The OMN-PLIST function has 5 types: length, pitch, velocity, duration and articulation.

The NIL will return all types.

(setf omn '((-3h fs4 pp leg g4 leg) (h a4) (-q cs5 mp< ord)
            (q c5 f stacc -) (-5h - c5 pp leg e5 < leg f5 < leg) (h gs4 pp)))

(omn-plist nil omn)
=> (:length ((-1/6 1/6 1/6) (1/2) (-1/4 1/4) (1/4 -1/4) (-1/10 -1/10 1/10 1/10 1/10) (1/2))
    :pitch ((fs4 g4) (a4) (cs5) (c5) (c5 e5 f5) (gs4))
    :velocity ((pp pp) (pp) (mp<) (f) (pp < <) (pp))
    :articulation ((leg leg) (-) (ord) (stacc) (leg leg leg) (-)))

 

grace-note will produce :duration parameters

(setf omn2 '((-3h fs4 pp leg g4 leg) (h a4) (-q cs5 mp< ord s c4 app e cs5)
            (q c5 f stacc -) (-5h - c5 pp leg e5 < leg f5 < leg) (h gs4 pp)))

(omn-plist nil omn2)
=> (:length ((-1/6 1/6 1/6) (1/2) (-1/4 1/4 0 1/8) (1/4 -1/4) (-1/10 -1/10 1/10 1/10 1/10) (1/2))
    :pitch ((fs4 g4) (a4) (cs5 c4 cs5) (c5) (c5 e5 f5) (gs4))
    :velocity ((pp pp) (pp) (mp< mf mf) (f) (pp < <) (pp))
    :duration ((1/6 1/6) (1/2) (1/4 1/16 1/8) (1/4) (1/10 1/10 1/10) (1/2))
    :articulation ((leg leg) (-) (ord app -) (stacc) (leg leg leg) (-)))

 

Test:

(setf plist (omn-plist nil omn))
(apply #'make-omn plist)
=> ((-3h fs4 pp leg g4 leg) (h a4 pp) (-q cs5 mp< ord)
    (q c5 f stacc -) (-5h - c5 pp leg e5 < leg f5 < leg) (h gs4 pp))

 

The OMN-PROCESS function still needs more work.

 

Share this post


Link to post
Share on other sites

So, I understand that using OMN-PLIST is the way to go for transforming OMN expressions by a deconstruction-transformation-construction-function, once that is finalised.

 

Thanks!

 

Best,

Torsten

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Topics

    • By o_e
      Hi,
      I have a simple question, is it possible to display multiple scores in the workspace. Now, the old score gets overwritten with the new one which make things difficult to compare (I always make a screenshot as a workaround)?
       
      thanks!
       
      ole

    • By Andy
      I think I am correct in saying there can be only one def-score per Composer document? Is that correct?
      Thanks
    • By Jorvd
      Hi,

      I've been following this thread in an attempt to build one score from multiple projects:

      https://opusmodus.com/forums/topic/415-working-with-large-pieces-in-multiple-sections/?tab=comments#comment-1014
       
       
      I've tried both the approach from Stephane and Janusz but I can't seem to play back the scores after each other.
      Instead when I compile the three different scores it plays them all back at the same time/on top of each other.
      I'm probably doing something stupid somewhere but I can't figure out what, here's a screenshot of my project:
       
       

×
×
  • Create New...