AndreOktave Posted April 15 Share Posted April 15 I found some outcome, which I don't understand: 1) The * in the methods seems to work not correctly with oddmeter bars (see start of Viola bar 5 ff) 2) If I use la2 and la3 in global methods it seems not working correct (see bar bar 11 ff Viola) Wouldn't it perhaps even be an interesting possibility if you could shift certain parts of the voices by rhythmic values in a controlled way, so that phrases could start earlier or later? Or is that already possible? thank you very much best wishes (Progn (init-seed 73549) (setf seq1 '(s c4 mf stacc e. cs4 mp ten+def e e4 p leg q. fs4 pp def)) (setf seq2 '(e f4 p leg e. g4 def e bb4 mp> leg qs b4 def)) (setf seq3 '(e. eb4 p leg qs d4 def s gs4 mf leg e. a4 def)) (setf dictum-a '( #|1|# ((1 1 1) :span nil :methods (- (ra t4) (i t5 )) :tempo 84) #|2|# ((1 2 1) :span 4/8 :methods ((la3 t10 i) (ra t-9) (la2))) #|3|# ((3 * 3) :span 5/8 :methods ((i t5 lis) - (t2 i)) ) #|4|# ((1 - 1) :span nil :methods (r - (ra t-8))))) ;;============= (setf dictum-b '( #|5|# ((- 2 -) :span nil :methods (- t-12 -) :tempo 112) #|6|# ((1 - 1) :span nil :methods (r - (ra t-8))))) ;;=============== (setf dictum-c '( #|7|# ((- 3 -) :span nil :methods (ld22 t-12 ld22) :tempo 63) #|8|# ((1 2 1) :span 5/8 :methods (tie-bar - (t6 rl ri))))) ;;=============== (setf dictum-d '( #|9|# ((2 - 2) :span nil :methods (ra - t2) :tempo 112) #|10|# ((3 3 3) :span nil :methods ? ) #|11|# ((1 1 1) :sequence (1 2 3) :span nil :methods ((ra la2) (ra la2) (ra la2)):tempo 112))) ;;=============== (setf dictum-e '( #|12|# ((1 1 1) :span nil :methods (- - (i t5 )):tempo 96) #|13|# ((1 1 1) :span 4/4 :methods ((ra la2 ) (ra la2 t-12) (ra la2 t-24))))) (setf globals-a '(- - -)) (setf globals-b '(- - -)) (setf globals-c '(- - -)) (setf globals-d '(la3 la2 la3)) (setf globals-e '(- - -)) (counterpoint (list seq1 seq2 seq3) dictum-a :global-methods globals-a :index 'sec-a) (counterpoint (list seq1 seq2 seq3) dictum-b :global-methods globals-b :index 'sec-b) (counterpoint (list seq1 seq2 seq3) dictum-c :global-methods globals-c :index 'sec-c) (counterpoint (list seq1 seq2 seq3) dictum-d :global-methods globals-d :index 'sec-d) (counterpoint (list seq1 seq2 seq3) dictum-e :global-methods globals-e :index 'sec-e) (setf violin (assemble-seq sec-a1 sec-b1 sec-c1 sec-d1 sec-e1)) (setf violindic (dictum '((:if qs :do trem :bar (3..9)) (:do ponte :bar (35..40))) violin)) (setf viola (assemble-seq sec-a2 sec-b2 sec-c2 sec-d2 sec-e2)) (setf violadic (dictum '((:if qs :do trem :bar (3..9)) (:do ponte :bar (35..40))) viola)) (setf violoncello (assemble-seq sec-a3 sec-b3 sec-c3 sec-d3 sec-e3)) (setf violoncellodic (dictum '((:if qs :do trem :bar (3..9)) (:first pizz :bar 4 ) (:do ponte :bar (35..40))) violoncello)) (ps 'VSL_ss :vslv1 (list violindic) :vslvla (list violadic) :vslvlc (list violoncellodic) :tempo (assemble-seq tempo-sec-a tempo-sec-b tempo-sec-c tempo-sec-d tempo-sec-e) ) (init-seed nil) ) Quote Link to comment Share on other sites More sharing options...
opmo Posted April 15 Share Posted April 15 You use in the global methods augmentation, therefore you are changing the size of the bars. The global methods are not design for augmentation, with other words you should not use aug in globals. The good news is I can make the globals work the way you expect and preserve the original or the given span. Note: 1) Not correct: (setf seq1 '(s c4 mf stacc e. cs4 mp ten+def e e4 p leg q. fs4 pp def)) (setf seq2 '(e f4 p leg e. g4 def e bb4 mp> leg qs b4 def)) (setf seq3 '(e. eb4 p leg qs d4 def s gs4 mf leg e. a4 def)) should be: (setf seq1 '((s c4 mf stacc e. cs4 mp ten+def e e4 p leg q. fs4 pp def))) (setf seq2 '((e f4 p leg e. g4 def e bb4 mp> leg qs b4 def))) (setf seq3 '((e. eb4 p leg qs d4 def s gs4 mf leg e. a4 def))) 2) Not correct, you don't have any sequence of sequences: #|11|# ((1 1 1) :sequence (1 2 3) :span nil :methods ((ra la2) (ra la2) (ra la2)):tempo 112)) should be: #|11|# ((1 1 1) :span nil :methods ((ra la2) (ra la2) (ra la2)):tempo 112)) I would advise you to take some lessons with Stephane about the counterpoint. Quote Link to comment Share on other sites More sharing options...
AndreOktave Posted April 15 Author Share Posted April 15 thank you for the correction! your score with changed global-method: if I use (setf globals-d '(- - -)(line 53) instead I get nearly the same as your score example(see picture). The fact that the viola is an eighth left (the * in bar 3) makes it more difficult to understand what is happening, and I do not understand the different pitches compared with your score. ===== global augmentation should double the length of a bar in my understanding (of course I could half the tempo instead, but than it affects all voices at the same time, so I find it interesting using (la2 la3 -) at the same time) Anyway, this all is very easy in any score editor and not a real problem, same with moving the material left or right in time. I really appreciate the software, it has played a role in my work in recent years, but never actually as a complete algorithm... best wishes Quote Link to comment Share on other sites More sharing options...
opmo Posted April 15 Share Posted April 15 Looks like the problem here is the pedal notation (*). Will check. Quote Link to comment Share on other sites More sharing options...
opmo Posted April 15 Share Posted April 15 If I make the adjustment to the (*) we get: The SPAN is the master and if not given the longest voice is the master, what ever the augmentation is. If you want true expansion of the augmentation then you need to change (if given) or add a span value (times 2) - this is why there is a span in the counterpoint function. You cound create a patterns before with the augmentation this way you would get what you are looking for without playing with the span. Quote Link to comment Share on other sites More sharing options...
opmo Posted April 15 Share Posted April 15 Update 3.0.29235 fixed the pedal (*) span. Quote Link to comment Share on other sites More sharing options...
AndreOktave Posted April 15 Author Share Posted April 15 thank you very much! Quote Link to comment Share on other sites More sharing options...
AndreOktave Posted April 15 Author Share Posted April 15 (Progn (setf seq1 '((s c4 p leg e. cs4 mp ten+def e e4 p leg q. fs4 pp def ))) (setf seq2 '((e f4 p leg e. g4 def e bb4 mp> leg qs b4 def))) (setf seq3 '((e. eb4 p leg qs d4 def s gs4 mf leg e. a4 def))) (setf dictum-d '( #|31|# ((2 - 2) :span 6/4 :methods ((la2 ra ) - (la2 ra t-12)) :tempo 112) #|32|# ((3 3 3) :span 3/4 :methods (- - - )) #|33|# ((- 2 - ) :span 6/4 :methods ((ra la2) (ra la2 ) (ra la2 t-12 )):tempo 112))) (setf globals-d '(- - -)) (counterpoint (list seq1 seq2 seq3) dictum-d :global-methods globals-d :index 'sec-d) (ps 'VSL_ss :vslv1 (list sec-d1) :vslvla (list sec-d2) :vslvlc (list sec-d3) :tempo tempo-sec-d ) ) With this code I would expect: but I get this? Think you for any hint, best wishes Version 3.0.29235 (3.0.29235) Quote Link to comment Share on other sites More sharing options...
opmo Posted April 15 Share Posted April 15 #|31|# ((2 - 2) :extend s :span 6/4 :methods ((la2 ra) - (la2 ra t-12)) :tempo 112) #|32|# ((3 3 3) :extend s :span 3/4 :methods (- - - )) #|33|# ((- 2 - ) :extend s :span 6/4 :methods ((ra la2) (ra la2 ) (ra la2 t-12 )):tempo 112))) Just doing this without testing, but I think this is what you need to do. Quote Link to comment Share on other sites More sharing options...
AndreOktave Posted April 15 Author Share Posted April 15 thank you, yes, works like this, the ra function throws the notes out of sync, I understand, how to solve: ((2 - 2) :extend s :span 6/4 :methods ((la2 r ) - (la2 ra t-12)) :tempo 112) ? Quote Link to comment Share on other sites More sharing options...
opmo Posted April 16 Share Posted April 16 The example of your previous score is correct. Let's check the expression here: #|31|# ((2 - 2) :span 6/4 :methods ((la2 ra) - (la2 ra t-12)) :tempo 112) (setf pat2 '(e f4 p leg e. g4 def e bb4 mp> leg qs b4 def)) (setf 1-step (fit-to-span 6/4 pat2)) => (e f4 p leg e. g4 def e bb4 mp> leg qs b4 p def -h.) (setf 2-step (unfold 'om '(la2 ra) 1-step)) => (-w. he b4 p def q bb4 mp> leg q. g4 p def q f4 leg) (length-span 6/4 2-step) => (-w.) As you can see you need to understand the process of your structure. The (ra) is gen-retrograde, this is why you get (-w) in the first and third voice. Quote Link to comment Share on other sites More sharing options...
AndreOktave Posted April 16 Author Share Posted April 16 I understand that ra is gen-retrograde and that if I use :extend s it starts as wanted and is displayed correctly, that is the solution for the example: #|31|# ((2 - 2) :extend s :span 6/4 :methods ((la2 ra) - (la2 ra t-12)) :tempo 112) perfect, violin and violoncello are displayed! but, different example: with :extend s this example #|31|# ((2 - 2) :extend s :span 6/4 :methods (la2 - (la2 ra t-12)) ) shows the Violin in the score and with :extend e #|31|# ((2 - 2) :extend e :span 6/4 :methods (la2 - (la2 ra t-12)) ) the score shows the violoncello I could make a new seq (problem that it is a 6/4?): (setf seq4 '(he b4 p def q bb4 mp> leg q. g4 p def q f4 leg)) #|31|# ((2 - 4) :extend s :span 6/4 :methods (la2 - t-12) ) but that does not work either? Quote Link to comment Share on other sites More sharing options...
opmo Posted April 16 Share Posted April 16 :extend s means adding rest at the beginning if the span is lager then the given pattern. The la2 will double the rests. Nothing wrong with your code and with the result. To see how all this is work I suggest to make a very simple pattern and see how all this is working. (setf pattern '(q c4 e4 g4 b4)) (setf dictum1 '((1 - 1) :extend s :span 6/4 :methods (la2 - (la2 ra t-12)))) (setf dictum2 '((1 - 1) :extend e :span 6/4 :methods (la2 - (la2 ra t-12)))) (setf dictum3 '((1 - 1) :extend s :span 6/4 :methods (la2 - t-12))) (setf dictum4 '((1 - 1) :span 6/4 :methods (la2 - t-12))) (counterpoint (list pattern) dictum1) => (((-q - - - h c4 mf)) ((-q - - - - -)) ((h b3 mf g3 e3))) (counterpoint (list pattern) dictum2) => (((h c4 mf e4 g4)) ((-q - - - - -)) ((-q - - - h b3 mf))) (counterpoint (list pattern) dictum3) => (((-q - - - h c4 mf)) ((-q - - - - -)) ((-q - q c3 mf e3 g3 b3))) (counterpoint (list pattern) dictum4) => (((h c4 mf e4 g4)) ((-q - - - - -)) ((q c3 mf e3 g3 b3 -q -))) Quote Link to comment Share on other sites More sharing options...
AndreOktave Posted April 16 Author Share Posted April 16 what would be the code with your pattern: (setf pattern '(q c4 e4 g4 b4)) For this Quote Link to comment Share on other sites More sharing options...
opmo Posted April 16 Share Posted April 16 (setf pattern '(q c4 e4 g4 b4)) (setf dictum '((1 - 1) :span 6/4 :methods (la2 - (la2 t-12 r)))) (counterpoint (list pattern) dictum) Quote Link to comment Share on other sites More sharing options...
AndreOktave Posted April 16 Author Share Posted April 16 thank you very much for your passion, this will really be the last question on this issue: With the pattern (setf pattern '(q. c4 e e4 q g4 b4)) is there a code for this: (pitch and rhythm are retrograde) Quote Link to comment Share on other sites More sharing options...
opmo Posted April 16 Share Posted April 16 (setf pattern '(q. c4 e e4 q g4 b4)) (setf dictum '((1 - 1) :extend (- - s) :span 8/4 :methods (la2 - (la2 ra t-12)))) (counterpoint (list pattern) dictum) Quote Link to comment Share on other sites More sharing options...
AndreOktave Posted April 16 Author Share Posted April 16 Perfect, absolutely brilliant, I just hadn't gotten that out, thank you very much, now I can sleep peacefully again 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.