Jump to content

Stephane Boussuge

Moderators
  • Posts

    1,058
  • Joined

  • Last visited

Everything posted by Stephane Boussuge

  1. You may have a look to the function get-harmonic-path. You can decide the harmonic rhythm analysis you use fir this function with the parameter time. You can pass after the output of this function to pcs-analysis. S.
  2. OSC is already in Opusmodus but not documented. Janusz ? S.
  3. Dear Torsten, i will have a look to git installation when i will have a bit of time. Thank you for the information. best, Stéphane
  4. Hi Torsten, when evaluate your OMN-utils.lisp i get a: Error: There is no package named "TU" I would like to use your last version of edit-omn but it seem i need some other files (TU). Thanks S.
  5. Thanks Torsten, your edit-omn function is definitively super-mega useful !! I love it :-) S.
  6. Just for info, it will be more in "Opusmodus style" to write that this way, using make-omn function: (setf some-pitches (gen-repeat 145 'g4)) (setf some-lengths (span some-pitches '(e e e -e -e -e -e -e -e -e -e -e -e e e e -e -e -e -e -e -e -e -e -e -e e e e -e -e -e -e -e -e -e -e -e -e e e e -e -e -e -e -e -e -e -e -e -e e e e -e -e -e -e -e -e -e -e -e -e e e e -e -e -e -e -e -e -e -e -e -e e e e -e -e -e -e -e -e -e -e -e -e e e e -e -e -e -e -e -e -e -e -e -e e e e -e -e -e -e -e -e -e -e -e -e e e e e -e -e -e -e -e -e -e -e -e e e e e -e -e -e -e -e -e -e -e -e e -e - - = = = = = = = = = = - - - = = = = = = = = = = - - - = = = = = = = = = = - - - = = = = = = = = = = - - - = = = = = = = = = = - - - = = = = = = = = = = - - - = = = = = = = = = = - - - = = = = = = = = = = - - - = = = = = = = = = = - - - - = = = = = = = = = - - - - = = = = = = = = = -))) ;(setf some-division '(12)) ;(setf length-div (gen-divide some-division some-lengths)) (setf part (make-omn :pitch some-pitches :length some-lengths )) (setf time-sig '(12 8)) (def-score time ( :key-signature 'chromatic :time-signature time-sig :tempo 112 :layout (clarinet-layout 'clarinet) ) (clarinet :omn part :channel 1 :sound 'gm :program 'clarinet )) S.
  7. for example if you need 3 bars of 3/4 and 2 of 6/8 you can write: :time-signature '((3 4 3)(6 8 2)) you can also separate your length material with gen-divide and get the time signature. Example here: (setf some-pitches (integer-to-pitch (gen-integer-step 0 64 '(2 1 2 3 -2 -1 -2 -1 -2)))) (setf some-lengths (rnd-sample (length some-pitches) '(e e -e e))) (setf some-division '(8 12 8 6 9)) (setf length-div (gen-divide some-division some-lengths)) (setf time-sig (get-time-signature length-div)) (def-score time ( :key-signature 'chromatic :time-signature time-sig :tempo 112 :layout (clarinet-layout 'clarinet) ) (clarinet :length length-div :pitch some-pitches :channel 1 :sound 'gm :program 'clarinet )) SB.
  8. Here's a small function from my toolbox i use very often for adding articulation on already generated OMN material. Also useful for adding legato slurs. Link to video example: ;;; ============================================= ;;; ARTICULATION-MAP-OMN ;;; AJOUTE DES ARTICULATIONS SUR DES LISTES OMN ;;; BASÉES SUR DU PATTERN MATCHING. ;;; ============================================= (defun articulation-map-omn (map omn &key (otherwise '-)) (do-verbose ("articulation-map-omn") (let ((plist (disassemble-omn omn))) (setf (getf plist :articulation) (pattern-map map (getf plist :length) :otherwise otherwise :swallow t)) (apply 'make-omn plist)))) #| USAGE (setf mat '((q c4 p d4 e e4 f4 s g4 f a4 g4 f4 q e4) (e d4 mp c4 s d4 e4 f4 e4 q d4 e c4 b3) (h a3 f -h))) (setf prules '(((s s s) (leg leg leg)) ((s s) (leg leg)) ((s e) (- -)) ((s q) (- stacc)) ((q) (stacc)) ((e) (-)))) (setf out (articulation-map-omn prules mat)) |# SB.
  9. Hi Torsten, i get a: Error: There is no package named "TU" i like the metric-shift function (not only), i will add it to my toolbox. Thx S.
  10. Hi Torsten, very good and very interesting !! thank you for sharing this, i enjoy it greatly ! All the best S.
  11. Hi, Here's a small Woodwinds quartet: SB
  12. Dear Wim, thank you for your kind words. the transposition was chosen by hear. About the harmonic path, it come from my original idea mat1: (setf mat1 '(#|1|# (ped e a2 p ds3 a3 d4 q c5 fs4 ped+tie) #|2|# (ped w fs4) #|3|# (ped e a2 ds3 a3 d4 q c5 fs4 ped) #|4|# (ped q d5 h. c5) #|5|# (ped e a2 ds3 a3 d4 q c5 fs4) #|6|# (w fs4 ped1) #|7|# (ped e a2 ds3 a3 d4 q d5 c5 ped) #|8|# (w fs4 ped) )) ;;; get the harmonic content from basic material mat1 (setf hmat1 (get-harmonic-path mat1 :chord t :unique t :time '(ww))) After this extraction, i apply some transposition to this material (extended by gen-trim): ;;; Transpose list to apply to harmonic path (setf trsp2 '(-2 4 -2 2 8 -1 8 3 -3 2 6 0 1 0 -1 -1 4 4 9 7)) (setf path2 (pitch-transpose trsp2 (gen-trim 20 (mclist hmat1)))) And finally, i use chord-closest-path function for the voice leading: ;; chord closest path generation to use as harmonic material for variation 3 ;(setf closest-hpath2 (chord-closest-path (car path2) path2)) And i've added the output of this function directly in a variable because the computation time for chord-closest-path is a bit long and i like to be able to run my scripts very often when composing (for reading the score and hearing) and need fast evaluation: (setf closest-hpath2 '((g2cs3g3c4bb4e4) (g2cs3fs3cs4bb4e4fs5) (g2cs3g3c4bb4e4) (gs2d3f3b3b4e4e5) (gs2d3f3b3bb4f4) (gs2cs3gs3b3cs5f4d3) (gs2d3f3b3bb4f4) (fs2c3a3c4f4eb4f5) (fs2c3fs3b3a4eb4) (gs2d3f3b3b4e4e5) (gs2c3fs3eb4a4eb4) (fs2d3a3c4a4eb4d5) (g2cs3bb3bb3eb5e4) (fs2c3a3d4a4eb4d5) (gs2cs3gs3b3d5f4) (gs2cs3gs3b3cs5f4d3) (g2cs3fs3cs4bb4e4) (g2cs3fs3cs4bb4e4fs5) (fs2c3fs3b3a4eb4) (g2cs3a3bb3a4e4e4))) SB.
  13. Hi, for study purpose only, you will find attached to this post the score script of this Prelude for Piano. SB. PreludeForNicolai.opmo
  14. You just have to create your folders and subfolder to create structure in Utility. S.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy