Jump to content

NagyMusic

Members
  • Posts

    99
  • Joined

  • Last visited

Everything posted by NagyMusic

  1. Thanks, everyone, for your suggestions. I apologize for not being as knowledgeable in lisp programming to figure this out! Most importantly, I'm sorry for not asking my question with more clarity! I want to retain the same measure lengths and shorten the duration of notes by 1/16 so that there's always a 16-note rests at the end of each measure: '((q e3) (q. e3) (q g3) (q d3) (q. a3)) => '((e e3 -e) (e e3 -s) (e g3 -e) (e d3 -e) (e a3 -s)) I would take measure spans from an existing sequence that features a somewhat random pattern of 3/16 and 1/4 measures and then have eighth notes in each bar followed by 16-note or 8-note rests, depending on the measure length. Do you think something like this might be possible! Thank you for your help and patience! Zvony
  2. Thanks, Janusz. This is very helpful! The suggestion you made works. I just wonder if it could be applied to a sequence of alternating 3/8 and 1/4 measures? Something like: (loop for i in '((q e3) (q. e3) (q g3) (q d3) (q. a3)) collect (fit-to-span '(3/8 2/8) i)) Thank you!!
  3. I want to trim every full-duration measure so that it always first starts with a quarter note and fills the rest of the measure with corresponding rests. For example, is it's possible to consider an omn sequence like the one below and trim the durations so that every (firtst) note in a measure is a quarter note followed by a quarter note rest (in 1/4) or a quarter note followed by an eight-note rest (in 3/8)? Thank you! ((e. e3) (e. e3) (q g3) (e. d3) (q a3))
  4. Thank you, all! This is very helpful. The AM solution gave me what I was looking for.
  5. Does anyone know if there's a function that outputs a number of beats from every measure in an omn sequence, given the denominator? For example with the eighth-note denominator, ((-e a3f4d5 q f4d5a5) (q a3e4c5 q e4c5a5) (-e a3g4e5 h g4e5a5)) would output (3, 4, 5). Thank you!
  6. I'm working on a series of piano pieces. Here're two of the movements. Special thanks to Janusz and Stéphane for their invaluable feedback and ideas! Thanks for listening - comments welcome! 1.mp3 3.mp3 - Zvony
  7. (setf exile-chorale (pitch-transpose -3 '(h c4eb4g4 c4d4f4ab4 w bb3d4f4g4 h g3c4eb4 ab3c4d4f4 w g3bb3d4f4 h c4eb4g4c5 d4f4ab4c5 d4g4ab4c5 w d4g4ab4c5 ))) (setf exile-chords (gen-repeat 10 (omn :pitch exile-chorale))) (setf vector-exile-chorale (vector-smooth 0.1 (flatten (vector-round 0.01 1.00 (pitch-to-integer (pitch-demix 1 exile-chords)))))) (list-plot (vector-smooth 0.1 vector-exile-chorale) :join-points t :point-radius 2) (setf inv-num (gen-trim (length exile-chords) '(1))) (setf exile-chords-i (chord-inversion inv-num exile-chords :variant '? :omit '(i ri) )) (setf rh (pitch-transpose 0 (make-omn :length '(e) :pitch (vector-map (pitch-melodize exile-chords-i) vector-exile-chorale) :velocity '(p) :articulation '(leg) :span :pitch))) Thanks, Stephane!
  8. I'm trying to figure out how to span (attach) slurs individually to each measure in a pitch sequence. When I use :articulation key in make-omn, a single slur is spanned from the beginning until the end of the sequence. Here's a short code excerpt in case someone has a suggestion. Perhaps I need to apply vector-map to :articulation? (make-omn :length '(e) :pitch (vector-map (pitch-melodize chords) vector-chords) :velocity '(p) :articulation '(leg) :span :pitch) Thank you!
  9. Thank you both! This is very helpful and informative - I really appreciate!
  10. I wondered if someone would be willing to help me with a snippet of code. I'm trying to generate a series of 100 sublist 2 digit-pairs. The first of those digit-pairs randomly (or according to a predefined vector) alternates between 1 and 2 only: '((1 #) (2 #) (2 #) (1 #) (2 #) (1 #) (1 #) etc). The second of those digit-pairs unfolds numbers from 1 to 100 between every consecutive sub-list pair: '((# 1) (# 2) (# 3) (# 4) (# 5) etc). The result would be something like this: '((1 1) (2 2) (2 3) (1 4) (2 5) (1 6) (1 7) ... (2 100)) Thank you!
  11. I'm working on a piano piece that features two streams of different material in each hand. I want to swap selected measures (in my case, same measures) from right to left hand (e.g., 2nd m in r.h. with 2nd m in l.h., 5th m in r.h with 5th in l.h., etc; or at random, of course). I wondered if there's a function that would accomplish that? Thank you! Zvony
  12. (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)
  13. 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)
  14. Thanks so much! That's it - so elegant. I just couldn't remember gen-divide.
  15. 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))
  16. Maybe I missed it, but is there a function that removes ties, opposite to filter-tie? Thanks!
  17. 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) )
  18. 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) )
  19. 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?
  20. 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
  21. 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.
  22. 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!
  23. 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)
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy