Jump to content

NagyMusic

Members
  • Posts

    63
  • Joined

  • Last visited

Everything posted by NagyMusic

  1. (setf section-1a (counterpoint patterns dictum-1a )) (setf section-1b (counterpoint patterns dictum-1b )) (setf section-1c (counterpoint patterns dictum-1c )) (assemble-voices 'voice section-1a section-1b section-1c)
  2. I'm trying to combine a series of counterpoint dictums into a single dictum list. I tried several things, but can't seem to get it work. Is there a function similar to assemble-seq that could be applied here? Thank you! (setf dictum-1a '(((1 2 3) :methods ( (r ft) (t-12 ft) (dl1 t-12 pr1 ten)))) ) (setf dictum-1b '(((1 2 3) :methods ( (r ft) (t-12 ft) (dl1 t-12 pr2 ten)))) ) (setf dictum-1b '(((1 2 3) :methods ( (r ft) (t-12 ft) (dl1 t-12 pr3 ten)))) ) (setf section-1 (counterpoint patterns dictum-1a ... dictum-1b ... etc? )) (assemble-voices 'voice section-1)
  3. Thanks so much! That's it - so elegant. I just couldn't remember gen-divide.
  4. The following example randomly segments a list of given pitches into progressively increasing sublist of elements. I can't seem to recall a function one could use instead of rnd-repeat that would do the same but not randomly, preserving the original order or pitches => (c4) (d4 e4) (f4 g4 a4), etc. Thank you! (setf pitches '(c4 d4 e4 f4 g4 a4 b4 c5)) (setf seq (make-omn :pitch (rnd-repeat (gen-integer 1 4) pitches) :length '(1/16) :velocity '(f) :articulation '(stacc) :span :pitch))
  5. Maybe I missed it, but is there a function that removes ties, opposite to filter-tie? Thanks!
  6. The compilation time seems better now. However, I'm still having some difficulty configuring the counterpoint function for small project I'm working on. (I'm posting my question here since it might be relevant to my earlier post.) I include a brief example below that continues to produce an error message at ;;Assemble Voices section. I wonder if someone could point me in the right direction. Thank you! (progn ;; Global SEED (init-seed 15342) (setf melody1a (length-augmentation 2'((-h. q g4) (q. g4 e e4 q e4 -q) (-h. q g4) (q. g4 e d4 q d4 -q) (-h. q e4) (q f4 g4 a4 b4) (h. g4 -q)))) (setf melody1b (length-augmentation 3 '((-h. q g4) (q. g4 e e4 q e4 -q) (-h. q g4) (q. g4 e d4 q d4 -q)))) ;; Patterns (setf scale '(c4 eb4 f4 g4 ab4)) (setf p1 (tonality-map '(scale :map octave :closest up) melody1a) p2 (tonality-map '(scale :map octave :closest up) melody1b) ) (setf patterns (list p1 p1 p2)) (setf dictum-a '((1 2 3) :methods ((dl1) (dl1 t-12 pr1) (dl1 t-24))) ) ;; Sections (setf sec-a (counterpoint patterns dictum-a )) ;; Assemble Voices (assemble-voices 'voice sec-a) ;; Preview Score (ps 'gm :hn (list (1~ voice1)) :tbn (list (2~ voice2)) :tbn (list (3~ voice3)) :time-signature '(4 4) ) ;; Global SEED back to NIL (init-seed nil) )
  7. Hello! The example below has been taking several minutes to compile, eventually crashing Opusmodus. Would someone be willing to look at the code and let me know what's causing this? Thank you so much! (setf pattern1 (length-augmentation 2'((-h. q g4) (q. g4 e e4 q e4 -q) (-h. q g4) (q. g4 e d4 q d4 -q) (-h. q e4) (q f4 g4 a4 b4) (h. g4 -q)))) (setf pattern1a (length-augmentation 3 '((-h. q g4) (q. g4 e e4 q e4 -q) (-h. q g4) (q. g4 e d4 q d4 -q)))) (setf scale '(c4 eb4 f4 g4 ab4)) (setf pattern1-scale (tonality-map '(scale :map octave :closest up) pattern1)) (setf pattern1a-scale (tonality-map '(scale :map octave :closest up) pattern1a)) (setf voicesA (counterpoint (list pattern1-scale pattern1-scale pattern1a-scale) '(((1 2 3) :methods ( (dl1) (r dl1 t-12 pr1) (d1 t-24 pr1) ) )))) (ps 'gm :hn (list (1~ voicesA)) :tbn (list (2~ voicesA)) :tbn (list (3~ voicesA)) :time-signature '(4 4) )
  8. Thank you for your replies! The issue is happening on the Intel MacBook Pro that I just updated to Monterey in order to migrate it to the new M1 laptop (long story short). I tried what Stéphane suggested but with no avail. Do you think if reinstalling Opusmodus would help? SemitoneGene - any luck on your end?
  9. Hello! I attempted to run Opusmodus 2.2 on Monterey OS. Unfortunately, while I can open the application, I cannot open the existing workspaces or create new ones. Has anyone experienced similar issues as of late? Thank you! Zvony
  10. Thanks for clarifying. It makes sense that 1.0 is the highest density; that was what my initial understanding was. Going back to my pitch density question from earlier, where we attested that "the bigger the interval, the lower the density," should the density be lower for a major sixth and higher for a major second, the former being a larger interval? The example below and others I tested, produce higher density for larger intervals. (density-analysis '((c4 a4) (c4 d4))) => (0.75 0.16666667) I'm sorry if I'm not looking at this the wrong way! The length density is clear now.
  11. My apologies for continuing questions... Given that longer durations result in lower density, and if I understand it right, the density value of 1.0 indicates the lowest density, why are the longer durations resulting in higher density estimation: (density-analysis '((h q) (e s))) => (0.17 0.67) Thank you for your patience!
  12. Thank you! And with length density, is it correct to say that the longer the duration the lower the density? (density-analysis '((h q q) (e s))) => (0.19 0.67)
  13. Suppose a density is defined by measuring the amount of information. Why does the first list having three pitches result in lower density than the second list comprising two pitches? (density-analysis '((c4 d4 g4) (d4 a4))) => (0.2916667 0.5833334) Thank you!
  14. Thank you! This is it. I thought it had to do with the organization of lists.
  15. Thanks. I studied the docs and will continue trying. I used this function before and it was all fine. Something with this very example doesn't seem to be working.
  16. I can't seem to get do-timeline2 function to work. I include an abridged example below; happy to share more code details if necessary. I'd like to filter 64 measures of 4/4 as defined in the timeline. Would anyone be able to offer some feedback? I tried adjusting different 'list' levels, etc. but with no avail. Thank you! (setf chords1 '(e2b2g3d4 e2cs3a3e4 e2d3b3fs4)) (setf chords2 (pitch-transpose 3 chords1)) (setf chorale1-chords (span '(1 1 1 1 1 1 1 1) chords1)) (setf chorale2-chords (span '(1 1 1 1 1 1 1 1) chords2)) ;; OMNS (setf chorale1 (make-omn :length (length-span '(1 1 1 1 1 1 1 1) '(w) :omn t) :pitch chorale1-chords)) (setf chorale2 (make-omn :length (length-span '(1 1 1 1 1 1 1 1) '(w) :omn t) :pitch chorale2-chords)) ;; CHORALE RESERVOIRES (setf chorales-reservoir (list chorale1 chorale2)) (setf chorales-map (vector-map chorales-reservoir '(0 4 7 12 16 7 12 16))) ;; TIMELINE (setf chorales-timeline '((1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0))) (do-timeline2 '(chorales-map) chorales-timeline '(gen-pause x))
  17. Thanks so much, Julio. This is very helpful! I also appreciate you sharing your dissertation. -Zvony
  18. I wonder if there's a function to allow for systematic transformations of rhythmic streams, like in the example below. From a regular stream of 16th notes: (s c4 d4 e4 f4 5q d4 e4 f4 g4 e4 s f4 g4 a4 f4 3q g4 a4 b4) To occasional introduction of quintuplets, tuplets, etc: (s c4 d4 e4 f4 5q d4 e4 f4 g4 e4 s f4 g4 a4 f4 3q g4 a4 b4) Or: (6q c4 d4 e4 f4 d4 e4 s f4 g4 f4 g4 5q a4 f4 g4 a4 b4) Thank you!
  19. With Stephane's help, I learned that a possible number of intervals to process in each list is a random choice. What is more, each parameter in this function, including the number of possible intervals to process, is applied recursively to the last processed subset of intervals. Janusz- Might it be possible to add :cycle-intervals and :cycle-num options the interval-expansion-series function? Those options would allow for the interval transformation parameters cycled in place of random. Thanks! Zvony
  20. The documentation on the interval-expansion-series function states that a count list argument refers to a number of intervals to process. Would someone be willing to explain what number of intervals and in what way? I understand that this function also has built-in randomness, resulting in a different output each time. In the example below, does the count list '(1 2 3) mean that only one interval is expanded the first time, then two intervals the second time, etc.? Or does it imply that only the first three intervals from the interval source list will be expanded? (interval-expansion-series 10 '(1 -1 2 -2) '(1 2 3) '(-6 -5 3 4) :max-interval 6) Thank you!
  21. Thanks, everyone. I didn't mean to cause you much trouble with this, but one can learn a lot from this session. Thanks to Stephane's efforts to share such informative sessions with the community! It's all clear now. Creating the process first and then looping it # times make sense. Happy New Year!
  22. Thanks, Stephane. One can really learn a lot from this session! I compiled the code you posted, and I still get four repeated measures of the same material. My understanding is that I should get four iterations of a completely different set of measures. Yet, from what I can tell, each time, the process continues to produce four measures of new material that is repeated (looped) four times. I restarted Opusmodus and tried again, but still got the same result. I also tried using gen-eval instead of gen-loop, but that didn't seem to work. Here's a screenshot of the viola part: For what it's worth, I'm providing some additional information. I'm afraid it could be something going on my end. Here's what I get in the Listener when compile the setf seq segment: 2 > gen-loop :seed 958822 gen-loop :seed 958822 gen-loop :seed 958822 gen-loop :seed 958822 gen-loop :seed 958822 gen-loop :seed 958822 gen-loop :seed 958822 ;Compiler warnings for "/Users/zvony/Dropbox/CREATE/Opusmodus/Zvony/zvony/ZoomOM/Session 17/looping-process.opmo" : ; In an anonymous lambda form at position 89: Undeclared free variable ph1 ;Compiler warnings for "/Users/zvony/Dropbox/CREATE/Opusmodus/Zvony/zvony/ZoomOM/Session 17/looping-process.opmo" : ; In an anonymous lambda form at position 432: Undeclared free variable ph2 ;Compiler warnings for "/Users/zvony/Dropbox/CREATE/Opusmodus/Zvony/zvony/ZoomOM/Session 17/looping-process.opmo" : ; In an anonymous lambda form at position 987: Undeclared free variable size (7 references) ;Compiler warnings for "/Users/zvony/Dropbox/CREATE/Opusmodus/Zvony/zvony/ZoomOM/Session 17/looping-process.opmo" : ; In an anonymous lambda form at position 775: Undeclared free variable ph3 And here's the corresponding omn notation: ((((e gs4 pp e. d4 e4 q d4 tie) (s d4 pp e4 d4 e. bb3 s b3 d4 bb3 f4 b3 bb3) (s d4 pp f4 d4 b3 e. gs3 b3 s e4 f4) (-s e. d4 pp e4 q d4 s bb3)) ((e d3 pp f3 s d3 e. b3 q gs3) (e d3 pp s e3 e. d3 s bb3 d3 bb3 d3 e3 b3) (s e4 pp d4 bb3 b3 e. d4 e bb3 s f3 b3 bb3) (-s e f3 pp s d3 e. b3 q gs3 s b3)) ((e d2 pp e. f2 q.. d2 tie) (e d2 pp q e2 tie s s d2 bb2 d2 bb2 d2) (s e3 pp d3 bb2 q b2 d3 tie s) (-s e. f2 pp h d2))) (((e d4 pp f4 s d4 e. b3 q gs3) (e d4 pp s e4 e. d4 s bb3 d4 bb3 d4 e4 b3) (s e5 pp d5 bb4 b4 e. d5 e bb4 s f4 b3 bb3) (-s e f4 pp s d4 e. b3 q gs3 s b3)) ((e d3 pp f3 s d3 e. b3 q gs3) (e d3 pp s e3 e. d3 s bb3 d3 bb3 d3 e3 b3) (s e4 pp d4 bb3 b3 e. d4 e bb3 s f3 b3 bb3) (-s e f3 pp s d3 e. b3 q gs3 s b3)) ((e d2 pp e. f2 q.. d2 tie) (e d2 pp q e2 tie s s d2 bb2 d2 bb2 d2) (s e3 pp d3 bb2 q b2 d3 tie s) (-s e. f2 pp h d2))) (((e d4 pp f4 s d4 e. b3 q gs3) (e d4 pp s e4 e. d4 s bb3 d4 bb3 d4 e4 b3) (s e5 pp d5 bb4 b4 e. d5 e bb4 s f4 b3 bb3) (-s e f4 pp s d4 e. b3 q gs3 s b3)) ((e d3 pp f3 s d3 e. b3 q gs3) (e d3 pp s e3 e. d3 s bb3 d3 bb3 d3 e3 b3) (s e4 pp d4 bb3 b3 e. d4 e bb3 s f3 b3 bb3) (-s e f3 pp s d3 e. b3 q gs3 s b3)) ((e d2 pp e. f2 q.. d2 tie) (e d2 pp q e2 tie s s d2 bb2 d2 bb2 d2) (s e3 pp d3 bb2 q b2 d3 tie s) (-s e. f2 pp h d2))) (((e d4 pp f4 s d4 e. b3 q gs3) (e d4 pp s e4 e. d4 s bb3 d4 bb3 d4 e4 b3) (s e5 pp d5 bb4 b4 e. d5 e bb4 s f4 b3 bb3) (-s e f4 pp s d4 e. b3 q gs3 s b3)) ((e d3 pp f3 s d3 e. b3 q gs3) (e d3 pp s e3 e. d3 s bb3 d3 bb3 d3 e3 b3) (s e4 pp d4 bb3 b3 e. d4 e bb3 s f3 b3 bb3) (-s e f3 pp s d3 e. b3 q gs3 s b3)) ((e d2 pp e. f2 q.. d2 tie) (e d2 pp q e2 tie s s d2 bb2 d2 bb2 d2) (s e3 pp d3 bb2 q b2 d3 tie s) (-s e. f2 pp h d2)))) And here's what I get when I evaluate/audition one of the instruments: 2 > audition-musicxml-omn-snippet ;Compiler warnings for "/Users/zvony/Dropbox/CREATE/Opusmodus/Zvony/zvony/ZoomOM/Session 17/looping-process.opmo" : ; In an anonymous lambda form at position 10: Undeclared free variable seq
  23. So I tried again by reducing the number of iterations (gen-loop) and number of measures (setf size) for testing purposes. It turns out that the pitches output is different in each of the two iterations (almost; they're the same in the third eval), but the rhythms remain the same at both iterations (4 + 4 measures of the same rhythms). I attached the screenshots of the evaluated setf vn, va, vc below. Thank you once again! (setf seq (gen-loop 2 (progn (setf size 4) (setf ph1 (ambitus '(g3 g6) (filter-tie (make-omn :pitch (gen-loop size (interval-ambitus 6 (rnd-sample 12 (make-scale 'd4 12 :alt '(2 1 3))))) :length (gen-loop size (length-legato (rnd-sample 12 '(s -s)))) :velocity (rnd-pick '((pp)(p)(mp)(mf)(f))) )))) (setf ph2 (ambitus '(c3 g5) (filter-tie (make-omn :pitch (gen-loop size (interval-ambitus 6 (rnd-sample 12 (make-scale 'd3 12 :alt '(2 1 3))))) :length (gen-loop size (length-legato (rnd-sample 12 '(s -s)))) :velocity (rnd-pick '((pp)(p)(mp)(mf)(f))) )))) (setf ph3 (ambitus '(c2 e4) (filter-tie (make-omn :pitch (gen-loop size (interval-ambitus 6 (rnd-sample 12 (make-scale 'd2 12 :alt '(2 1 3))))) :length (gen-loop size (length-legato (rnd-sample 12 '(s -s -s)))) :velocity (rnd-pick '((pp)(p)(mp)(mf)(f))) )))) ;;; Mute/play (do-timeline2 '(ph1 ph2 ph3) (binary-invert (matrix-transpose (gen-group (rnd-sample 7 '(0 1)) :size size))) '(gen-pause x) ) ))) (setf vn (assemble-seq (loop for s in seq collect (nth 0 s)))) (setf va (assemble-seq (loop for s in seq collect (nth 1 s)))) (setf vc (assemble-seq (loop for s in seq collect (nth 2 s))))
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy