Jump to content

JulioHerrlein

Members
  • Posts

    853
  • Joined

  • Last visited

Everything posted by JulioHerrlein

  1. Thanks, Janusz Here is the breakdown of the equivalent permutations for the example 012 021 102 120 201 210 013 031 103 130 301 310 014 041 104 140 401 410 015 051 105 150 501 510 023 032 230 203 302 320 024 042 204 240 402 420 025 052 205 250 502 520 034 043 304 340 403 430 035 053 305 350 503 530 045 405 450 504 540 054 125 152 215 251 512 521 123 132 213 231 312 321 124 142 214 241 412 421 135 153 315 351 513 531 134 143 314 341 413 431 145 154 415 451 514 541 234 243 324 342 423 432 235 253 325 352 523 532 245 254 425 452 524 542 345 354 435 453 534 543 The first column is the unique "seed" that gives the other permutations Just the seeds 012 013 014 015 023 024 025 034 035 045 125 123 124 135 134 145 234 235 245 345 Seeds above, arranged as complementary sets 012,345 013,245 014,235 015,234 023,145 024,135 025,134 034,125 035,124 045,123
  2. According to the definition of the function: COMBINATION will return a list of all the combinations N elements in length from a list. There is something strange... For example: (combination 3 '(0 1 2)) gives ((0 1 2) (0 2 1) (1 0 2) (1 2 0) (2 0 1) (2 1 0)) and violate what the "unique combination" state you mentioned, since 0 1 2 is also (0 2 1) Looks like permutation... I´m looking for all n-permutations of a larger set, like 3 element permutations from a group of 6 elements (0 1 2 3 4 5). Maybe having the possibility of choosing the cardinality of permutations... Something like (permute 3 '(0 1 2 3 4 5)) should give the result I mentioned before (120 possbilities) Best, Julio
  3. Dear All, Recently, I used the function combination and got some strange result I did this (combination 3 '(0 1 2 3 4 5)) I got this result - 60 combinations (0 1 2) (0 1 3) (0 1 4) (0 1 5) (0 2 3) (0 2 4) (0 2 5) (0 3 4) (0 3 5) (0 4 5) (1 2 3) (1 2 4) (1 2 5) (1 3 4) (1 3 5) (1 4 5)(2 3 4) (2 3 5) (2 4 5) (3 4 5)(5 0 1) (5 0 2) (5 0 3) (5 0 4) (5 1 2) (5 1 3) (5 1 4) (5 2 3) (5 2 4) (5 3 4) ,(4 5 0) (4 5 1) (4 5 2) (4 5 3) (4 0 1) (4 0 2) (4 0 3) (4 1 2) (4 1 3) (4 2 3)(3 4 0) (3 4 1) (3 4 2) (3 5 0) (3 5 1) (3 5 2) (3 0 1) (3 0 2) (3 1 2) (2 3 0) (2 3 1) (2 4 0) (2 4 1) (2 5 0) (2 5 1) (2 0 1) (1 2 0) (1 3 0) (1 4 0) (1 5 0) There is something I did not get ? Best, Julio The expected result should be 6 x 5 x 4 = 120 Like this... 012 013 014 015 021 023 024 025 031 032 034 035 041 042 043 045 051 052 053 054 105 102 103 104 125 120 123 124 135 130 132 134 145 140 142 143 154 150 152 153 204 205 201 203 214 215 210 213 234 235 230 231 243 245 240 241 253 254 250 251 302 304 305 301 312 314 315 310 321 324 325 320 341 342 345 340 351 352 354 350 401 402 403 405 410 412 413 415 420 421 423 425 430 431 432 435 450 451 452 453 504 501 502 503 514 510 512 513 524 520 521 523 534 530 531 532 543 540 541 542
  4. Cool !! Some live stream ? Best ! Julio
  5. Midi Entry provides some interesting ways to do some shortcuts like opening parenthesis, entering rhythms (t s e q h w) , etc.
  6. Acccording to the book (p. 156), there is a missing b4... Should be, like (pitch-transpose 5 (trope-hexachord 43)) ((f4 fs4gs4bb4c5d5) (g4a4b4cs5eb5 e5)) But there is a b4 missing
  7. Another one ! Only 5 notes in TROPE 43 (second hexachord) (trope-hexachord 43) ((c4 cs4eb4f4g4a4) (d4e4gs4bb4 b4)) Yes, I´m researching Hauer now, for writing a paper ! Opusmodus is helping me a lot ! ! Best ! Julio
  8. Dear All, The second half of trope 21 is showing a note repetition. (trope-hexachord 21) ((c4 b3 bb3 eb3g3a3) (d3fs3gs3 cs3f3 fs3)) The pitch-class fs3 appears twice, comprising a 5 note set (it should be an hexachord, a 6 note-set) (d3fs3gs3 cs3f3 fs3)) According to Sedivy (2011, pg 134) the trope 21 is shown below: In Sedivy´s book, this trope are shown starting in E, thus (pitch-transpose -8 (trope-hexachord 21)), thus ((e3 eb3 d3 g2b2cs3) (fs2bb2c3 f2a2 bb2)) There is a repetition of two Bb pitch classes in the second hexachord (pitch-transpose -8 (melodize (last (trope-hexachord 21)))) ((fs2 bb2 c3 f2 a2 bb2)) According to the book, the last note should be an Ab, not a Bb, like ((e3 eb3 d3 g2b2cs3) (fs2bb2c3 f2a2 ab2)) All the best ! Julio
  9. (circle-pitch-plot '(9 10 0 3 4 6 5 7 8 11 1 2) :sort nil :remove-duplicates t :join-first nil :point-radius 6)
  10. Dear All, I´m looking for a way to plot some graphs like these, showing 12 tone row ordering: I think that a function like this would be easy to program and adapt from the library. I don´t if there exist already something similar... It´s useful to show properties of 12 tone sets, like Tropes, simmetry relations, geometric operations. Best ! Julio How Rare Is Symmetry in Musical 12-Tone Rows? on JSTOR WWW.JSTOR.ORG David J. Hunter, Paul T. von Hippel, How Rare Is Symmetry in Musical 12-Tone Rows?, The American Mathematical Monthly, Vol. 110, No. 2 (Feb., 2003), pp. 124-132 HERE !!! FOUND !! (circle-pitch-plot '(0 2 6 0 3 7 0 4 8) :sort nil :point-radius 6)
  11. Dear Friends, Is there some way to configure the snippets without the watermark "opusmodus" in it ? Sometimes it can be useful. Best, Julio
  12. Dear All, Simple question How to make this kind of tuplet ? (4h. 4h. 4h. 4h.) won´t work in this context... Best ! Julio
  13. Dear Janusz, Thanks for the explanation. I found my way to use it !!! Finally !!! It will be VERY USEFUL (thanks a lot) Here is my way to use it: SCORE BEFORE RE-PITCH ;;; BEFORE REPITCH (progn (setf rv1 '((1/8) (1/8 3/4 1/8 1/8 3/4) (1/4) (1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8 1/4 -1/8 1/8) (3/4) (1/8 1/8 1/2 1/4 1/12 1/12 1/12) (3/16) (1/4 1/16 -3/8 1/8 1/4 -1/8 1/8 1/2) (1/4) (1/8 1/2 1/8 1/4 1/12 1/12 1/12 3/16 1/4 1/16) (-3/8 1/8) (1/4 -1/8 1/8 3/4 1/8 1/8) (1/2) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8) (1/4) (-1/8 1/8 1/2 1/4 1/8 1/2 1/8) (1/4) (1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8 1/4 -1/8 1/8) (3/4) (1/8 1/8 1/2 1/8 3/8) (1/2) (1/8 3/8) (1/8) (1/8 3/4 1/8 1/8 3/4) (1/4) (1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8 1/4 -1/8 1/8) (3/4) (1/8 1/8 1/2 1/4 1/12 1/12 1/12) (3/16) (1/4 1/16 -3/8 1/8 1/4 -1/8 1/8 1/2) (1/4) (1/8 1/2 1/8 1/4 1/12 1/12 1/12 3/16 1/4 1/16) (-3/8 1/8) (1/4 -1/8 1/8 3/4 1/8 1/8) (1/2) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8) (1/4) (-1/8 1/8 1/2 1/4 1/8 1/2 1/8) (1/4) (1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8 1/4 -1/8 1/8) (3/4) (1/8 1/8 1/2 1/8 3/8) (1/2) (1/8 3/8) (1/8) (1/8 3/4 1/8 1/8 3/4) (1/4) (1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8 1/4 -1/8 1/8) (3/4) (1/8 1/8 1/2 1/4 1/12 1/12 1/12) (3/16) (1/4 1/16 -3/8 1/8 1/4 -1/8 1/8 1/2) (1/4) (1/8 1/2 1/8 1/4 1/12 1/12 1/12 3/16 1/4 1/16) (-3/8 1/8) (1/4 -1/8 1/8 3/4 1/8 1/8) (1/2) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8) (1/4) (-1/8 1/8 1/2 1/4 1/8 1/2 1/8) (1/4) (1/12 1/12 1/12 3/16 1/4 1/16 -3/8 1/8 1/4 -1/8 1/8) (3/4) (1/8 1/8 1/2 1/8 3/8) (1/2) (1/8 3/8))) (setf rv2 '((-1/4 -1/8 1/8) (1/2 -1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/8 1/8 1/4) (1/2) (-1/2 -1/8 1/8 1/4 1/12 1/12 1/12 3/16 1/16) (1/4) (-1/8 1/8 1/2 -1/8 1/8 3/4) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -1/8 1/8) (1/2) (-1/8 1/8 1/4 1/2) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/16 1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/4 -1/8 1/8) (1/2) (-1/4 -1/8 1/8) (-1/4 -1/8 1/8) (1/2 -1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/8 1/8 1/4) (1/2) (-1/2 -1/8 1/8 1/4 1/12 1/12 1/12 3/16 1/16) (1/4) (-1/8 1/8 1/2 -1/8 1/8 3/4) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -1/8 1/8) (1/2) (-1/8 1/8 1/4 1/2) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/16 1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/4 -1/8 1/8) (1/2) (-1/4 -1/8 1/8) (-1/4 -1/8 1/8) (1/2 -1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/8 1/8 1/4) (1/2) (-1/2 -1/8 1/8 1/4 1/12 1/12 1/12 3/16 1/16) (1/4) (-1/8 1/8 1/2 -1/8 1/8 3/4) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -1/8 1/8) (1/2) (-1/8 1/8 1/4 1/2) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/16 1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/4 -1/8 1/8) (1/2) (-1/4 -1/8 1/8))) (setf rv3 '((-1/4 -1/8 1/8) (1/2 -1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/8 1/8 1/4) (1/2) (-1/2 -1/8 1/8 1/4 1/12 1/12 1/12 3/16 1/16) (1/4) (-1/8 1/8 1/2 -1/8 1/8 3/4) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -1/8 1/8) (1/2) (-1/8 1/8 1/4 1/2) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/16 1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/4 -1/8 1/8) (1/2) (-1/4 -1/8 1/8) (-1/4 -1/8 1/8) (1/2 -1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/8 1/8 1/4) (1/2) (-1/2 -1/8 1/8 1/4 1/12 1/12 1/12 3/16 1/16) (1/4) (-1/8 1/8 1/2 -1/8 1/8 3/4) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -1/8 1/8) (1/2) (-1/8 1/8 1/4 1/2) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/16 1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/4 -1/8 1/8) (1/2) (-1/4 -1/8 1/8) (-1/4 -1/8 1/8) (1/2 -1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/8 1/8 1/4) (1/2) (-1/2 -1/8 1/8 1/4 1/12 1/12 1/12 3/16 1/16) (1/4) (-1/8 1/8 1/2 -1/8 1/8 3/4) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/4 1/16 -1/8 1/8) (1/2) (-1/8 1/8 1/4 1/2) (-1/2 -1/8 1/8) (1/4 1/12 1/12 1/12 3/16 1/16 1/4 -1/8 1/8 1/2) (-1/8 1/8) (3/4 -1/2 -1/8 1/8 1/4) (1/12) (1/12 1/12 3/16 1/4 1/16 -1/8 1/8 1/2 -1/4 -1/8 1/8) (1/2) (-1/4 -1/8 1/8))) (setf rv4 '((-1/4 -1/4 -1/8 1/8) (1/4 -1/4 -1/4 -1/8 1/8 1/4) (1/8) (7/8 1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/8) (3/4) (-1/4 -1/8 1/8 1/4 1/8 3/8) (1/2) (1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/2 1/8) (1/4) (-3/8 1/8 1/4 1/8 7/8) (1/4) (1/12 1/12 1/12 3/16 1/16 1/8 1/8 3/4) (-1/4 -1/8 1/8) (1/4 1/8 3/8 1/2 1/4 1/12 1/12 1/12) (3/16) (1/16 1/8 1/2 1/8 1/4 -3/8 1/8 1/4) (1/8) (7/8 1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/8) (3/4) (-1/4 -1/8 1/8 1/4) (-1/4 -1/4 -1/8 1/8) (1/4) (-1/4 -1/4) (-1/4 -1/4 -1/8 1/8) (1/4 -1/4 -1/4 -1/8 1/8 1/4) (1/8) (7/8 1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/8) (3/4) (-1/4 -1/8 1/8 1/4 1/8 3/8) (1/2) (1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/2 1/8) (1/4) (-3/8 1/8 1/4 1/8 7/8) (1/4) (1/12 1/12 1/12 3/16 1/16 1/8 1/8 3/4) (-1/4 -1/8 1/8) (1/4 1/8 3/8 1/2 1/4 1/12 1/12 1/12) (3/16) (1/16 1/8 1/2 1/8 1/4 -3/8 1/8 1/4) (1/8) (7/8 1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/8) (3/4) (-1/4 -1/8 1/8 1/4) (-1/4 -1/4 -1/8 1/8) (1/4) (-1/4 -1/4) (-1/4 -1/4 -1/8 1/8) (1/4 -1/4 -1/4 -1/8 1/8 1/4) (1/8) (7/8 1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/8) (3/4) (-1/4 -1/8 1/8 1/4 1/8 3/8) (1/2) (1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/2 1/8) (1/4) (-3/8 1/8 1/4 1/8 7/8) (1/4) (1/12 1/12 1/12 3/16 1/16 1/8 1/8 3/4) (-1/4 -1/8 1/8) (1/4 1/8 3/8 1/2 1/4 1/12 1/12 1/12) (3/16) (1/16 1/8 1/2 1/8 1/4 -3/8 1/8 1/4) (1/8) (7/8 1/4 1/12 1/12 1/12 3/16 1/16 1/8 1/8) (3/4) (-1/4 -1/8 1/8 1/4) (-1/4 -1/4 -1/8 1/8) (1/4) (-1/4 -1/4))) (setf v1pit '(f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5 e5 f5)) (setf v2pit '(c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4)) (setf v3pit '(bb3 gs3 bb3 gs3 bb3 gs3 bb3 gs3 bb3 gs3 bb3 gs3 bb3 gs3 bb3 gs3 bb3 gs3 bb3 gs3 bb3 gs3)) (setf v4pit '(bb2 eb2 bb2 eb2 bb2 eb2 bb2 eb2 bb2 eb2 bb2 eb2 bb2 eb2 bb2 eb2 bb2 eb2 bb2 eb2 bb2 eb2)) (setf len-map1 '((e (stacc)) (s (ord)) (h (long)) (h. (long)) (w (long)))) (setf len-map2 '((e (list (rnd-pick '(mf f)))) (s (mf)) (e. (mf)) (h (p<f)) (h. (p<f)) (w (P<f>p))(wq (P<f>p))(wh (P<f>p))(wh. (P<f>p))(ww (P<f>p)))) (setf v1mat-a (make-omn :length rv1 :pitch (span rv1 v1pit) ;to gen-divide = 1 use v1dtc, instead of v1dtb :span :length :velocity (length-map len-map2 rv1 :otherwise '(mf) :repeat t) :articulation (length-map len-map1 rv1 :otherwise '(ord) :repeat t))) (setf v2mat-a (make-omn :length rv2 :pitch (span rv2 v2pit) :span :length :velocity (length-map len-map2 rv2 :otherwise '(mf) :repeat t) :articulation (length-map len-map1 rv2 :otherwise '(ord) :repeat t))) (setf v3mat-a (make-omn :length rv3 :pitch (span rv3 v3pit) :span :length :velocity (length-map len-map2 rv3 :otherwise '(mf) :repeat t) :articulation (length-map len-map1 rv3 :otherwise '(ord) :repeat t))) (setf v4mat-a (make-omn :length rv4 :pitch (span rv4 v4pit) :span :length :velocity (length-map len-map2 rv4 :otherwise '(mf) :repeat t) :articulation (length-map len-map1 rv4 :otherwise '(ord) :repeat t))) (ps 'gm :sq (list (pitch-transpose 0 (ambitus 'violin v1mat-a )) (pitch-transpose 0 (ambitus 'violin v2mat-a)) (pitch-transpose 0 (ambitus 'viola v3mat-a)) (pitch-transpose 0 (ambitus 'cello v4mat-a)) ) :key-signature 'atonal :time-signature '(4 4) ;:tempo 90 :flexible-clef nil :title "Quartet BEFORE RE-PITCH - JULIO HERRLEIN" :display :window) ) My solution is to use one distribute-stream per voice. In this way, I can just put exactly what I want in each voice. ;;; QUARTET AFTER REPITCH PROCESS USING One instance of Distribute-Stream for each voice (progn (setf repitch1 '(f5 e5 d5 c5 f5 e5 d5 c5 f5 e5 d5 c5 f5 e5 d5 c5 f5 e5)) (setf repitch2 '(c4 cs4 d4 eb4 e4 f4 fs4 g4 gs4 a4 bb4 c5 cs5 d5 eb5 e5)) (setf repitch3 '(c4 b3 bb3 a3 gs3 g3 fs3 f3 e3 eb3 d3 cs3 c3 b2 bb2 a2)) (setf repitch4 '(cs2 g2 cs2 g2 cs2 g2 cs2 g2 cs2 g2 cs2 g2 cs2 g2 cs2 g2)) (setf v1-new (distribute-stream repitch1 (list v1mat-a))) (setf v2-new (distribute-stream repitch2 (list v2mat-a))) (setf v3-new (distribute-stream repitch3 (list v3mat-a))) (setf v4-new (distribute-stream repitch4 (list v4mat-a))) (setf in1 (make-omn :length v1mat-a :pitch (1~ v1-new))) (setf in2 (make-omn :length v2mat-a :pitch (1~ v2-new))) (setf in3 (make-omn :length v3mat-a :pitch (1~ v3-new))) (setf in4 (make-omn :length v4mat-a :pitch (1~ v4-new))) (ps 'gm :sq (list (pitch-transpose 0 (ambitus 'violin in1)) (pitch-transpose 0 (ambitus 'violin in2)) (pitch-transpose 0 (ambitus 'viola in3)) (pitch-transpose 0 (ambitus 'cello in4)) ) :key-signature 'atonal :time-signature '(4 4) ;:tempo 90 :flexible-clef nil :title "Quartet RE-PITCH - JULIO HERRLEIN" :display :window) ) All the best !! Julio
  14. If the restream function could collect the notes horizontally from the source score and place the same way in the destination score it would be nice. Below, I suggest using one restream for each voice. It works like a charm. Another possibility would be having the :harmony keyword in the Counterpoint function working with the exact notes you put, without messing the octaves (side effect of the embedded harmonic path). So the method for composing would be: 1) Do whatever patterns you like ( don´t think about the notes, just the rhythmic texture of the Counterpoint) 2) Put the notes you like (in the exact octave you want) in the :harmony keyword 3) Let the counterpoint do the span (according with the longest pattern or specify spans for each measure 4) Be happy !! For my purposes, the counterpoint is still what is "almost there". Best, Julio
  15. Dear Friends, Please check this replace-stream function !! This is what I was searching for and trying to achieve for a long time !! It really worth to upgrade. I have some questions regarding this new tool: Here is the code, similar to the documentation. First, we have the Bach Chorale. Second, there are some original material that looks like this: V1 plays only E and F pitch classes V2 plays only C and D pitch classes VLA plays only Bb and G# pitch classes CELLO plays only Bb and Eb pitch classes For easy understanding of the point When I do the replace-stream, I.E., using the new pitch classes to the old Bach Chorale, I get this My new notes are traversing the instruments vertically and not horizontally (voice by voice) I´d like to keep the same pitch classes in each instrument, just with the new rhythms of the Bach Chorale, I.E., the VL1 plays only E and F, the VL2, only C and D, as I had in the original music. It´s just like an inverted axis... (or maybe the distribution is related with the length...) There is some solution ? I hope so, because this sounds AMAZING ! It´s just what I need ! I was trying to do this with the counterpoint function (in the previous post, with the :harmony keyword, but getting some noise in between, because of the nature of embedded harmonic path inside the Counterpoint function. Best ! Julio ;;;FORUM QUESTION ;;--------------------------------------------------------- ;; Bach, BWV 0004 (progn (setf soprano '((-h. q b4) (q as4 e b4 cs5 q d5 e5) (q d5 cs5 b4 fermata b4) (q g4 a4 b4 e a4 g4) (e fs4 e4 q fs4 e4 fermata b4) (q as4 e b4 cs5 q d5 e5) (q d5 cs5 b4 fermata b4) (q g4 a4 b4 e a4 g4) (e fs4 e4 q fs4 e4 fermata -q) (e e4 fs4 q g4 a4 e e4 fs4) (q g4 a4 b4 fermata b4) (q e5 ds5 e5 e fs5 e5) (q d5 cs5 b4 fermata cs5) (q d5 e b4 cs5 q d5 a4) (q g4 fs4 h e4 fermata) (q b4 a4 h g4) (h fs4 e4 fermata)) alto '((-h. q g4) (q fs4 fs4 fs4 fs4) (q fs4 e fs4 e4 q ds4 fermata fs4) (q e4 d4 e d4 ds4 q e4 tie) (q e4 ds4 b3 fermata g4) (q fs4 fs4 fs4 fs4) (q fs4 e fs4 e4 q ds4 fermata fs4) (q e4 d4 e d4 ds4 q e4 tie) (q e4 ds4 b3 fermata -q) (q b3 e4 q. e4 e ds4) (q e4 d4 d4 fermata e g4 a4) (q b4 a4 b4 fs4) (q fs4 e fs4 e4 q d4 fermata e4) (q fs4 d4 g4 fs4) (e fs4 e4 e4 ds4 h e4 fermata) (e d4 e4 q. fs4 e ds4 q e4 tie) (q e4 ds4 h b3 fermata)) tenor '((-h. e e4 d4) (q cs4 e d4 as3 q b3 cs4) (q b3 as3 fs3 fermata b3) (e b3 c4 b3 a3 g3 a3 q b3) (q c4 e fs3 a3 q g3 fermata e e4 d4) (q cs4 e d4 as3 q b3 cs4) (q b3 as3 fs3 fermata b3) (e b3 c4 b3 a3 g3 a3 q b3) (q c4 e fs3 a3 q g3 fermata -q) (e g3 a3 q b3 e a3 b3 q c4) (q b3 a3 g3 fermata d4) (q g4 fs4 e e4 d4 q cs4) (q b3 as3 fs3 fermata g3) (q a3 g3 g3 e d4 c4) (q b3 a3 h g3 fermata) (q g3 e fs3 b3 q b3 c4 tie) (q c4 e b3 a3 h gs3 fermata)) bass '((-h. q e3) (e fs3 e3 d3 cs3 q b2 as2) (q b2 fs2 b2 fermata ds3) (q e3 fs3 e g3 fs3 q e3) (e a2 s b2 c3 q b2 e2 fermata e3) (e fs3 e3 d3 cs3 q b2 as2) (q b2 fs2 b2 fermata ds3) (q e3 fs3 e g3 fs3 q e3) (e a2 s b2 c3 q b2 e2 fermata -q) (q. e3 e d3 c3 b2 q a2) (q e3 fs3 g3 e g3 fermata fs3) (q e3 fs3 gs3 as3) (q b3 fs3 b2 fermata e3) (q d3 g3 e b2 c3 q d3) (q e3 b2 h c3 fermata) (q g3 ds3 e3 c3) (q a2 b2 h e2 fermata))) (def-score bach-bwv-0004 ( :title "Bach, BWV-0004" :composer "J.S. Bach" :key-signature '(e min) :time-signature '(4 4) :tempo 88 :layout (choir-satb-layout 'soprano 'alto 'tenor 'bass) ) (soprano :omn soprano :channel 1 :sound 'gm :program 0) (alto :omn alto :channel 2) (tenor :omn tenor :channel 3) (bass :omn bass :channel 4) ) ) ;;; ORIGINAL MATERIAL (4 voices) ;; EACH VOICE USES DIFFERENT PITCH CLASSES FOR DEBUG ;;; this voice uses only pcs E and F (setf v1mat-a '((e f5 stacc) (e e5 stacc h. f5 p<f long e e5 mf stacc f5 stacc h. e5 p<f long) (q f5 mf ord) (3q e5 ord f5 ord e5 ord e. f5 ord q e5 ord s f5 ord -q. e e5 stacc q f5 ord -e e5 stacc))) ;;; this voice uses only pcs C and D (setf v2mat-a '((-q -e c4 f stacc) (h d4 p<f long -q -e c4 f stacc h d4 p<f long) (-e c4 f stacc) (h. d4 p<f long -h -e c4 f stacc q d4 mf ord) (3q c4 ord) (3q d4 ord c4 ord e. d4 ord q c4 ord s d4 ord -e c4 f stacc h d4 p<f long -e c4 f stacc q d4 mf ord))) ;;; this voice uses only pcs Bb and G# (setf v3mat-a '((-q -e bb3 stacc) (h gs3 p<f long -q -e bb3 mf stacc h gs3 p<f long) (-e bb3 mf stacc) (h. gs3 p<f long -h -e bb3 mf stacc q gs3 ord) (3q bb3 ord))) ;;; this voice uses only pcs Bb and Eb (setf v4mat-a '((-q - -e bb2 stacc) (q eb2 ord - - -e bb2 stacc q eb2 ord) (e bb2 stacc) (h.. eb2 ord q bb2 ord 3q eb2 ord bb2 ord eb2 ord e. bb2 ord s eb2 ord e bb2 stacc eb2 stacc))) ;;; PREVIEW ORIGINAL MATERIAL (ps 'gm :sq (list (pitch-transpose 0 (ambitus 'violin v1mat-a )) (pitch-transpose 0 (ambitus 'violin v2mat-a)) (pitch-transpose 0 (ambitus 'viola v3mat-a)) (pitch-transpose 0 (ambitus 'cello v4mat-a)) ) :key-signature 'atonal :time-signature '(4 4) ;:tempo 90 :flexible-clef nil :title "replace stream" :display :window) (setf original-pitches (list v1mat-a v2mat-a v3mat-a v4mat-a)) (setf stream (collect-stream :pitch original-pitches)) (setf bach (collect-score-instruments 'bach-bwv-0004)) (replace-stream stream bach :index 'v :articulation nil :rest-articulation nil) (ps 'gm :sq (list v1 v2 v3 v4) :time-signature '(3 4) :tempo tempo )
  16. Dear All, From the example below I suppose that choralis function applyes some voice-leading in the progression provided. Maybe to generate some more singable sequence ? (maybe not...) For example, here I provide my classic test-debuggin harmony: (setf chords2 (gen-trim 31 '(a3b3e4gs4 gs3eb4g4bb4 cs3a3b3e4 gs2f3bb3d4 gs2e3b3eb4 eb3b3cs4fs4 a2e3eb4b4 fs2cs3c4gs4 d3gs3b3g4 b3e4fs4a4 fs3cs4f4c5 b3cs4fs4bb4 g2d3cs4a4 g2fs3b3cs4 e2fs3g3d4 f2eb3bb3d4 b2g3a3d4 bb2gs3eb4g4 e3c4g4d5 cs3a3e4b4 gs3bb3eb4g4 fs3gs3cs4f4 fs2e3b3eb4 cs3a3b3e4 b2gs3cs4f4 eb3a3d4fs4 d3bb3f4c5 e3eb4gs4bb4 f3cs4gs4eb5 b2fs3f4cs5 eb3b3cs4fs4 eb3gs3b3g4 e3g3d4fs4 a2bb3eb4g4 d3b3e4gs4 eb3cs4e4a4 c4g4b4d5 a3e4gs4b4 f3c4e4g4 g3d4fs4a4 bb2c4f4a4))) (setf lengths (gen-prob 31 '((h .4) (q .2) (h. .4) (q .3) (-h .2) (-q .3) (w .5)) :seed 441896)) (setf velocity (gen-prob 31 '((p .4) (mp .4) (mf .3) (f .2)) :seed 435)) (setf chords (gen-choralis lengths chords2 :velocity velocity)) (choralis chords :index 'v :seed 653886 :methods '(:soprano dyn :alto dyn :tenor dyn :bass dyn)) (ps 'gm :sq (list (pitch-transpose 0 (ambitus 'violin v1)) (pitch-transpose 0 (ambitus 'violin v2)) (pitch-transpose 0 (ambitus 'viola v3)) (pitch-transpose 0 (ambitus 'cello v4)) ) :key-signature 'atonal ;:time-signature timesig :tempo 90 :flexible-clef nil :title "Choralis study" :display :window) But in the processed score, given in the example below, the initial harmony is probably processed with some undesired voice-leading. Is possible to use choralis without the voice-leading, i.e., outputting LITERALLY the initial harmony ? Some keyword ? The chords at the gen-choralis stage looks to be rigth, but the Choralis splitting itself make some undesirable (for my specific purpose) closest-path voice-leading. Best ! Julio
  17. Thanks again, Stephane ! Yes, this is the way I was thinking: preparing the notes beforehand and use the counterpoint function to have a more flexible way to control the harmony. I was doing everything manually, using mechanisms and processes to control the things, but this way can be easier. For harmony control is just a matter of distributing the chord tones on the harmony lists. The rest is finding appropriate textures. Stephane, if you permit, I have one more question: How the :global-methods "dyn" works (setf sec-b (counterpoint patterns dictum-b :global-methods '((dyn fl) (dyn cl) (t-12 dyn hn) (t-12 dyn vc)) :global-polyphony '((10 p) (1 13)) :iterate t)) I see expressions like that in counterpoint examples, but I don´t how "dyn" is defined. I found something like this, in example 4 (setf globals '((q12345 dyn fl) (q12345 dyn ob) (q12345 t-12 dyn bcl) (q12345 dyn hp))) Thanks a lot ! Julio
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy