Jump to content

opmo

Administrators
  • Posts

    2,894
  • Joined

  • Last visited

Everything posted by opmo

  1. Yes it is possible on my dev system. I will see what I can do.
  2. I used this function for conversion of 4 instrument each with in its own tempo to one 'global' tempo. Examples: (length-tempo-map 72 36 '1/4) => 1/2 (length-tempo-map 72 36 'w) => 2 (length-tempo-map 72 88 '(1/8 1/4 -1/4)) => (9/88 9/44 -9/44) (length-tempo-map 72 '(120 36) '((1/8 1/4 -1/4) (1/16 1/8 -1/4 1/1))) => ((3/40 3/20 -3/20) (1/8 1/4 -1/2 2)) (length-tempo-map 72 '(36 96 72) '((1/20 1/20 1/20 1/20 1/20) (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16) (1/8 1/8 1/8 1/8) (1/4 1/4 1/4 1/4 1/4 1/4 1/4 1/4)) :meter '(1 1 1)) => ((1/10 1/10 1/10 1/10 1/10) (1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8) (1/4 1/4 3/32 3/32) (3/16 3/16 3/16 1/4 1/4 1/4 1/4 1/2)) (length-tempo-map 72 36 '((e c4 e4 g4 h_e c5) (q c4 = = - - =) (q cs5 = - - = =))) => ((q c4 e4 g4 w_q c5) (h c4 = = - - =) (h cs5 = - - = =)) (length-tempo-map 72 '(36 96 72) '((e c4 e4 g4 h_e c5) (q c4 = = - - =) (q cs5 = - - = =)) :meter '(1 1 1)) => ((q c4 e4 g4 w_q c5) (e. c4 = = - -q =) (q cs5 = -h - = =))
  3. I am afraid only macOS will do for the foreseeable future (Mac mini is sufficient to run Opusmodus).
  4. I am adding all the suggestions to our todo list.
  5. Thank you Matthew for the instructions. All is working fine. Alternatively you could put (ql:quickload "quicklisp-slime-helper") (cl-user::start-swank) into the 'Quicklisp Start.lisp' file which you find in the Opusmodus/Extension folder. This way all you need to do is to start Opusmodus then Emacs and finally type M-x slime-connect
  6. Julio, just listening to you compositions, great quartet. julioherrlein.com
  7. Requirements: macOS 10.8 or higher, therefore macOS El Capitan 10.11 is fine.
  8. Added to the system: (pushnew :opusmodus *features*)
  9. A function is missing: PLIST->PAIRS > Error: There is no package named "TU" . > While executing: ccl::%parse-token, in process Listener-1(6). > Type cmd-/ to continue, cmd-. to abort, cmd-\ for a list of available restarts. > If continued: Retry finding package with name "TU". > Type :? for other options.
  10. Update: Fixed a bug in LENGTH-EXPANSION-VARIANT function when :variant with '?. Additional keyword :quantize takes care of the unfinished tuplets.
  11. Wim, I think your list is quite complete :-)
  12. I am quite busy with other work at the moment. In the POSITION-ATTRIBUTE function we get bar and delta-time, but I think bar/beat should work as well, I like your approach. I am sure you will get the function working :-)
  13. Andre, why memberp and not member (defun get-resolution2 (be) (cond ((member (cadr be) '(3 6 12 24 48)) 1/24) ((member (cadr be) '(1 2 4 8 16 32)) 1/16) ((member (cadr be) '(5 10 20 40)) 1/20) ((member (cadr be) '(7 14 28 56 1)) 1/28)))
  14. Nested tuplets will be part of ver. 2.0
  15. Congratulation a great composition beautifully structured and a great performance as well.
  16. This function will give you the correct result: (defun gen-collatz (n) (prog (value out) (setf value n) (setf out (cons value out)) loop (cond ((eql value 1) (return (nreverse out)))) (setf value (if (evenp value) (/ value 2) (+ (* 3 value) 1))) (setf out (cons value out)) (go loop))) (gen-collatz 12) => (12 6 3 10 5 16 8 4 2 1) (gen-collatz 27) => (27 82 41 124 62 31 94 47 142 71 214 107 322 161 484 242 121 364 182 91 274 137 412 206 103 310 155 466 233 700 350 175 526 263 790 395 1186 593 1780 890 445 1336 668 334 167 502 251 754 377 1132 566 283 850 425 1276 638 319 958 479 1438 719 2158 1079 3238 1619 4858 2429 7288 3644 1822 911 2734 1367 4102 2051 6154 3077 9232 4616 2308 1154 577 1732 866 433 1300 650 325 976 488 244 122 61 184 92 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1)
  17. New: BLOCK-CHORD-REDUCE The function BLOCK-CHORD-REDUCE reduces (compress) every bar of every instrument into a single chord. (setf rh '((-q. e gs3 f) (-q e a4 p stacc -) (-e q f5 f ten -e) ((acc e g6 mf) e6 p stacc -q.) (e cs4fs4c5 f marc -q e d3 p) (-e gs3 f - g6 p stacc) (-q. (acc e ds5 fff) e6 ff stacc) (-q c5 f ten) (-e (acc d6 mf) b5 p stacc - b3f5bb5 ff) (-q e a4 p stacc -) (-e cs4 f - c5 p stacc) (-q. e gs3 f))) (setf lh '((-q e bb5 f -) (-e a4 p stacc -q) (q cs4 f ten -e (acc b2 mf) d3 p stacc) (-q. e fs4c5f5 f marc) (-q e e6 p -) (-q e bb5 f -) (e b2 p stacc - (acc eb4 fff) d3 ff stacc -) (-e q fs4 f ten -e) ((acc e e3 mf) e g3 p stacc -q.) (e gs3cs4g4 ff marc -q e a4 p stacc) (-q e f5 f -) (e fs4 p stacc -q.))) In this example we use the time-signature from the sequence rh: (block-chord-reduce (list rh lh) :time rh) => ((1/2 gs3bb5) (1/2 a4) (1/2 f5cs4b2d3) (1/2 g6e6fs4c5f5) (1/2 cs4fs4c5d3e6) (1/2 gs3g6bb5) (1/2 ds5e6b2eb4d3) (1/2 c5fs4) (1/2 d6b5b3f5bb5e3g3) (1/2 gs3cs4g4a4) (1/2 cs4c5f5) (1/2 gs3fs4)) Reduce with option :row t (modus 12): (block-chord-reduce (list rh lh) :time rh :row t) Examples: Score: Howto Score/Chord Progression1.opmo (setf violin1 '(#|1|# (-t a3 f -s -t b3 -s -t b3 -s -t b3 -s -t b3 -s -t b3 -s -t b3 -s -t c4 -s) #|2|# (t c4 f c4 -s. t c4 c4 c4 c4 c4 -s. t c4 -s. t c4 -s. t d4 -s. t d4 -s. t d4 -s) #|3|# (-t d4 f -s. t d4 -s. t e4 -s. t e4 -s. t e4 -s. t e4 -s. t e4 -s. t e4 -s) #|4|# (-t e4 f -s. e e4 s s c4 c4 c4 c4 c4 c4 c4 t - - - d4 -s) #|5|# (-t e4 f -s -t e4 -s -t e4 -s -t e4 -s -t e4 -s -t e4 -s -t e4 -s -t e4 -s) #|6|# (-t a4 f -s -t a4 -s -t a4 -s -t a4 -s -t a4 -s -t a4 -s -t a4 -s -t a4 -s) #|7|# (-t b4 f -s. t b4 -s. t b4 -s. t b4 b4 b4 - b4 -s -t b4 -s -t b4 -s -t b4 -s) #|8|# (-t b4 f -s. t b4 -s. t b4 -s. t b4 b4 c5 - c5 -s -t c5 -s -t d5 -s -t d5 -s) #|9|# (e.. d5 f s s s q e5 s s s t - s e5 t) #|10|# (-t s e5 f t - s e5 t - s e5 t - s e5 t - s e5 t - s e5 t - s a5 t - a5 -s) #|11|# (-t b5 f -s. t b5 b5 c6 c6 c6 -q -s. t a3 b3 b3 b3 e -s.) #|12|# (-e -t b3 f b3 c4 c4 e -q t c4 c4 c4 c4 e s.) #|13|# (s c4 f -s. s d4 -e. t d4 d4 - d4 d4 e4 - e4 e4 e4 - e4 e4 e4 - e4 s -t) #|14|# (-e -t s c4 f -e. t c4 c4 - c4 c4 c4 - c4 c4 d4 - e4 e4 e4 - e4 -s.) #|15|# (-e -t s e4 f -e. t e4 e4 - e4 a4 a4 - a4 a4 a4 - a4 a4 a4 - b4 -s.) #|16|# (s b4 f -s. s b4 -e. t b4 b4 - b4 b4 b4 - b4 b4 b4 - b4 b4 b4 - b4 s c5 -t) #|17|# (-e -t c5 f c5 d5 d5 e -q t d5 d5 d5 e5 e s.) #|18|# (-t e5 f -s. t e5 e5 e5 e5 e5 -q -s. t e5 e5 e5 e5 e -s.) #|19|# (-t s e5 f t - s e5 t - s e5 t a5 - s a5 t - s b5 t - s b5 t c6 - s c6 t - a3 -s) #|20|# (e.. b3 f s s s q s s c4 c4 t - s c4 t) #|21|# (-t c4 f -s. t c4 -s. t c4 -s. t c4 c4 d4 - d4 -s -t d4 -s -t d4 -s -t d4 -s) #|22|# (-t e4 f -s. t e4 -s. t e4 -s. t e4 e4 e4 - e4 -s -t e4 -s -t e4 -s -t c4 -s) #|23|# (-t c4 f -s -t c4 -s -t c4 -s -t c4 -s -t c4 -s -t c4 -s -t c4 -s -t d4 -s) #|24|# (-t e4 f -s -t e4 -s -t e4 -s -t e4 -s -t e4 -s -t e4 -s -t e4 -s -t e4 -s) #|25|# (-t a4 f -s. e a4 s s s s s s s b4 b4 t - - - b4 -s) #|26|# (-t b4 f -s. t b4 -s. t b4 -s. t b4 -s. t b4 -s. t b4 -s. t b4 -s. t b4 -s) #|27|# (t b4 f b4 -s. t b4 c5 c5 c5 d5 -s. t d5 -s. t d5 -s. t d5 -s. t d5 -s. t d5 -s) #|28|# (-t e5 f -s -t e5 -s -t e5 -s -t e5 -s -t e5 -s -t e5 -s -t e5 -s -t e5 -s))) (setf violin2 '(#|1|# (-q... s e4 f fs4 fs4 t t t t t g3 -et t g3) #|2|# (t g3 f s s t t t t t -e.. t a3 a3 a3 a3 e.. -e) #|3|# (-t b3 f b3 b3 b3 e.. -s. s b3 b3 b3 t t g4 g4 g4 g4 -et t g4) #|4|# (t g4 f s s t a4 b4 b4 b4 b4 - b4 -s. t b4 -s. t b4 -s. t b4 -q) #|5|# (-t e5 f e5 e5 e5 e.. -et t e5 e5 e5 fs5 e.. -e) #|6|# (-t fs5 f fs5 fs5 fs5 e.. -ht s. fs5) #|7|# (s. fs5 f s e. s e. s e. t g5 - s g5 t) #|8|# (-t s a5 f t - s a5 t - s a5 t - b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5) #|9|# (-t e6 f -s. t e6 -s. t e6 -s t fs6 fs6 fs6 g6 - g6 -s. t g6 -s. t e4 -s. t fs4 -s) #|10|# (t fs4 f fs4 -qs. t fs4 fs4 fs4 g3 g3 -qs. t g3 g3 g3) #|11|# (t g3 f g3 -qs. t g3 g3 g3 a3 a3 -qs. t a3 a3 a3) #|12|# (t b3 f b3 -qs. t b3 b3 b3 b3 b3 -qs. s. b3) #|13|# (e.. b3 f s g4 g4 g4 q s s s t - s a4 t b4) #|14|# (-t s b4 f t - s b4 t - s b4 t - s b4 t e5 - s e5 t - s e5 t - s e5 t - s. e5) #|15|# (-t s fs5 f t - s fs5 t - s fs5 t - s fs5 t - s fs5 t - s fs5 t - s fs5 t - s. fs5) #|16|# (e.. g5 f s s s a5 q s s s t - s b5 t) #|17|# (t b5 f b5 -qs. t b5 b5 b5 b5 b5 -qs. s. b5) #|18|# (t b5 f b5 -qs. t b5 b5 b5 b5 b5 -qs. t b5 b5 e6) #|19|# (t e6 f e6 -qs. t fs6 fs6 fs6 g6 g6 -qs. t g6 e4 fs4) #|20|# (-t fs4 f -s. t fs4 -s. t fs4 -s t fs4 fs4 g3 g3 - g3 -s. t g3 -s. t g3 -s. t g3 -s) #|21|# (-t s g3 f t - s g3 t - s a3 t - a3 a3 a3 b3 b3 b3 b3 b3 b3 b3 b3 b3 g4 g4 g4 g4 g4 g4 g4) #|22|# (s. g4 f s a4 e. b4 s e. s e. t - s b4 t) #|23|# (-t e5 f e5 e5 e5 e.. -ht s. e5) #|24|# (-t e5 f e5 fs5 fs5 e.. -et t fs5 fs5 fs5 fs5 e.. -e) #|25|# (t fs5 f s s t t t t t g5 - g5 -s. t g5 -s. t a5 -s. t a5 -q) #|26|# (-t a5 f a5 a5 a5 e.. b5 -s. s b5 b5 b5 t t t t t -et t b5) #|27|# (t b5 f s s t t t t t -e.. t b5 e6 e6 e6 e.. fs6 -e) #|28|# (-q... s fs6 f fs6 g6 t t t e4 -q))) (setf viola '(#|1|# (-w) #|2|# (-w) #|3|# (-w) #|4|# (-w) #|5|# (-h -e -t g5 f -s. t e4 -s. t g4 -s) #|6|# (-t c6 f -s. e d5 s g3 e5 d5 fs3 d5 fs5 g4 e3 g3 c5 -s.) #|7|# (-w) #|8|# (-w) #|9|# (-w) #|10|# (-h -e -t d5 f g5 e4 g4 e3 -s. d3) #|11|# (e.. fs3 f s g5 e6 g5 q c5 s d5 c5 d5 t g5 - s e3 t d3) #|12|# (-t s fs5 f t g5 - s e5 t g5 - s e4 t g5 - s c5 t d5 - s g5 t e6 - s d5 t fs5 - s g4 t fs3 - g5 -s) #|13|# (-t e4 f -q -s. e g5 t c3 -s. s d3 -e. t g5 e3 d6) #|14|# (t e4 f d5 fs3 g5 e4 g4 c5 d6 g4 d5 g4 e4 d3 s fs5 -e. s g3 -e. t e3 g3 c5) #|15|# (t g3 f c5 d5 g5 e3 d5 fs3 g4 e3 g5 e3 g3 c6 s d3 -e. s g5 -e. t e6 d3 fs5) #|16|# (-t d5 f -q -s. e fs5 t g5 -s. s e4 -e. t g5 c5 d6) #|17|# (-t s g3 f t e3 - s g5 t e3 - s d5 t fs4 - s g3 t e5 - s g3 t c6 - s d5 t g5 - s e4 t g4 - c6 -s) #|18|# (e.. d5 f s g3 e5 d5 q fs3 s d5 fs5 g4 t e3 - s g3 t c5) #|19|# (-h -e -t d5 f g5 e4 g4 e3 -s. d3) #|20|# (-w) #|21|# (-w) #|22|# (-w) #|23|# (-t fs3 f -s. e g5 s e6 g5 c5 d5 c5 d5 g5 e3 d3 fs5 -s.) #|24|# (-h -e -t g5 f -s. t e5 -s. t g5 -s) #|25|# (-w) #|26|# (-w) #|27|# (-w) #|28|# (-w))) (setf cello '(#|1|# (-w) #|2|# (-w) #|3|# (-w) #|4|# (-w) #|5|# (-w) #|6|# (-w) #|7|# (-w) #|8|# (-w) #|9|# (-w) #|10|# (-q -e -t e4 f c3 e3 a4 b3 -q -s. t e2 c4 b3) #|11|# (t d2 f b3 -q -s. t d4 e3 c2 e2 a3 -q -s. t b3 e4 c3) #|12|# (t e3 f c2 -q -s. t b2 d2 e4 c5 e4 -q -s. a3) #|13|# (e.. b3 f s a3 b3 e4 q c2 s b2 d4 e4 t c4 - s e4 t c3) #|14|# (-t s e4 f t a3 - s b3 t e4 - s c5 t b3 - s d4 t e3 - s d2 t e4 - s c3 t e4 - s a2 t b2 - s. e4) #|15|# (-t s c2 f t b4 - s c3 t b3 - s d2 t e4 - s c3 t e3 - s a3 t b4 - s e3 t b3 - s e3 t c3 - s. b2) #|16|# (e.. d4 f s e2 c2 e2 q a3 s e2 a3 b3 t e4 - s c2 t b3) #|17|# (t d2 f e3 -q -s. t c2 e4 c2 e2 a4 -q -s. b2) #|18|# (t e4 f c5 -q -s. t b2 d4 b3 d4 e4 -q -s. t c3 e4 a3) #|19|# (-q -e -t b4 f e2 c2 e4 c2 -q -s. t b3 d3 e2) #|20|# (-w) #|21|# (-w) #|22|# (-w) #|23|# (-w) #|24|# (-w) #|25|# (-w) #|26|# (-w) #|27|# (-w) #|28|# (-w))) (block-chord-reduce (list violin1 violin2 viola cello)) (block-chord-reduce (list violin1 violin2 viola cello) :row t) The option :time allows to change the scope of the analysis: (block-chord-reduce (list violin1 violin2 viola cello) :time 4/8) (block-chord-reduce (list violin1 violin2 viola cello) :time 1/4) The option :bar allows to view a specified bar number only: (block-chord-reduce (list violin1 violin2 viola cello) :bar '(10 11)) Best wishes, JP
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy