Jump to content

Dictum question


Recommended Posts

I´m studying the Dictum function.

For example, this:

 

(setf omn4 '((e b4 fs5 e3 a5) (e e5 b5 c4) (e g5 a4 eb3 d4)
             (e c6 b5 a4) (e c5 eb5 gs4) (e b4 f5 f5 fs5 gs5 a5)
             (e cs4 g4 c6) (e gs5)))

(dictum '((:butlast leg :bar (1 3 6))
          (:apply stacc :bar (2 4 5))
          (:any e :apply q :bar (1 3 6))
          (:first p :bar 1)
          (:apply < :bar 1 :event 2)
          (:apply ff :bar 4)
          (:apply > :bar 5)
          (:apply < :bar 7..8)
          (:apply fff :bar 8)
          (:last fermata :bar 8)) omn4)
                        
;give me this as result
                        
                        ((q b4 p leg fs5 < leg e3 mf leg a5) (e e5 mf stacc b5 stacc c4 stacc) (q g5 mf leg a4 leg eb3 leg d4) (e c6 ff stacc b5 stacc a4 stacc) (e c5 > stacc eb5 > stacc gs4 > stacc) (q b4 mf leg f5 leg f5 leg fs5 leg gs5 leg a5) (e cs4 < g4 < c6 <) (e gs5 fff fermata))

 

 

image.png.415954de82fa570072db6aec764b8cc8.png

 

How to get this result ?

 

((q b4 p leg fs5 < leg e3 < leg a5 <) (e e5 < stacc b5 < stacc c4 mf stacc) (q g5 mf leg a4 leg eb3 leg d4) (e c6 ff stacc b5 stacc a4 stacc) (e c5 > stacc eb5 > stacc gs4 > stacc) (q b4 mf leg f5 leg f5 leg fs5 leg gs5 leg a5) (e cs4 pp < g4 < c6 <) (e gs5 fff fermata))

 

image.png.148f6b90f744824da0f30414fd9a42c1.png

 

Very nice function!

Thanks !

Julio

 

Link to comment
Share on other sites

(setf omn4 '((e b4 fs5 e3 a5) (e e5 b5 c4) (e g5 a4 eb3 d4)
             (e c6 b5 a4) (e c5 eb5 gs4) (e b4 f5 f5 fs5 gs5 a5)
             (e cs4 g4 c6) (e gs5)))

(dictum '((:butlast leg :bar (1 3 6))
          (:apply stacc :bar (2 4 5))
          (:any e :apply q :bar (1 3 6))
          (:first p :bar 1)
          (:apply < :bar 1 :event 2..4)
          (:apply < :bar 2 :event 1..2)
          (:apply ff :bar 4)
          (:apply > :bar 5)
          (:first pp :bar 7)
          (:apply < :bar 7 :event 2..3)
          (:apply fff :bar 8)
          (:last fermata :bar 8)) omn4)

S.

Link to comment
Share on other sites

I see a second cs4 in Julios second example and can't find it in Stéphanes solution, what am I missing?

 

And should'nt that work:

(:apply (position-insert 1 'cs4 x) :bar 7)

? It does give a strange result..

 

Thanks for an answer!

Link to comment
Share on other sites

Thanks, Stephane !

 

Ole, I think that the right way to code my previous example is like this:

 

((q b4 p leg fs5 < leg e3 < leg a5 <) (e e5 < stacc b5 < stacc c4 mf stacc) (q g5 mf leg a4 leg eb3 leg d4) (e c6 ff stacc b5 stacc a4 stacc) (e c5 > stacc eb5 > stacc gs4 > stacc) (q b4 mf leg f5 leg f5 leg fs5 leg gs5 leg a5) (e cs4 pp g4 < c6 <) (e gs5 fff fermata))

 

If I put the pp and the < crescendo side by side, we get two C# s. The right way is to put the crescendo for "being carried" by the next g4 note. Looks like each note can carry only one velocity attribute at a time.

 

Best,

Julio

Link to comment
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.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy