JulioHerrlein Posted May 2, 2022 Share Posted May 2, 2022 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)) 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)) Very nice function! Thanks ! Julio Quote Link to comment Share on other sites More sharing options...
Stephane Boussuge Posted May 2, 2022 Share Posted May 2, 2022 (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. JulioHerrlein 1 Quote Link to comment Share on other sites More sharing options...
o_e Posted May 2, 2022 Share Posted May 2, 2022 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! Quote Link to comment Share on other sites More sharing options...
JulioHerrlein Posted May 2, 2022 Author Share Posted May 2, 2022 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 Quote Link to comment Share on other sites More sharing options...
o_e Posted May 2, 2022 Share Posted May 2, 2022 Ok, thanks for the explanation! And in the meantime I did get why position-insert does not work on the omn level, so sorry for the noise! JulioHerrlein 1 Quote Link to comment Share on other sites More sharing options...
JulioHerrlein Posted May 2, 2022 Author Share Posted May 2, 2022 Thanks for the observation, Ole ! Best ! Julio Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.