Jump to content

opmo

Administrators
  • Posts

    2,901
  • Joined

  • Last visited

Reputation Activity

  1. Like
    opmo reacted to Stephane Boussuge in Mapcar Study 1 for small ensemble   
    Here's a short study for a small ensemble.
     
       
     
    All the best !
    SB.
     
    Mapcar1.opmo
     
  2. Like
    opmo got a reaction from Stephane Boussuge in length-weight   
    The additional swallow keyword (default t) will be part of the next release. 🙂
    (length-weight '((q c4 d4 e4 f4 g4 a4 b4)                  (q c4 d4 e4 f4 g4 a4 b4))                :weight '((3 1) (5 2)) :swallow nil                :seed 875) => ((q c4 d4 e4 f4 g4 - a4) (q c4 d4 - e4 f4 g4 -)) ;; With :swallow T (default) (length-weight '((q c4 d4 e4 f4 g4 a4 b4)                  (q c4 d4 e4 f4 g4 a4 b4))                :weight '((3 1) (5 2))                :seed 875) => ((q c4 d4 e4 f4 g4 - b4) (q c4 d4 - f4 g4 a4 -))
  3. Like
    opmo got a reaction from Stephane Boussuge in polygon-rhythm   
    Second example, this time with code.
    VSL: Soprano Sax, Steinway D, Upright Bass and Jazz DrumSet.
     
       
     
    (progn (init-seed 3578) (setf bd '(c2 cs2)) (setf sd '(d2 ds2 e2 f2 fs2 g2 gs2 a2 bb2 b2)) (setf lt '(c5 cs5 d5 ds5 e5 f5 fs5 g5 gs5 a5 bb5 b5)) (setf cc '(g7 c7)) (setf rc '(c4 cs7 d7 ds7 e7 f7)) (setf hh '(c4 cs4 d4 ds4 e4)) (setf ds-vel '(ff f fff)) (setf bd-gon (gen-eval 33 '(polygon-rhythm 3 16 0 :pitch (rnd-sample 32 bd) :velocity (rnd-sample 32 ds-vel)))) (setf sd-gon (gen-eval 32 '(polygon-rhythm 2 16 '? :pitch (rnd-sample 32 sd) :velocity (rnd-sample 32 ds-vel)))) (setf lt-gon (gen-eval 32 '(polygon-rhythm 2 16 '? :pitch (rnd-sample 32 lt) :velocity (rnd-sample 32 ds-vel)))) (setf cc-gon (gen-eval 32 '(polygon-rhythm 5 24 '? :pitch (rnd-sample 32 cc) :velocity (rnd-sample 32 ds-vel)))) (setf rc-gon (gen-eval 32 '(polygon-rhythm 5 24 '? :pitch (rnd-sample 32 rc) :velocity (rnd-sample 32 ds-vel)))) (setf hh-gon (gen-eval 33 '(polygon-rhythm 5 16 '? :pitch (rnd-sample 32 hh) :velocity (rnd-sample 32 ds-vel)))) (setf hexachord '(d4 eb4 fs4 g4 a4 bb4)) (setf chords (assemble-seq (gen-eval 16 '(polygon-rhythm 3 16 '? :pitch (gen-chord-series hexachord hexachord :type '? :width '(30 24 36 12) :segment t))) (gen-eval 4 '(polygon-rhythm 5 16 '? :pitch (gen-chord-series hexachord hexachord :type '? :width '(30 24 36 12) :segment t))) (gen-eval 7 '(polygon-rhythm 4 16 '? :pitch (gen-chord-series hexachord hexachord :type '? :width '(30 24 36 12) :segment nil) :legato t)) (gen-eval 5 '(polygon-rhythm 3 16 '? :pitch (gen-chord-series hexachord hexachord :type '? :width '(30 24 36 12) :segment t))))) (setf piano (assemble-seq '((-1) (-1) (-1) (-1)) (rnd-octaves '(c2 b6) (subseq chords 4 31)) '(-1))) (setf ssax (make-omn :length (assemble-seq '((-1) (-1) (-1) (-1) (-1) (-1) (-1)) (polygon-rhythm 6 16 '?) (polygon-rhythm 7 16 '?) (polygon-rhythm 9 16 '?) (polygon-rhythm 3 8 '?) (polygon-rhythm 16 16 '?) (polygon-rhythm 24 24 '?) (polygon-rhythm 8 16 '?) (polygon-rhythm 11 16 '?) (polygon-rhythm 5 16 '?) (polygon-rhythm 16 24 '?) (polygon-rhythm 6 8 '?) (polygon-rhythm 4 16 2) (polygon-rhythm 5 16 2) (polygon-rhythm 7 16 2) (polygon-rhythm 9 16 0) (polygon-rhythm 13 16 0) (polygon-rhythm 16 16 0) (polygon-rhythm 21 24 0) (polygon-rhythm 22 24 0) (polygon-rhythm 20 24 0) (polygon-rhythm 20 24 0) (polygon-rhythm 16 24 0) (polygon-rhythm 4 16 2) '((-1) (-1)) ) :pitch (ambitus 'soprano-sax (pitch-transpose (vector-to-pitch '(fs3 fs4) (mod-sine-waves 5 36 4 0.3 :modulation (gen-sine 120 5 0.4))) (pitch-variant (melodize (omn :pitch chords))))) :velocity '(ff))) (setf bass-line (assemble-seq '((-1) (-1)) (gen-eval 31 '(polygon-rhythm 9 16 '? :pitch (ambitus '(e1 g4) (pitch-variant (pitch-transpose -24 (rnd-air :type :pitch)))) :velocity '(fff))))) (ps 'vsl :ssax (list ssax) :grand (list piano) :cb (list bass-line) :ds-bd (list bd-gon) :ds-sd (list sd-gon) :ds-lt (list lt-gon) :ds-cc (list cc-gon) :ds-rc (list cc-gon) :ds-hh (list hh-gon) :tempo 120 :output :live-coding :title "Dada Quartet - EXP.2 (c) 2019 OPMO") (init-seed nil) ) Best wishes,
    Janusz

    P.S. I am almost there with the new release. 😎
  4. Thanks
    opmo got a reaction from loopyc in polygon-rhythm   
    Second example, this time with code.
    VSL: Soprano Sax, Steinway D, Upright Bass and Jazz DrumSet.
     
       
     
    (progn (init-seed 3578) (setf bd '(c2 cs2)) (setf sd '(d2 ds2 e2 f2 fs2 g2 gs2 a2 bb2 b2)) (setf lt '(c5 cs5 d5 ds5 e5 f5 fs5 g5 gs5 a5 bb5 b5)) (setf cc '(g7 c7)) (setf rc '(c4 cs7 d7 ds7 e7 f7)) (setf hh '(c4 cs4 d4 ds4 e4)) (setf ds-vel '(ff f fff)) (setf bd-gon (gen-eval 33 '(polygon-rhythm 3 16 0 :pitch (rnd-sample 32 bd) :velocity (rnd-sample 32 ds-vel)))) (setf sd-gon (gen-eval 32 '(polygon-rhythm 2 16 '? :pitch (rnd-sample 32 sd) :velocity (rnd-sample 32 ds-vel)))) (setf lt-gon (gen-eval 32 '(polygon-rhythm 2 16 '? :pitch (rnd-sample 32 lt) :velocity (rnd-sample 32 ds-vel)))) (setf cc-gon (gen-eval 32 '(polygon-rhythm 5 24 '? :pitch (rnd-sample 32 cc) :velocity (rnd-sample 32 ds-vel)))) (setf rc-gon (gen-eval 32 '(polygon-rhythm 5 24 '? :pitch (rnd-sample 32 rc) :velocity (rnd-sample 32 ds-vel)))) (setf hh-gon (gen-eval 33 '(polygon-rhythm 5 16 '? :pitch (rnd-sample 32 hh) :velocity (rnd-sample 32 ds-vel)))) (setf hexachord '(d4 eb4 fs4 g4 a4 bb4)) (setf chords (assemble-seq (gen-eval 16 '(polygon-rhythm 3 16 '? :pitch (gen-chord-series hexachord hexachord :type '? :width '(30 24 36 12) :segment t))) (gen-eval 4 '(polygon-rhythm 5 16 '? :pitch (gen-chord-series hexachord hexachord :type '? :width '(30 24 36 12) :segment t))) (gen-eval 7 '(polygon-rhythm 4 16 '? :pitch (gen-chord-series hexachord hexachord :type '? :width '(30 24 36 12) :segment nil) :legato t)) (gen-eval 5 '(polygon-rhythm 3 16 '? :pitch (gen-chord-series hexachord hexachord :type '? :width '(30 24 36 12) :segment t))))) (setf piano (assemble-seq '((-1) (-1) (-1) (-1)) (rnd-octaves '(c2 b6) (subseq chords 4 31)) '(-1))) (setf ssax (make-omn :length (assemble-seq '((-1) (-1) (-1) (-1) (-1) (-1) (-1)) (polygon-rhythm 6 16 '?) (polygon-rhythm 7 16 '?) (polygon-rhythm 9 16 '?) (polygon-rhythm 3 8 '?) (polygon-rhythm 16 16 '?) (polygon-rhythm 24 24 '?) (polygon-rhythm 8 16 '?) (polygon-rhythm 11 16 '?) (polygon-rhythm 5 16 '?) (polygon-rhythm 16 24 '?) (polygon-rhythm 6 8 '?) (polygon-rhythm 4 16 2) (polygon-rhythm 5 16 2) (polygon-rhythm 7 16 2) (polygon-rhythm 9 16 0) (polygon-rhythm 13 16 0) (polygon-rhythm 16 16 0) (polygon-rhythm 21 24 0) (polygon-rhythm 22 24 0) (polygon-rhythm 20 24 0) (polygon-rhythm 20 24 0) (polygon-rhythm 16 24 0) (polygon-rhythm 4 16 2) '((-1) (-1)) ) :pitch (ambitus 'soprano-sax (pitch-transpose (vector-to-pitch '(fs3 fs4) (mod-sine-waves 5 36 4 0.3 :modulation (gen-sine 120 5 0.4))) (pitch-variant (melodize (omn :pitch chords))))) :velocity '(ff))) (setf bass-line (assemble-seq '((-1) (-1)) (gen-eval 31 '(polygon-rhythm 9 16 '? :pitch (ambitus '(e1 g4) (pitch-variant (pitch-transpose -24 (rnd-air :type :pitch)))) :velocity '(fff))))) (ps 'vsl :ssax (list ssax) :grand (list piano) :cb (list bass-line) :ds-bd (list bd-gon) :ds-sd (list sd-gon) :ds-lt (list lt-gon) :ds-cc (list cc-gon) :ds-rc (list cc-gon) :ds-hh (list hh-gon) :tempo 120 :output :live-coding :title "Dada Quartet - EXP.2 (c) 2019 OPMO") (init-seed nil) ) Best wishes,
    Janusz

    P.S. I am almost there with the new release. 😎
  5. Thanks
    opmo reacted to loopyc in polygon-rhythm   
    You've got my attention! Amazing example, thanks 🙂
  6. Thanks
    opmo got a reaction from loopyc in length-weight   
    The additional swallow keyword (default t) will be part of the next release. 🙂
    (length-weight '((q c4 d4 e4 f4 g4 a4 b4)                  (q c4 d4 e4 f4 g4 a4 b4))                :weight '((3 1) (5 2)) :swallow nil                :seed 875) => ((q c4 d4 e4 f4 g4 - a4) (q c4 d4 - e4 f4 g4 -)) ;; With :swallow T (default) (length-weight '((q c4 d4 e4 f4 g4 a4 b4)                  (q c4 d4 e4 f4 g4 a4 b4))                :weight '((3 1) (5 2))                :seed 875) => ((q c4 d4 e4 f4 g4 - b4) (q c4 d4 - f4 g4 a4 -))
  7. Like
    opmo got a reaction from JulioHerrlein in polygon-rhythm   
    The forthcoming POLYGON-RHYTHM function will allow you to think and compose in a clear symmetrical structures. The great amount of keywords (OPMO stile) makes this algorithm very powerful.
     
    This is a short example using POLYGON-RHYTHM exclusively.
    Instruments: VSL Tenor Sax and Jazz Drumset.
     
       
     
  8. Thanks
    opmo reacted to Stephane Boussuge in VSL Syncron-ized Special Edition Plus Soundset   
    Hello,
     
    here's the VSL Syncron-ized Special Edition Plus Soundset.
     
    All the best !
    Stéphane
    VSL-SynchronSpecial-Edition.lisp
  9. Like
    opmo got a reaction from Stephane Boussuge in polygon-rhythm   
    The forthcoming POLYGON-RHYTHM function will allow you to think and compose in a clear symmetrical structures. The great amount of keywords (OPMO stile) makes this algorithm very powerful.
     
    This is a short example using POLYGON-RHYTHM exclusively.
    Instruments: VSL Tenor Sax and Jazz Drumset.
     
       
     
  10. Like
    opmo got a reaction from o_e in polygon-rhythm   
    The forthcoming POLYGON-RHYTHM function will allow you to think and compose in a clear symmetrical structures. The great amount of keywords (OPMO stile) makes this algorithm very powerful.
     
    This is a short example using POLYGON-RHYTHM exclusively.
    Instruments: VSL Tenor Sax and Jazz Drumset.
     
       
     
  11. Thanks
    opmo reacted to AM in polygon-rhythm   
    very nice, janusz!! 😎
  12. Like
    opmo got a reaction from AM in polygon-rhythm   
    The forthcoming POLYGON-RHYTHM function will allow you to think and compose in a clear symmetrical structures. The great amount of keywords (OPMO stile) makes this algorithm very powerful.
     
    This is a short example using POLYGON-RHYTHM exclusively.
    Instruments: VSL Tenor Sax and Jazz Drumset.
     
       
     
  13. Thanks
    opmo reacted to o_e in Remove Unison from Chord   
    (chord-pitch-unique chords) => (gs3gs4ds5 ab3gs4) hth!
  14. Like
    opmo got a reaction from AM in add-rnd-dust to lengths   
    (defun gen-rnd-dust (sequence &key (span '(0.1)) (quantize '(1 2 3 4 5 6 7 8)) (scale 1.0) (tolerance 0.05) seed)   (let (state)     (setf state *init-seed*)     (setf seed (rnd-seed seed))     (do-verbose ("gen-rnd-dust, span: ~s quantize: ~s scale: ~s tolerance: ~s seed: ~s"                  span quantize scale tolerance seed)       (disassembling-omn ((sequence plist) sequence :length)         (let* ((length sequence)                (sp)                (out (float-to-ratio                      (loop                         with cnt = 0                        for i in length                        do (setf sp (nth cnt span))                        when (> i 0)                         collect (+ i (car (rnd-number 1 0.0 (* i sp) :seed (seed))))                        else collect (- i (car (rnd-number 1 0.0 (* i sp) :seed (seed))))                        when (< cnt (1- (length span)))                        do (incf cnt))                      :ratio 1)))           (init-state state)           (quantize out quantize :scale scale :tolerance tolerance)))))) or (with sublists):
    (defun gen-rnd-dust (sequence &key (span '(0.1)) (quantize '(1 2 3 4 5 6 7 8)) (scale 1.0) (tolerance 0.05) seed) (let (state) (setf state *init-seed*) (setf seed (rnd-seed seed)) (do-verbose ("gen-rnd-dust, span: ~s quantize: ~s scale: ~s tolerance: ~s seed: ~s" span quantize scale tolerance seed) (let ((ts (get-time-signature sequence)) (seq (flatten-omn sequence))) (omn-to-time-signature (disassembling-omn ((seq plist) seq :length) (let* ((length seq) (sp) (out (float-to-ratio (loop with cnt = 0 for i in length do (setf sp (nth cnt span)) when (> i 0) collect (+ i (car (rnd-number 1 0.0 (* i sp) :seed (seed)))) else collect (- i (car (rnd-number 1 0.0 (* i sp) :seed (seed)))) when (< cnt (1- (length span))) do (incf cnt)) :ratio 1))) (init-state state) (quantize out quantize :scale scale :tolerance tolerance))) ts)))))  
    Best,
    Janusz
  15. Like
    opmo reacted to Stephane Boussuge in Pour et Contre 1 for 4 hands Piano   
    Hi,
     
    Here's a score for 4 hands recently finished.
     
       
     
    SB.

    Score:
    PourEtContre1Edit2.opmo
     
  16. Like
    opmo reacted to AM in modify the pitch contour in a pitch-field   
    greetings
    andré
    ;;; MODIFY THE PITCH CONTOUR inside a pitchfield or tonality ;;; please evaluate the example and have a look to the contours ;;; subfunction (defun position-items (items alist) (loop for item in items append (position-item item alist))) ;;; function (defun compr/expand-melody (melody field &key (type 'add) (n 1) (shift 0)) (let* ((ints (loop for i in (difference (position-items (pitch-to-midi melody) (pitch-to-midi field))) collect (cond ((equal type 'add) (cond ((<= i -1) (- i n)) ((>= i 1) (+ i n)) (t i))) ((equal type 'fibonacci) (cond ((>= i 1) (+ i (fibonacci i))) ((<= i -1) (- i (fibonacci (abs i)))) (t i))) ((equal type 'summativ) (cond ((>= i 1) (+ i (+ i n))) ((<= i -1) (- i (+ (abs i) n))) (t i))))))) (position-filter (x+b (interval-to-integer ints :start (car (position-items melody field))) shift) field))) ;;; expand 1a (progn (setf seed (random 100)) (pitch-list-plot (list (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n 1) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n 2) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n 3) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n 5) (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed)) :join-points t)) ;;; expand 1b => using shift (changed startposition) (progn (setf seed (random 100)) (pitch-list-plot (list (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n 1 :shift 1) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n 2 :shift 2) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n 3 :shift 3) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n 5 :shift 4) (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed)) :join-points t)) ;;; compress (progn (setf seed (random 100)) (pitch-list-plot (list (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n -1) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n -2) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'add :n -3) (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed)) :join-points t)) ;;; expand 2 with fibonacci (progn (setf seed (random 100)) (pitch-list-plot (list (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'fibonacci) (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed)) :join-points t)) ;;; expand 3 summativ (progn (setf seed (random 100)) (pitch-list-plot (list (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'summativ :n 1) (compr/expand-melody (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed) (gen-sieve '(c1 c9) '(2 1 1) :type :pitch) :type 'summativ :n 2) (rnd-sample 7 (gen-sieve '(c4 c5) '(2 1 1) :type :pitch) :seed seed)) :join-points t))  
     
    some evaluations -> different melodic contours (rnd / in a sieve) and its expansions
     
    Bildschirmaufnahme 2019-05-26 um 22.04.38.mov
  17. Thanks
    opmo got a reaction from JulioHerrlein in OLD VSL Gig Files articulations   
    Naturally you can do that. You find the answer in the Def-Sound-Set Library examples, look for VSL files.

    Example:
    ;; Patches, keyswitches and controllers change events. (def-sound-set VSL-Harmonium-KS                :programs   (:group Stops           Aeoline             (:key c6  :key a0)           Bassoon-Hautbois    (:key cs6 :key a0)           Clairon-Fifre       (:key d6  :key a0)           Clarinette-Bourdon  (:key ds6 :key a0)           Flute-Coranglais    (:key e6  :key a0)           Grandjeu            (:key f6  :key a0)           Percussion          (:key fs6 :key a0)           Voix-Celeste        (:key g6  :key a0)    )      :controllers   (:group Default-Settings           Pitch               0           Velocity-XF         2           Volume              7           Pan                10           Expression         11           Reverb-Dry/Wet     14           Reverb-On/Off      15           Slot-XF            20           Start-Scaler       21           Master-Attack      22           Master-Release     23           Master-Filter      24           Delay-Scaler       25           Tuning-Scaler      26           Humanize           27           Velocity-XF-On-Off 28           Rsamp-On-Off       29           Dynamics-Scaler    30           :group Pedal           Ped                64           Sost-Ped           66           Una-Corda          67                      :group Matrix           cc1                 1              ) )  
  18. Like
    opmo got a reaction from Stephane Boussuge in Opusmodus 1.3.24844   
    – New function:
    CHORD-PROGRESSION - sorts a sequence of chords and pitches to the lowest or highest chord note.
     
    – Update:
    AMBITUS function allows range smaller than 6 semitones.

    – Fixed:
    Quick Start - Lesson 1 - OMN

    – Documentation updates.
     
     
    CHORD-PROGRESSION
    This function will sort a sequence of chords and pitches to the lowest or highest chord note.
     
    Sorting to lowest chord note:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4)) => (g2g3 g2d4 g2g4 a2a3 a2e4 a2a4)
     
    Sorting to highest chord note:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4) :sort 'high) => (g2g3 a2a3 g2d4 a2e4 g2g4 a2a4)
     
     
    Examples:
    (setf omn '((q d4a4g5 fs4eb5bb5 eb4fs5d5 bb4g5a5 fs4eb5d6 bb4a5g6)             (q g4d4a4 bb4fs4eb4 a4g5d6 eb5bb5fs6 bb4a5g5 eb5d5fs5)))  

    (chord-progression omn)  

     
    (chord-progression omn :sort 'high)  

     
     
    (chord-progression omn :sort '(high low) :reverse '(nil t))
     
    Best wishes,
    Janusz
  19. Thanks
    opmo got a reaction from JulioHerrlein in Opusmodus 1.3.24844   
    – New function:
    CHORD-PROGRESSION - sorts a sequence of chords and pitches to the lowest or highest chord note.
     
    – Update:
    AMBITUS function allows range smaller than 6 semitones.

    – Fixed:
    Quick Start - Lesson 1 - OMN

    – Documentation updates.
     
     
    CHORD-PROGRESSION
    This function will sort a sequence of chords and pitches to the lowest or highest chord note.
     
    Sorting to lowest chord note:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4)) => (g2g3 g2d4 g2g4 a2a3 a2e4 a2a4)
     
    Sorting to highest chord note:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4) :sort 'high) => (g2g3 a2a3 g2d4 a2e4 g2g4 a2a4)
     
     
    Examples:
    (setf omn '((q d4a4g5 fs4eb5bb5 eb4fs5d5 bb4g5a5 fs4eb5d6 bb4a5g6)             (q g4d4a4 bb4fs4eb4 a4g5d6 eb5bb5fs6 bb4a5g5 eb5d5fs5)))  

    (chord-progression omn)  

     
    (chord-progression omn :sort 'high)  

     
     
    (chord-progression omn :sort '(high low) :reverse '(nil t))
     
    Best wishes,
    Janusz
  20. Thanks
    opmo got a reaction from lviklund in sorting chords   
    Here it is:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4)) => (g2g3 g2d4 g2g4 a2a3 a2e4 a2a4) (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4) :sort 'high) => (g2g3 a2a3 g2d4 a2e4 g2g4 a2a4)  
    The CHORD-PROGRESSION function will be part of the next release.
  21. Like
    opmo got a reaction from AM in sorting chords   
    Here it is:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4)) => (g2g3 g2d4 g2g4 a2a3 a2e4 a2a4) (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4) :sort 'high) => (g2g3 a2a3 g2d4 a2e4 g2g4 a2a4)  
    The CHORD-PROGRESSION function will be part of the next release.
  22. Like
    opmo got a reaction from Stephane Boussuge in sorting chords   
    Here it is:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4)) => (g2g3 g2d4 g2g4 a2a3 a2e4 a2a4) (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4) :sort 'high) => (g2g3 a2a3 g2d4 a2e4 g2g4 a2a4)  
    The CHORD-PROGRESSION function will be part of the next release.
  23. Thanks
    opmo got a reaction from EAIP in sorting chords   
    Here it is:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4)) => (g2g3 g2d4 g2g4 a2a3 a2e4 a2a4) (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4) :sort 'high) => (g2g3 a2a3 g2d4 a2e4 g2g4 a2a4)  
    The CHORD-PROGRESSION function will be part of the next release.
  24. Thanks
    opmo got a reaction from JulioHerrlein in sorting chords   
    Here it is:
    (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4)) => (g2g3 g2d4 g2g4 a2a3 a2e4 a2a4) (chord-progression '(g2g3 a2a4 a2a3 g2d4 g2g4 a2e4) :sort 'high) => (g2g3 a2a3 g2d4 a2e4 g2g4 a2a4)  
    The CHORD-PROGRESSION function will be part of the next release.
  25. Like
    opmo got a reaction from Stephane Boussuge in Opusmodus 1.3.24828   
    – Fixed:
    Removed AllNotesOff in Live Coding Instrument sequence-loop. 

    – Documentation updates.
     
    Finally the Live Coding Instrument is working as it should, no more notes off while waiting. 🙂

    Best wishes,
    Janusz
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy