Jump to content

JulioHerrlein

core_group_3
  • Content Count

    201
  • Joined

  • Last visited

  • Days Won

    12

Reputation Activity

  1. reaction_title_1
    JulioHerrlein reacted to opmo in Circle-Pitch-Plot   
    The CIRCLE-RHYTHM-PLOT will use dash circle ("time like") for a better distinction between the CIRCLE-PITCH-PLOT.


  2. reaction_title_1
    JulioHerrlein reacted to Stephane Boussuge in Circle-Pitch-Plot   
    Associate a list of symbols (names or better, numbers) to this list of rhythms and map symbols to rhythm for structure.
    Look in opmo examples folder the Quartet 1b from Nigel Morgan who use this technique with SUBSTITUTE-MAP.
     
    S.
  3. reaction_title_2
    JulioHerrlein reacted to opmo in Circle-Pitch-Plot   
    Euclidean Rhythm
    (circle-rhythm-plot (gen-binary-euclidean 1 16 4 12) :point-radius 4 :points 16)

     
  4. reaction_title_2
    JulioHerrlein reacted to opmo in Circle-Pitch-Plot   
    soon.
  5. reaction_title_1
    JulioHerrlein got a reaction from AM in Giant Steps Improvisation generator   
    Hello, All
     
    The idea is to generate some improvised lines over the Giant Steps progression.
    Every time the code is evaluated, a different comping and improvisation is generated.
    In this first effort, the improvisation is generated by the arpeggios resultating from the voice-leading of the progression.
    After that, I want to code some superimpositions of other chord substitutions.
     
    This is something I came with after studying the Harmonic-Path Function ( through some example by Stephane Boussuge)
    I also got some Drums from Jazz Trio, by Janusz Podrazik.
    Below is the commented code and an mp3 showing the result.
     
    All the best,
     
    Julio
     
    gsteps_GEN2.mp3
     
    ;; Giant Steps Progression provided as Harmonic Path. ;; Some chords are repeated (the chords that last more time). (setf harmpath '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7))) ;; Just the Roots from the chord progression: for building the bassline later. basshpath (pitch-demix 4 harmpath) ;; Taking out the rhythm information of the bassline OMN, ;; organizing sublist of 1 element for repeating the tones twice, ;; preparing for another rhythm purposes. basspitches (gen-repeat 6 (flatten (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (ambitus '(e1 g2) basshpath))))))) ;; Using the same harmonic path as a voice leading comping and repeating it ;; in the same way I did with the bass line (twice each chord). ;; Bass line and comping will have the same rhythm kicks. comping (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))))) ;; MELODIZANDO HAR-PATH. Melodizing the same voice-leading of the comping ;; to get the arpeggios for soloing. melodia (flatten (pitch-melodize (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))) ;; Repeating the melody list some times. gstepspitches (gen-repeat 6 (flatten (omn :pitch melodia))) ) ;; Defining and randomizing rhythms. (setf r1 (rnd-order '((s s s s -s -s -s -s))) r2 (rnd-order '((s s s s -s -s -s -s))) r3 (rnd-order '((s s s s -s -s -s -s))) r4 (rnd-order '((s s s s -s -s -s -s))) r5 (rnd-order '((s s s s -s -s -s -s))) r6 (rnd-order '((s s s s -s -s -s -s))) r7 (rnd-order '((s s s s -s -s -s -s))) r8 (rnd-order '((s s s s -s -s -s -s))) r9 (rnd-order '((s -s -s -s))) r9b (rnd-order '((s -s -s -s))) r10 '(s -s -s -s) r11 (rnd-order '((s s s -s))) r12 '(-s -s -s -s) rhy2 (flatten (apply-eval (rnd-order '((r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8))))) rhyinv (length-invert rhy2) bdbsch (gen-repeat 6 (flatten (apply-eval (rnd-order '((r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9))))))) ;; Setting Up OMN for each instrument. (setf gssolo (make-omn :length rhy2 :pitch gstepspitches :velocity (rnd-order'(mf p f p ff mf))) bassline (make-omn :length bdbsch :pitch basspitches :velocity (rnd-order'(mf p f p ff mf))) pnocomp (make-omn :length bdbsch :pitch comping :velocity (rnd-order'(mf p f p ff mf))) ) ;;--------------------------------------------------------- ;; Some Drums ;; (From Janusz Jazz Trio, with some tweaks in the hats) ;;--------------------------------------------------------- (setf hh1 (length-span 8/4 '(-s gs2 ff))) ;(setf oh1 (length-span 8/4 '(-s - bb2 ff -))) ;(setf ch1 (length-span 8/4 '(s fs2 ff -))) (setf sn1 (length-span 8/4 '(-e d2 - - a2 - - s = q f2 e))) (setf bd1 (length-span 8/4 '(-s b1 ff e c2 = -e. e = -e. -s))) (setf hh (rnd-order (gen-repeat 18 (list hh1)))) ;(setf oh (rnd-order (gen-repeat 18 (list oh1)))) ;(setf ch (rnd-order (gen-repeat 18 (list ch1)))) (setf sn (pitch-figurate '(3 2) (rnd-order (gen-repeat 18 (list sn1))) :interval '(-1 -2 14))) (setf bd (rnd-order (gen-repeat 18 (list bd1)))) ;; ------- SCORE (adapted from Harmonic Path Study, Boussuge) (def-score giant-steps-vl-improv (:title "giant-steps-vl-improv" :composer "Julio Herrlein" :copyright "Copyright © 2018 HERRLEIN" :key-signature '(c maj) :time-signature '(4 4) :tempo 124 :ignore-velocity t :layout (list (xylophone-single-layout 'i1) (guitar-layout 'i2) (contrabass-layout 'i3))) (i1 :omn gssolo :channel 1 :sound 'gm :program 'Clarinet :volume 100) (i2 :omn pnocomp :channel 2 :sound 'gm :program 'Electric-Piano-1 :volume 80) (i3 :omn bassline :channel 4 :sound 'gm :program 'Electric-Bass-Finger :volume 100) (hh :omn hh :channel 10 :sound 'gm :program 0 :volume 70) ;(oh :omn oh) ;(ch :omn oh) (sn :omn sn) (bd :omn bd) )  
  6. reaction_title_1
    JulioHerrlein got a reaction from AM in Giant Steps Improvisation generator   
    Hello, All
     
    The idea is to generate some improvised lines over the Giant Steps progression.
    Every time the code is evaluated, a different comping and improvisation is generated.
    In this first effort, the improvisation is generated by the arpeggios resultating from the voice-leading of the progression.
    After that, I want to code some superimpositions of other chord substitutions.
     
    This is something I came with after studying the Harmonic-Path Function ( through some example by Stephane Boussuge)
    I also got some Drums from Jazz Trio, by Janusz Podrazik.
    Below is the commented code and an mp3 showing the result.
     
    All the best,
     
    Julio
     
    gsteps_GEN2.mp3
     
    ;; Giant Steps Progression provided as Harmonic Path. ;; Some chords are repeated (the chords that last more time). (setf harmpath '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7))) ;; Just the Roots from the chord progression: for building the bassline later. basshpath (pitch-demix 4 harmpath) ;; Taking out the rhythm information of the bassline OMN, ;; organizing sublist of 1 element for repeating the tones twice, ;; preparing for another rhythm purposes. basspitches (gen-repeat 6 (flatten (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (ambitus '(e1 g2) basshpath))))))) ;; Using the same harmonic path as a voice leading comping and repeating it ;; in the same way I did with the bass line (twice each chord). ;; Bass line and comping will have the same rhythm kicks. comping (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))))) ;; MELODIZANDO HAR-PATH. Melodizing the same voice-leading of the comping ;; to get the arpeggios for soloing. melodia (flatten (pitch-melodize (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))) ;; Repeating the melody list some times. gstepspitches (gen-repeat 6 (flatten (omn :pitch melodia))) ) ;; Defining and randomizing rhythms. (setf r1 (rnd-order '((s s s s -s -s -s -s))) r2 (rnd-order '((s s s s -s -s -s -s))) r3 (rnd-order '((s s s s -s -s -s -s))) r4 (rnd-order '((s s s s -s -s -s -s))) r5 (rnd-order '((s s s s -s -s -s -s))) r6 (rnd-order '((s s s s -s -s -s -s))) r7 (rnd-order '((s s s s -s -s -s -s))) r8 (rnd-order '((s s s s -s -s -s -s))) r9 (rnd-order '((s -s -s -s))) r9b (rnd-order '((s -s -s -s))) r10 '(s -s -s -s) r11 (rnd-order '((s s s -s))) r12 '(-s -s -s -s) rhy2 (flatten (apply-eval (rnd-order '((r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8))))) rhyinv (length-invert rhy2) bdbsch (gen-repeat 6 (flatten (apply-eval (rnd-order '((r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9))))))) ;; Setting Up OMN for each instrument. (setf gssolo (make-omn :length rhy2 :pitch gstepspitches :velocity (rnd-order'(mf p f p ff mf))) bassline (make-omn :length bdbsch :pitch basspitches :velocity (rnd-order'(mf p f p ff mf))) pnocomp (make-omn :length bdbsch :pitch comping :velocity (rnd-order'(mf p f p ff mf))) ) ;;--------------------------------------------------------- ;; Some Drums ;; (From Janusz Jazz Trio, with some tweaks in the hats) ;;--------------------------------------------------------- (setf hh1 (length-span 8/4 '(-s gs2 ff))) ;(setf oh1 (length-span 8/4 '(-s - bb2 ff -))) ;(setf ch1 (length-span 8/4 '(s fs2 ff -))) (setf sn1 (length-span 8/4 '(-e d2 - - a2 - - s = q f2 e))) (setf bd1 (length-span 8/4 '(-s b1 ff e c2 = -e. e = -e. -s))) (setf hh (rnd-order (gen-repeat 18 (list hh1)))) ;(setf oh (rnd-order (gen-repeat 18 (list oh1)))) ;(setf ch (rnd-order (gen-repeat 18 (list ch1)))) (setf sn (pitch-figurate '(3 2) (rnd-order (gen-repeat 18 (list sn1))) :interval '(-1 -2 14))) (setf bd (rnd-order (gen-repeat 18 (list bd1)))) ;; ------- SCORE (adapted from Harmonic Path Study, Boussuge) (def-score giant-steps-vl-improv (:title "giant-steps-vl-improv" :composer "Julio Herrlein" :copyright "Copyright © 2018 HERRLEIN" :key-signature '(c maj) :time-signature '(4 4) :tempo 124 :ignore-velocity t :layout (list (xylophone-single-layout 'i1) (guitar-layout 'i2) (contrabass-layout 'i3))) (i1 :omn gssolo :channel 1 :sound 'gm :program 'Clarinet :volume 100) (i2 :omn pnocomp :channel 2 :sound 'gm :program 'Electric-Piano-1 :volume 80) (i3 :omn bassline :channel 4 :sound 'gm :program 'Electric-Bass-Finger :volume 100) (hh :omn hh :channel 10 :sound 'gm :program 0 :volume 70) ;(oh :omn oh) ;(ch :omn oh) (sn :omn sn) (bd :omn bd) )  
  7. reaction_title_1
    JulioHerrlein got a reaction from AM in Giant Steps Improvisation generator   
    Hello, All
     
    The idea is to generate some improvised lines over the Giant Steps progression.
    Every time the code is evaluated, a different comping and improvisation is generated.
    In this first effort, the improvisation is generated by the arpeggios resultating from the voice-leading of the progression.
    After that, I want to code some superimpositions of other chord substitutions.
     
    This is something I came with after studying the Harmonic-Path Function ( through some example by Stephane Boussuge)
    I also got some Drums from Jazz Trio, by Janusz Podrazik.
    Below is the commented code and an mp3 showing the result.
     
    All the best,
     
    Julio
     
    gsteps_GEN2.mp3
     
    ;; Giant Steps Progression provided as Harmonic Path. ;; Some chords are repeated (the chords that last more time). (setf harmpath '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7))) ;; Just the Roots from the chord progression: for building the bassline later. basshpath (pitch-demix 4 harmpath) ;; Taking out the rhythm information of the bassline OMN, ;; organizing sublist of 1 element for repeating the tones twice, ;; preparing for another rhythm purposes. basspitches (gen-repeat 6 (flatten (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (ambitus '(e1 g2) basshpath))))))) ;; Using the same harmonic path as a voice leading comping and repeating it ;; in the same way I did with the bass line (twice each chord). ;; Bass line and comping will have the same rhythm kicks. comping (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))))) ;; MELODIZANDO HAR-PATH. Melodizing the same voice-leading of the comping ;; to get the arpeggios for soloing. melodia (flatten (pitch-melodize (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))) ;; Repeating the melody list some times. gstepspitches (gen-repeat 6 (flatten (omn :pitch melodia))) ) ;; Defining and randomizing rhythms. (setf r1 (rnd-order '((s s s s -s -s -s -s))) r2 (rnd-order '((s s s s -s -s -s -s))) r3 (rnd-order '((s s s s -s -s -s -s))) r4 (rnd-order '((s s s s -s -s -s -s))) r5 (rnd-order '((s s s s -s -s -s -s))) r6 (rnd-order '((s s s s -s -s -s -s))) r7 (rnd-order '((s s s s -s -s -s -s))) r8 (rnd-order '((s s s s -s -s -s -s))) r9 (rnd-order '((s -s -s -s))) r9b (rnd-order '((s -s -s -s))) r10 '(s -s -s -s) r11 (rnd-order '((s s s -s))) r12 '(-s -s -s -s) rhy2 (flatten (apply-eval (rnd-order '((r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8))))) rhyinv (length-invert rhy2) bdbsch (gen-repeat 6 (flatten (apply-eval (rnd-order '((r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9))))))) ;; Setting Up OMN for each instrument. (setf gssolo (make-omn :length rhy2 :pitch gstepspitches :velocity (rnd-order'(mf p f p ff mf))) bassline (make-omn :length bdbsch :pitch basspitches :velocity (rnd-order'(mf p f p ff mf))) pnocomp (make-omn :length bdbsch :pitch comping :velocity (rnd-order'(mf p f p ff mf))) ) ;;--------------------------------------------------------- ;; Some Drums ;; (From Janusz Jazz Trio, with some tweaks in the hats) ;;--------------------------------------------------------- (setf hh1 (length-span 8/4 '(-s gs2 ff))) ;(setf oh1 (length-span 8/4 '(-s - bb2 ff -))) ;(setf ch1 (length-span 8/4 '(s fs2 ff -))) (setf sn1 (length-span 8/4 '(-e d2 - - a2 - - s = q f2 e))) (setf bd1 (length-span 8/4 '(-s b1 ff e c2 = -e. e = -e. -s))) (setf hh (rnd-order (gen-repeat 18 (list hh1)))) ;(setf oh (rnd-order (gen-repeat 18 (list oh1)))) ;(setf ch (rnd-order (gen-repeat 18 (list ch1)))) (setf sn (pitch-figurate '(3 2) (rnd-order (gen-repeat 18 (list sn1))) :interval '(-1 -2 14))) (setf bd (rnd-order (gen-repeat 18 (list bd1)))) ;; ------- SCORE (adapted from Harmonic Path Study, Boussuge) (def-score giant-steps-vl-improv (:title "giant-steps-vl-improv" :composer "Julio Herrlein" :copyright "Copyright © 2018 HERRLEIN" :key-signature '(c maj) :time-signature '(4 4) :tempo 124 :ignore-velocity t :layout (list (xylophone-single-layout 'i1) (guitar-layout 'i2) (contrabass-layout 'i3))) (i1 :omn gssolo :channel 1 :sound 'gm :program 'Clarinet :volume 100) (i2 :omn pnocomp :channel 2 :sound 'gm :program 'Electric-Piano-1 :volume 80) (i3 :omn bassline :channel 4 :sound 'gm :program 'Electric-Bass-Finger :volume 100) (hh :omn hh :channel 10 :sound 'gm :program 0 :volume 70) ;(oh :omn oh) ;(ch :omn oh) (sn :omn sn) (bd :omn bd) )  
  8. reaction_title_1
    JulioHerrlein got a reaction from AM in Giant Steps Improvisation generator   
    Hello, All
     
    The idea is to generate some improvised lines over the Giant Steps progression.
    Every time the code is evaluated, a different comping and improvisation is generated.
    In this first effort, the improvisation is generated by the arpeggios resultating from the voice-leading of the progression.
    After that, I want to code some superimpositions of other chord substitutions.
     
    This is something I came with after studying the Harmonic-Path Function ( through some example by Stephane Boussuge)
    I also got some Drums from Jazz Trio, by Janusz Podrazik.
    Below is the commented code and an mp3 showing the result.
     
    All the best,
     
    Julio
     
    gsteps_GEN2.mp3
     
    ;; Giant Steps Progression provided as Harmonic Path. ;; Some chords are repeated (the chords that last more time). (setf harmpath '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7))) ;; Just the Roots from the chord progression: for building the bassline later. basshpath (pitch-demix 4 harmpath) ;; Taking out the rhythm information of the bassline OMN, ;; organizing sublist of 1 element for repeating the tones twice, ;; preparing for another rhythm purposes. basspitches (gen-repeat 6 (flatten (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (ambitus '(e1 g2) basshpath))))))) ;; Using the same harmonic path as a voice leading comping and repeating it ;; in the same way I did with the bass line (twice each chord). ;; Bass line and comping will have the same rhythm kicks. comping (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))))) ;; MELODIZANDO HAR-PATH. Melodizing the same voice-leading of the comping ;; to get the arpeggios for soloing. melodia (flatten (pitch-melodize (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))) ;; Repeating the melody list some times. gstepspitches (gen-repeat 6 (flatten (omn :pitch melodia))) ) ;; Defining and randomizing rhythms. (setf r1 (rnd-order '((s s s s -s -s -s -s))) r2 (rnd-order '((s s s s -s -s -s -s))) r3 (rnd-order '((s s s s -s -s -s -s))) r4 (rnd-order '((s s s s -s -s -s -s))) r5 (rnd-order '((s s s s -s -s -s -s))) r6 (rnd-order '((s s s s -s -s -s -s))) r7 (rnd-order '((s s s s -s -s -s -s))) r8 (rnd-order '((s s s s -s -s -s -s))) r9 (rnd-order '((s -s -s -s))) r9b (rnd-order '((s -s -s -s))) r10 '(s -s -s -s) r11 (rnd-order '((s s s -s))) r12 '(-s -s -s -s) rhy2 (flatten (apply-eval (rnd-order '((r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8))))) rhyinv (length-invert rhy2) bdbsch (gen-repeat 6 (flatten (apply-eval (rnd-order '((r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9))))))) ;; Setting Up OMN for each instrument. (setf gssolo (make-omn :length rhy2 :pitch gstepspitches :velocity (rnd-order'(mf p f p ff mf))) bassline (make-omn :length bdbsch :pitch basspitches :velocity (rnd-order'(mf p f p ff mf))) pnocomp (make-omn :length bdbsch :pitch comping :velocity (rnd-order'(mf p f p ff mf))) ) ;;--------------------------------------------------------- ;; Some Drums ;; (From Janusz Jazz Trio, with some tweaks in the hats) ;;--------------------------------------------------------- (setf hh1 (length-span 8/4 '(-s gs2 ff))) ;(setf oh1 (length-span 8/4 '(-s - bb2 ff -))) ;(setf ch1 (length-span 8/4 '(s fs2 ff -))) (setf sn1 (length-span 8/4 '(-e d2 - - a2 - - s = q f2 e))) (setf bd1 (length-span 8/4 '(-s b1 ff e c2 = -e. e = -e. -s))) (setf hh (rnd-order (gen-repeat 18 (list hh1)))) ;(setf oh (rnd-order (gen-repeat 18 (list oh1)))) ;(setf ch (rnd-order (gen-repeat 18 (list ch1)))) (setf sn (pitch-figurate '(3 2) (rnd-order (gen-repeat 18 (list sn1))) :interval '(-1 -2 14))) (setf bd (rnd-order (gen-repeat 18 (list bd1)))) ;; ------- SCORE (adapted from Harmonic Path Study, Boussuge) (def-score giant-steps-vl-improv (:title "giant-steps-vl-improv" :composer "Julio Herrlein" :copyright "Copyright © 2018 HERRLEIN" :key-signature '(c maj) :time-signature '(4 4) :tempo 124 :ignore-velocity t :layout (list (xylophone-single-layout 'i1) (guitar-layout 'i2) (contrabass-layout 'i3))) (i1 :omn gssolo :channel 1 :sound 'gm :program 'Clarinet :volume 100) (i2 :omn pnocomp :channel 2 :sound 'gm :program 'Electric-Piano-1 :volume 80) (i3 :omn bassline :channel 4 :sound 'gm :program 'Electric-Bass-Finger :volume 100) (hh :omn hh :channel 10 :sound 'gm :program 0 :volume 70) ;(oh :omn oh) ;(ch :omn oh) (sn :omn sn) (bd :omn bd) )  
  9. reaction_title_2
    JulioHerrlein reacted to opmo in Circle-Pitch-Plot   
    Best, 
  10. reaction_title_2
    JulioHerrlein reacted to o_e in Circle-Pitch-Plot   
    You surely know that..? http://www.dynamictonality.com/xronomorph.htm
    Maybe you can get some inspiration from it..
  11. reaction_title_2
    JulioHerrlein reacted to opmo in Circle-Pitch-Plot   
    (-e e q e q e)                                                                 (e q e q q) 
  12. reaction_title_2
    JulioHerrlein got a reaction from Andy in Help with seed and semi-colons   
    I think the best idea is to test musical ideias from annotated scores. Here are an example of a parametric composition  with  step by step decisions documented. Hope it can help you. 
    The Nigel Morgan book is also very useful as well as the tutoriais by Janusz  here in the fórum. 
    The best is read the book testing the code in Opusmodus at the same time. 
    Best Julio 
  13. reaction_title_2
    JulioHerrlein reacted to Stephane Boussuge in Pattern for Piano   
    Hi Julio,
    it could be possible but a bit outside my programming capabilities, but Janusz is certainly capable to achieve this.
    And , as  you, i would love this feature 🙂
    S.
     
  14. reaction_title_1
    JulioHerrlein got a reaction from Stephane Boussuge in Pattern for Piano   
    Dear Janusz,
     
    It would be great to have this function in the core functions of version 1.3
     
    Best,
    Julio
     
    Dear Stephane,
     
    Can we use this function to add more than one interval to each note ?
    This can add one  interval, but I'm refering to add also two intervals, forming a trichord.
    1) So the interval list would look like this, for adding intervals:
     
    (add-interval-if-length '((q c4 d4 e4 f4 e g4 a4) (e f4 e4 q d4 c4 a4 g4 f4)) :interval-list '(5 4)) 2) And like this, to alternate beetween a major triad and a perfect fourth:
    (add-interval-if-length '((q c4 d4 e4 f4 e g4 a4) (e f4 e4 q d4 c4 a4 g4 f4)) :interval-list '((4 3) 5)) Is it possible ?
    Any suggestion ?
     
    Best,
    Julio
  15. reaction_title_2
    JulioHerrlein reacted to opmo in Circle-Pitch-Plot   
    In the later date we can make a CIRCLE-RHYTHM-PLOT function especially designed for that.
     
    Thank you for the links.
  16. reaction_title_1
    JulioHerrlein got a reaction from opmo in Circle-Pitch-Plot   
    http://www.milesokazaki.com/musicians-visual-reference-2014/
    http://www.milesokazaki.com/wp-content/uploads/2016/02/visual-reference-smaller.pdf
     
    All the Best !!!
     
    Looking Forward to the 1.3 version !!!
     
    Julio
  17. reaction_title_1
    JulioHerrlein got a reaction from opmo in Circle-Pitch-Plot   
    MARVELLOUS Function ! Thanks !
     
    Necklace diagrams are a really important feature for many reasons:
     
    1) Visualizing and teaching post tonal theory;
    2) Visualizing the Rhythms (in conjuntion with the new Pcs-Rhythm function) and the Rhythm/Pitch Isomorphism;
    3) Using the geometry relations to express harmonic properties and proportions;
    4) Using the geometry relations to express rhythmic properties and proportions;
    5) Visualizing Hauer's Trope Structures.
    ><><><><><
    Database on tone rows and tropes
    Harald Fripertinger, Peter Lackner
    Last update: September 6, 2018
    http://143.50.47.149/music/
    ><><><><><><
    Chord Diagrams
    http://143.50.47.149/music/chord_diagrams1.html
     
    SUGGESTION:
     
    Insert an option that enable to make circles with 3, 4, 5, 12, 16, any number of points.
    This can be very useful in modelling rhythms.
     
  18. reaction_title_2
    JulioHerrlein reacted to opmo in Circle-Pitch-Plot   
    A new CIRCLE-PITCH-PLOT function (examples below) will be part of the forthcoming Opusmodus 1.3.
     
    The function CIRCLE-PIOTCH-PLOT returns a geometrical representation of relationships among the 12 pitch classes of the chromatic scale in pitch class space and provides an easy way to identify patterns and similarities between harmonic structures.
     
    Clockwise motion represents ascending pitch motion, and counterclockwise motion represents descending pitch motion.
     
    Examples:
     
    Major Triad
    (circle-pitch-plot '(c4e4g4))
     
    Minor Triad
    (circle-pitch-plot '(c4f4ab4))
     
    Augmented Triad
    (circle-pitch-plot '(c4e4gs4))
     
    All 4 augmented triads
    (circle-pitch-plot '(c4e4gs4 db4f4a4 d4fs4bb4 eb4g4b4))
     
     
    With :style :fill
    (circle-pitch-plot '(c4e4gs4 db4f4a4 d4fs4bb4 eb4g4b4) :style :fill)
     
    Example with chord names.
    Fully-Diminished 7th Chord
    (circle-pitch-plot 'dim7)
     
    All 3 fully-diminished 7th chords
    (circle-pitch-plot '((c4 dim7) (cs4 dim7) (d4 dim7)))
     
    Whole-Tone Scale
    (circle-pitch-plot '(0 2 4 6 8 10))
     
    The complex of 2 Whole-Tone Scale
    (circle-pitch-plot '((0 2 4 6 8 10) (1 3 5 7 9 11)) :style :fill)
     
    Chromatic Scale
    (circle-pitch-plot 'chromatic :point-radius 4)
     
    The complex of 6 tritones
    (circle-pitch-plot '((0 6) (1 7) (2 8) (3 9) (4 10) (5 11)) :point-radius 4)
     
    Tonalities
    (circle-pitch-plot 'mixolydian-greek :point-radius 4)
    (circle-pitch-plot 'bartok :point-radius 4)
    (circle-pitch-plot 'messiaen-mode3 :point-radius 4)
    (circle-pitch-plot 'hyojo :point-radius 4)
     
    Contrary Motion
    (circle-pitch-plot '(0 1 11 2 10 3 9 4 8 5 7 6)              :sort nil :join-first nil)
    (circle-pitch-plot '((0 1) (0 2) (0 3) (0 4) (0 5) (0 6)                (0 7) (0 8) (0 9) (0 10) (0 11)) :point-radius 4)
     
    Example with Forte notation
    (circle-pitch-plot '(6-32 6-7))
     
    Example with omn-form sequence and :type :pitches
     
    (circle-pitch-plot '(((leg s g2 p dbow+sul d3 sul b3 dig1 a3 b3 d3 b3 d3)                 (leg g2 d3 b3 a3 b3 d3 b3 d3)))              :type :pitches)  

     
    Circle types
    (circle-pitch-plot '((4 9 11) (3 5 10) (0 3 6 9)) :style :fill)
    (circle-pitch-plot '((4 9 11) (3 5 10) (0 3 6 9))              :type :pitches :style :fill)  

    (circle-pitch-plot '((4 9 11) (3 5 10) (0 3 6 9))              :type :fifths :style :fill)  

     
    Examples with :sort and :remove-duplicates set to nil
    (circle-pitch-plot '(0 2 6 0 3 7 0 4 8))
    (circle-pitch-plot '(0 2 6 0 3 7 0 4 8) :sort nil)
    (circle-pitch-plot '(0 2 6 0 3 7 0 4 8)              :sort nil :remove-duplicates nil)
    (circle-pitch-plot '(0 2 6 0 3 7 0 4 8)              :sort nil :remove-duplicates nil :join-first nil)  

    (circle-pitch-plot '(8 4 2 0 10 2 8 10 4 6 8)              :sort nil :remove-duplicates nil)
     
    Best wishes,
    Janusz
  19. reaction_title_2
    JulioHerrlein reacted to Stephane Boussuge in replace-articulation-of-a-length   
    You can also use the Opusmodus function length-map for doing that.
     
    SB.
     
  20. reaction_title_2
    JulioHerrlein reacted to AM in replace-articulation-of-a-length   
    ....you are totally right!!!! i did not know this function, i did not find it when i was searching  😕
    so, perhaps somebody could need/read my function "as a LISP-example"...
     
    in OPMO:
    (setf omn-seq '(s c4 ffff ord e ord e ord s ord e. ord s ord q ord q q q q)) (length-map '((1/16 mute) (2/16 pizz) (3/16 arco)) omn-seq) => (s c4 ffff mute e pizz c4 pizz s mute e. arco s mute q ord c4 c4 c4 c4)  
     
  21. reaction_title_2
    JulioHerrlein reacted to AM in how to number pitches   
    the solution/most simple idea to generate a lot of numbers in/for  add-text-attributes is: 
    1) generate by follwing FUNCTION => generates you how many you want... perhaps 100
     
    (defun gen-num (n &key (start 0)) (loop for i from start to n collect (list (compress (list 'nr i))))) (gen-num 100) => ((nr0) (nr1) (nr2) (nr3) (nr4) (nr5) (nr6) (nr7) (nr8) (nr9) (nr10) (nr11) (nr12) (nr13) (nr14) (nr15) (nr16) (nr17) (nr18) (nr19) (nr20) (nr21) (nr22) (nr23) (nr24) (nr25) (nr26) (nr27) (nr28) (nr29) (nr30) (nr31) (nr32) (nr33) (nr34) (nr35) (nr36) (nr37) (nr38) (nr39) (nr40) (nr41) (nr42) (nr43) (nr44) (nr45) (nr46) (nr47) (nr48) (nr49) (nr50) (nr51) (nr52) (nr53) (nr54) (nr55) (nr56) (nr57) (nr58) (nr59) (nr60) (nr61) (nr62) (nr63) (nr64) (nr65) (nr66) (nr67) (nr68) (nr69) (nr70) (nr71) (nr72) (nr73) (nr74) (nr75) (nr76) (nr77) (nr78) (nr79) (nr80) (nr81) (nr82) (nr83) (nr84) (nr85) (nr86) (nr87) (nr88) (nr89) (nr90) (nr91) (nr92) (nr93) (nr94) (nr95) (nr96) (nr97) (nr98) (nr99) (nr100))  
    2) then delete the ( )-outside in the editor, so you will have:
     
    (nr0) (nr1) (nr2) (nr3) (nr4) (nr5) (nr6) (nr7) (nr8) (nr9) (nr10) (nr11) (nr12) (nr13) (nr14) (nr15) (nr16) (nr17) (nr18) (nr19) (nr20) (nr21) (nr22) (nr23) (nr24) (nr25) (nr26) (nr27) (nr28) (nr29) (nr30) (nr31) (nr32) (nr33) (nr34) (nr35) (nr36) (nr37) (nr38) (nr39) (nr40) (nr41) (nr42) (nr43) (nr44) (nr45) (nr46) (nr47) (nr48) (nr49) (nr50) (nr51) (nr52) (nr53) (nr54) (nr55) (nr56) (nr57) (nr58) (nr59) (nr60) (nr61) (nr62) (nr63) (nr64) (nr65) (nr66) (nr67) (nr68) (nr69) (nr70) (nr71) (nr72) (nr73) (nr74) (nr75) (nr76) (nr77) (nr78) (nr79) (nr80) (nr81) (nr82) (nr83) (nr84) (nr85) (nr86) (nr87) (nr88) (nr89) (nr90) (nr91) (nr92) (nr93) (nr94) (nr95) (nr96) (nr97) (nr98) (nr99) (nr100)  
    3) use command-F to replace/change (  to  '(
       you get a list like:
    '(nr0 "0") '(nr1 "1") '(nr2 "2") '(nr3 "3") '(nr4 "4") '(nr5 "5") '(nr6 "6") '(nr7 "7") '(nr8 "8") '(nr9 "9") '(nr10 "10") '(nr11 "11") '(nr12 "12") '(nr13 "13") '(nr14 "14") '(nr15 "15") '(nr16 "16") '(nr17 "17") '(nr18 "18") '(nr19 "19") '(nr20 "20") '(nr21 "21") '(nr22 "22") '(nr23 "23") '(nr24 "24") '(nr25 "25") '(nr26 "26") '(nr27 "27") '(nr28 "28") '(nr29 "29") '(nr30 "30") '(nr31 "31") '(nr32 "32") '(nr33 "33") '(nr34 "34") '(nr35 "35") '(nr36 "36") '(nr37 "37") '(nr38 "38") '(nr39 "39") '(nr40 "40") '(nr41 "41") '(nr42 "42") '(nr43 "43") '(nr44 "44") '(nr45 "45") '(nr46 "46") '(nr47 "47") '(nr48 "48") '(nr49 "49") '(nr50 "50") '(nr51 "51") '(nr52 "52") '(nr53 "53") '(nr54 "54") '(nr55 "55") '(nr56 "56") '(nr57 "57") '(nr58 "58") '(nr59 "59") '(nr60 "60") '(nr61 "61") '(nr62 "62") '(nr63 "63") '(nr64 "64") '(nr65 "65") '(nr66 "66") '(nr67 "67") '(nr68 "68") '(nr69 "69") '(nr70 "70") '(nr71 "71") '(nr72 "72") '(nr73 "73") '(nr74 "74") '(nr75 "75") '(nr76 "76") '(nr77 "77") '(nr78 "78") '(nr79 "79") '(nr80 "80") '(nr81 "81") '(nr82 "82") '(nr83 "83") '(nr84 "84") '(nr85 "85") '(nr86 "86") '(nr87 "87") '(nr88 "88") '(nr89 "89") '(nr90 "90") '(nr91 "91") '(nr92 "92") '(nr93 "93") '(nr94 "94") '(nr95 "95") '(nr96 "96") '(nr97 "97") '(nr98 "98") '(nr99 "99") '(nr100 "100")  
    4) you could paste that inside 
    (add-text-attributes ;; PASTE IT IN HERE )  
    so it's done easily by hand ->  in that way i could number about 1500 pitches 🙂
    (with FORMAT-function i have no idea to code it)
     
  22. reaction_title_2
    JulioHerrlein reacted to AM in replace-articulation-of-a-length   
    if you like to change the articulation of specific lengths
     
    (defun replace-articulation-of-a-length (omnseq length/articulation-map) (loop for i in (single-events (flatten omnseq)) when (length-restp (car i)) collect i else append (omn-replace :articulation (cadr (assoc (car (omn :length i)) length/articulation-map)) i))) (setf omn-seq '(s c4 ffff ord e ord e ord s ord e. ord s ord q ord q q q q)) (replace-articulation-of-a-length omn-seq '((1/16 mute) (2/16 pizz) (3/16 arco))) => (s c4 ffff mute e c4 ffff pizz e c4 ffff pizz s c4 ffff mute e. c4 ffff arco s c4 ffff mute q c4 ffff ord q c4 ffff q c4 ffff q c4 ffff q c4 ffff)  
  23. reaction_title_2
    JulioHerrlein reacted to AM in replace-velocity-of-a-length   
    if you like to change dynamics/velocity of specific lengths
     
    (defun replace-velocity-of-a-length (omnseq length/velocity-map) (loop for i in (single-events (flatten omnseq)) when (length-restp (car i)) collect i else append (omn-replace :velocity (cadr (assoc (car (omn :length i)) length/velocity-map)) i))) (setf omn-seq '(s c4 ffff e e s e. s q q q q q)) (replace-velocity-of-a-length omn-seq '((1/16 mp) (2/16 pp) (3/16 ppp))) => (s c4 mp e c4 pp e c4 pp s c4 mp e. c4 ppp s c4 mp q c4 ffff q c4 ffff q c4 ffff q c4 ffff q c4 ffff)  
  24. reaction_title_2
    JulioHerrlein reacted to Stephane Boussuge in Background colour   
    😉
     
    SB.
  25. reaction_title_2
    JulioHerrlein reacted to opmo in Help with seed and semi-colons   
    The best way to progress quickly is to test and play with each of the examples in the 'How To' section which you will find in Utilities.
    You will see the omn form expression (scoring like on paper) and some simple self explanatory algorithms.
    Examine the input and output in the Listener.
    Snippet will help as well.
×