Jump to content

Further Counterpoint questions


Recommended Posts

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)
)


 

Bildschirmfoto 2024-04-15 um 10.09.49.png

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

 

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

 

 

Bildschirmfoto 2024-04-15 um 13.50.55.png

Link to comment
Share on other sites

If I make the adjustment to the (*) we get:

Screenshot 2024-04-15 at 14.52.56.png

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.

Link to comment
Share on other sites

    (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:

image.png.af6edee451eaa04989481741a034b8ba.png

 

but I get this?

image.png.520eb1be19057fbeeae6a35c3bda8ff2.png

Think you for any hint,

best wishes

 

Version 3.0.29235 (3.0.29235)

 

 

 

image.png

Link to comment
Share on other sites

   #|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.

Link to comment
Share on other sites

The example of your previous score is correct.

 

image.png

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.

Link to comment
Share on other sites

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?

 

 

 

Link to comment
Share on other sites

: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 -)))


 

Link to comment
Share on other sites

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)

Bildschirmfoto 2024-04-16 um 18.31.37.png

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