Jump to content

JulioHerrlein

Members
  • Posts

    814
  • Joined

  • Last visited

Reputation Activity

  1. Like
    JulioHerrlein reacted to Stephane Boussuge in Turing Piano (Julio Herrlein)   
    Great, well done !
     
    S.
  2. Like
    JulioHerrlein reacted to loopyc in FORTE NUMBERS as Rhythms   
    Eight hours later! Spent all day reviewing related Opusumodus functions/documentation and researching your concepts and references...a very satisfying time in furtherance of my ongoing Opusmodus education ;-)
     
    Thanks again Julio for the inspiration, and Janusz for ALREADY including/implementing so many useful tools related to these subjects :)
  3. Like
    JulioHerrlein reacted to loopyc in FORTE NUMBERS as Rhythms   
    Thank you very much for taking the time to share ;-) Please feel free to continue to do so as I am most interested in this subject of Timepoint/Rhythm, especially as you apply your research to Opusmodus coding applications/implementations :)
  4. Thanks
    JulioHerrlein got a reaction from lviklund in FORTE NUMBERS as Rhythms   
    Dear Friends
     
    In my Doctoral Dissertation, I converted every FORTE number in a modulo 12 Rhythm via time-point-system.
    There is a complete catalog included (see the link below). It's in portuguese.
     
    After Janusz adjusted the Forte numbers to have the inversion, using "a" and "b" to differentiate the
     prime forms from the inversions, it was easy to convert using codes like this:
    (setf ch0 (time-point-system (pcs '5-11b :pitch)'s :start 0)) (setf ch1 (time-point-system (pcs '6-33 :pitch)'s :start 1)) (setf ch2 (time-point-system (pcs '7-11b :pitch)'s :start 2)) (setf ch3 (time-point-system (pcs '3-11b :pitch)'s :start 3)) (setf ch4 (time-point-system (pcs '3-11b :pitch)'s :start 0))  
    The dissertation (in portuguese) can be downloaded HERE:
    Das alturas ao ritmo : teoria dos conjuntos rítmicos como ferramenta composicional
    From pitches to rhythm: rhythmic set theory as a compositional tool.
    http://hdl.handle.net/10183/179457
    Abstract
    This doctoral dissertation is divided into two parts: the first deals a rhythmic set theory, and the second contains the portfolio of compositions developed during this period of studies. This dissertation presents a system of rhythmic organization parallel to the musical set theory pitch class organization FORTE (1973), as well as an adaptation of the time-point-system (BABBITT, 1962). From the standpoint of the traditional set theory, and also from the diatonic set theory, this unified approach allows to estabilish a connecting tissue of basic aspects: from the harmony and chords symbols to the rhythmic organization. At one time, in a complete catalog, the families of pitch class sets and chord symbols are related to their respective rhythmic counterparts. The musical motivation for this research came from my interest in the swinging and groovy repetitive rhythms called timelines (TOUSSAINT, 2013), commonly used in popular music. These dancing timelines have properties similar to those of the diatonic sets, and for this reason, this dissertation presents some properties of the diatonic pitch class sets, drawing a parallel with their rhythmic counterparts. These relationships also appear in the portfolio of compositions, characterizing some procedures used. The portfolio of compositions, which includes a composition for symphony orchestra, is presented form the standpoint of a duality between transparency and opacity. This duality address the essential differences in the audibility of the results from various composition techniques. This study of Rhythmic Set Theory will serve as an analytical approach of my compositional output in popular music, with a systematic way to understant and to extrapolate some aspects already used in my practice as composer and improviser.     Here is an analysis of a Wayne Krantz improvisation, using the rhythmic set theory system.   Hope you enjoy !!   Best, Julio  
  5. Like
    JulioHerrlein reacted to loopyc in Turing Piano (Julio Herrlein)   
    Fantastic,very insightful....thanks for sharing! Visual patterns as compositional approach are one of my interests, as is the idea of organizing rhythm into 'scales' ;-)
     
    Please inform if an English translation of main dissertation becomes available (though the excellent illustrations and footnotes in English in current version provide plenty of food for thought as it is, especially as many of your references are on already on my bookshelf ;-))
  6. Thanks
    JulioHerrlein got a reaction from lviklund in Turing Piano (Julio Herrlein)   
    Dear Friends,
     
    I'd like to share a composition all made in Opusmodus.
    The composition is part of the Portfolio of my Doctoral Dissertation.
    I'd like to thank you so much, Opusmodus and the support of you
     here in this forum was amazing !!
    Love you all !!
     
    TURING PIANO (Julio Herrlein)
     
     
    Here is the commented code for the First Section:
     

    ;;;PART A
    ;PITCHES – The pitch structure are based on "chevron-like" patterns. This can be related to some
     Xenakis ideas: the arborescences, the music as a plot idea.
     
    (setf patpit (integer-to-pitch (gen-integer-step 0 68 '(1 -2 3 -4 5 -6 7 -8 9 -10 11)))) (setf patpit2 (integer-to-pitch (gen-integer-step 0 68 '(11 -10 9 -8 7 -6 5 -4 3 -2 1))))  
    ;;; This interval pattern leads to an infinite ascending movement, like the picture below:
     

    ;;; After that, I decided to restrict the ambitus of the pattern, otherwise it goes ascending forever. I did the restriction
     thinking  in the hands of the pianist, in a way to not collide or crossing the hands.
     


    ;;;After the ambitus restriction, the next step was find some partitions to make some chords for the piece, so
    each hand have a diferent partition of the chevron-like pattern, like below

     
    (setf pitpartition (ambitus '(g3 c6)(chordize-list (gen-divide '(1 1 1 3 1 1 1 2) patpit)))) (setf pitpartition2 (ambitus '(g1 g3)(chordize-list (gen-divide '(2 1 1 1 1 2 1 1 1 1 1 1 1 1) patpit2))))
    ;;; Next, i decided on the Rhythms to use. The rhythms are complementary, i.e., each hand plays on the
    silence of the other, using the following pattern:
     

     
    DIGRESSION: The FORTE NUMBERS are part of my dissertation that makes the conversion of the entire
     Forte sets onto Rhythms modulo 12.
    The dissertation (in portuguese) can be downloaded HERE:
    Das alturas ao ritmo : teoria dos conjuntos rítmicos como ferramenta composicional
    From pitches to rhythm: rhythmic set theory as a compositional tool.
    http://hdl.handle.net/10183/179457
    Abstract
    This doctoral dissertation is divided into two parts: the first deals a rhythmic set theory, and the second contains the portfolio of compositions developed during this period of studies. This dissertation presents a system of rhythmic organization parallel to the musical set theory pitch class organization FORTE (1973), as well as an adaptation of the time-point-system (BABBITT, 1962). From the standpoint of the traditional set theory, and also from the diatonic set theory, this unified approach allows to estabilish a connecting tissue of basic aspects: from the harmony and chords symbols to the rhythmic organization. At one time, in a complete catalog, the families of pitch class sets and chord symbols are related to their respective rhythmic counterparts. The musical motivation for this research came from my interest in the swinging and groovy repetitive rhythms called timelines (TOUSSAINT, 2013), commonly used in popular music. These dancing timelines have properties similar to those of the diatonic sets, and for this reason, this dissertation presents some properties of the diatonic pitch class sets, drawing a parallel with their rhythmic counterparts. These relationships also appear in the portfolio of compositions, characterizing some procedures used. The portfolio of compositions, which includes a composition for symphony orchestra, is presented form the standpoint of a duality between transparency and opacity. This duality address the essential differences in the audibility of the results from various composition techniques. This study of Rhythmic Set Theory will serve as an analytical approach of my compositional output in popular music, with a systematic way to understant and to extrapolate some aspects already used in my practice as composer and improviser.  
    Here is the rhythm used in Turing Piano (with Forte numbers and rotations)
     
     
     
    (setf ritmo1 (gen-repeat 10 '(s s -s s s -s -s -s s -s -s s -s s -s -s s -s s -s -s -s s -s))) (setf ritmo1b (length-invert ritmo1 :omn t))
    ; DINAMICS: Following the parametric stuff, I decided to set the dynamics, according to the harmonic density, i.e.
    the more notes, the more louder.
     

     
    (setf din1 (span pitpartition '(p p p ff p mf pp ff))) (setf din2 (span pitpartition2 '(f p p p p ff p p ff pp pp f mf mf)))
    ;ASSEMBLING of the materials

     
    (setf lhmat1 (make-omn :length ritmo1 :pitch (pitch-transpose 4 pitpartition) :velocity din1)) (setf rhmat1 (make-omn :length ritmo1b :pitch (pitch-transpose 4 pitpartition2) :velocity din2)) ;MONTAGE of music blocks (assemblage)
     
    (setf pianoassemblerh (assemble-seq lhmat1)) (setf pianoassemblelh (assemble-seq rhmat1))
    ;;;SCORE- Layout

     
    (def-score Miniatura-pno1 (:key-signature 'atonal :time-signature '(3 4) :tempo 85 :octave-shift '(c2 c6) :layout (grand-layout 'pno :all-accidentals 'all)) (pno :omn (merge-voices lhmat1 rhmat1) :channel 1 :sound 'gm :program 0) )  
    COMPLETE VIDEO
     
     
     
     
  7. Like
    JulioHerrlein reacted to opmo in FORTE NUMBERS as Rhythms   
    Great solo! Excellent analysis and use of PSC and TPS.
  8. Like
    JulioHerrlein reacted to opmo in Turing Piano (Julio Herrlein)   
    Thank you for great presentation.
  9. Like
    JulioHerrlein got a reaction from loopyc in Turing Piano (Julio Herrlein)   
    Dear Friends,
     
    I'd like to share a composition all made in Opusmodus.
    The composition is part of the Portfolio of my Doctoral Dissertation.
    I'd like to thank you so much, Opusmodus and the support of you
     here in this forum was amazing !!
    Love you all !!
     
    TURING PIANO (Julio Herrlein)
     
     
    Here is the commented code for the First Section:
     

    ;;;PART A
    ;PITCHES – The pitch structure are based on "chevron-like" patterns. This can be related to some
     Xenakis ideas: the arborescences, the music as a plot idea.
     
    (setf patpit (integer-to-pitch (gen-integer-step 0 68 '(1 -2 3 -4 5 -6 7 -8 9 -10 11)))) (setf patpit2 (integer-to-pitch (gen-integer-step 0 68 '(11 -10 9 -8 7 -6 5 -4 3 -2 1))))  
    ;;; This interval pattern leads to an infinite ascending movement, like the picture below:
     

    ;;; After that, I decided to restrict the ambitus of the pattern, otherwise it goes ascending forever. I did the restriction
     thinking  in the hands of the pianist, in a way to not collide or crossing the hands.
     


    ;;;After the ambitus restriction, the next step was find some partitions to make some chords for the piece, so
    each hand have a diferent partition of the chevron-like pattern, like below

     
    (setf pitpartition (ambitus '(g3 c6)(chordize-list (gen-divide '(1 1 1 3 1 1 1 2) patpit)))) (setf pitpartition2 (ambitus '(g1 g3)(chordize-list (gen-divide '(2 1 1 1 1 2 1 1 1 1 1 1 1 1) patpit2))))
    ;;; Next, i decided on the Rhythms to use. The rhythms are complementary, i.e., each hand plays on the
    silence of the other, using the following pattern:
     

     
    DIGRESSION: The FORTE NUMBERS are part of my dissertation that makes the conversion of the entire
     Forte sets onto Rhythms modulo 12.
    The dissertation (in portuguese) can be downloaded HERE:
    Das alturas ao ritmo : teoria dos conjuntos rítmicos como ferramenta composicional
    From pitches to rhythm: rhythmic set theory as a compositional tool.
    http://hdl.handle.net/10183/179457
    Abstract
    This doctoral dissertation is divided into two parts: the first deals a rhythmic set theory, and the second contains the portfolio of compositions developed during this period of studies. This dissertation presents a system of rhythmic organization parallel to the musical set theory pitch class organization FORTE (1973), as well as an adaptation of the time-point-system (BABBITT, 1962). From the standpoint of the traditional set theory, and also from the diatonic set theory, this unified approach allows to estabilish a connecting tissue of basic aspects: from the harmony and chords symbols to the rhythmic organization. At one time, in a complete catalog, the families of pitch class sets and chord symbols are related to their respective rhythmic counterparts. The musical motivation for this research came from my interest in the swinging and groovy repetitive rhythms called timelines (TOUSSAINT, 2013), commonly used in popular music. These dancing timelines have properties similar to those of the diatonic sets, and for this reason, this dissertation presents some properties of the diatonic pitch class sets, drawing a parallel with their rhythmic counterparts. These relationships also appear in the portfolio of compositions, characterizing some procedures used. The portfolio of compositions, which includes a composition for symphony orchestra, is presented form the standpoint of a duality between transparency and opacity. This duality address the essential differences in the audibility of the results from various composition techniques. This study of Rhythmic Set Theory will serve as an analytical approach of my compositional output in popular music, with a systematic way to understant and to extrapolate some aspects already used in my practice as composer and improviser.  
    Here is the rhythm used in Turing Piano (with Forte numbers and rotations)
     
     
     
    (setf ritmo1 (gen-repeat 10 '(s s -s s s -s -s -s s -s -s s -s s -s -s s -s s -s -s -s s -s))) (setf ritmo1b (length-invert ritmo1 :omn t))
    ; DINAMICS: Following the parametric stuff, I decided to set the dynamics, according to the harmonic density, i.e.
    the more notes, the more louder.
     

     
    (setf din1 (span pitpartition '(p p p ff p mf pp ff))) (setf din2 (span pitpartition2 '(f p p p p ff p p ff pp pp f mf mf)))
    ;ASSEMBLING of the materials

     
    (setf lhmat1 (make-omn :length ritmo1 :pitch (pitch-transpose 4 pitpartition) :velocity din1)) (setf rhmat1 (make-omn :length ritmo1b :pitch (pitch-transpose 4 pitpartition2) :velocity din2)) ;MONTAGE of music blocks (assemblage)
     
    (setf pianoassemblerh (assemble-seq lhmat1)) (setf pianoassemblelh (assemble-seq rhmat1))
    ;;;SCORE- Layout

     
    (def-score Miniatura-pno1 (:key-signature 'atonal :time-signature '(3 4) :tempo 85 :octave-shift '(c2 c6) :layout (grand-layout 'pno :all-accidentals 'all)) (pno :omn (merge-voices lhmat1 rhmat1) :channel 1 :sound 'gm :program 0) )  
    COMPLETE VIDEO
     
     
     
     
  10. Thanks
    JulioHerrlein got a reaction from loopyc in FORTE NUMBERS as Rhythms   
    Dear Friends
     
    In my Doctoral Dissertation, I converted every FORTE number in a modulo 12 Rhythm via time-point-system.
    There is a complete catalog included (see the link below). It's in portuguese.
     
    After Janusz adjusted the Forte numbers to have the inversion, using "a" and "b" to differentiate the
     prime forms from the inversions, it was easy to convert using codes like this:
    (setf ch0 (time-point-system (pcs '5-11b :pitch)'s :start 0)) (setf ch1 (time-point-system (pcs '6-33 :pitch)'s :start 1)) (setf ch2 (time-point-system (pcs '7-11b :pitch)'s :start 2)) (setf ch3 (time-point-system (pcs '3-11b :pitch)'s :start 3)) (setf ch4 (time-point-system (pcs '3-11b :pitch)'s :start 0))  
    The dissertation (in portuguese) can be downloaded HERE:
    Das alturas ao ritmo : teoria dos conjuntos rítmicos como ferramenta composicional
    From pitches to rhythm: rhythmic set theory as a compositional tool.
    http://hdl.handle.net/10183/179457
    Abstract
    This doctoral dissertation is divided into two parts: the first deals a rhythmic set theory, and the second contains the portfolio of compositions developed during this period of studies. This dissertation presents a system of rhythmic organization parallel to the musical set theory pitch class organization FORTE (1973), as well as an adaptation of the time-point-system (BABBITT, 1962). From the standpoint of the traditional set theory, and also from the diatonic set theory, this unified approach allows to estabilish a connecting tissue of basic aspects: from the harmony and chords symbols to the rhythmic organization. At one time, in a complete catalog, the families of pitch class sets and chord symbols are related to their respective rhythmic counterparts. The musical motivation for this research came from my interest in the swinging and groovy repetitive rhythms called timelines (TOUSSAINT, 2013), commonly used in popular music. These dancing timelines have properties similar to those of the diatonic sets, and for this reason, this dissertation presents some properties of the diatonic pitch class sets, drawing a parallel with their rhythmic counterparts. These relationships also appear in the portfolio of compositions, characterizing some procedures used. The portfolio of compositions, which includes a composition for symphony orchestra, is presented form the standpoint of a duality between transparency and opacity. This duality address the essential differences in the audibility of the results from various composition techniques. This study of Rhythmic Set Theory will serve as an analytical approach of my compositional output in popular music, with a systematic way to understant and to extrapolate some aspects already used in my practice as composer and improviser.     Here is an analysis of a Wayne Krantz improvisation, using the rhythmic set theory system.   Hope you enjoy !!   Best, Julio  
  11. Thanks
    JulioHerrlein got a reaction from opmo in FORTE NUMBERS as Rhythms   
    Dear Friends
     
    In my Doctoral Dissertation, I converted every FORTE number in a modulo 12 Rhythm via time-point-system.
    There is a complete catalog included (see the link below). It's in portuguese.
     
    After Janusz adjusted the Forte numbers to have the inversion, using "a" and "b" to differentiate the
     prime forms from the inversions, it was easy to convert using codes like this:
    (setf ch0 (time-point-system (pcs '5-11b :pitch)'s :start 0)) (setf ch1 (time-point-system (pcs '6-33 :pitch)'s :start 1)) (setf ch2 (time-point-system (pcs '7-11b :pitch)'s :start 2)) (setf ch3 (time-point-system (pcs '3-11b :pitch)'s :start 3)) (setf ch4 (time-point-system (pcs '3-11b :pitch)'s :start 0))  
    The dissertation (in portuguese) can be downloaded HERE:
    Das alturas ao ritmo : teoria dos conjuntos rítmicos como ferramenta composicional
    From pitches to rhythm: rhythmic set theory as a compositional tool.
    http://hdl.handle.net/10183/179457
    Abstract
    This doctoral dissertation is divided into two parts: the first deals a rhythmic set theory, and the second contains the portfolio of compositions developed during this period of studies. This dissertation presents a system of rhythmic organization parallel to the musical set theory pitch class organization FORTE (1973), as well as an adaptation of the time-point-system (BABBITT, 1962). From the standpoint of the traditional set theory, and also from the diatonic set theory, this unified approach allows to estabilish a connecting tissue of basic aspects: from the harmony and chords symbols to the rhythmic organization. At one time, in a complete catalog, the families of pitch class sets and chord symbols are related to their respective rhythmic counterparts. The musical motivation for this research came from my interest in the swinging and groovy repetitive rhythms called timelines (TOUSSAINT, 2013), commonly used in popular music. These dancing timelines have properties similar to those of the diatonic sets, and for this reason, this dissertation presents some properties of the diatonic pitch class sets, drawing a parallel with their rhythmic counterparts. These relationships also appear in the portfolio of compositions, characterizing some procedures used. The portfolio of compositions, which includes a composition for symphony orchestra, is presented form the standpoint of a duality between transparency and opacity. This duality address the essential differences in the audibility of the results from various composition techniques. This study of Rhythmic Set Theory will serve as an analytical approach of my compositional output in popular music, with a systematic way to understant and to extrapolate some aspects already used in my practice as composer and improviser.     Here is an analysis of a Wayne Krantz improvisation, using the rhythmic set theory system.   Hope you enjoy !!   Best, Julio  
  12. Like
    JulioHerrlein got a reaction from opmo in Turing Piano (Julio Herrlein)   
    Dear Friends,
     
    I'd like to share a composition all made in Opusmodus.
    The composition is part of the Portfolio of my Doctoral Dissertation.
    I'd like to thank you so much, Opusmodus and the support of you
     here in this forum was amazing !!
    Love you all !!
     
    TURING PIANO (Julio Herrlein)
     
     
    Here is the commented code for the First Section:
     

    ;;;PART A
    ;PITCHES – The pitch structure are based on "chevron-like" patterns. This can be related to some
     Xenakis ideas: the arborescences, the music as a plot idea.
     
    (setf patpit (integer-to-pitch (gen-integer-step 0 68 '(1 -2 3 -4 5 -6 7 -8 9 -10 11)))) (setf patpit2 (integer-to-pitch (gen-integer-step 0 68 '(11 -10 9 -8 7 -6 5 -4 3 -2 1))))  
    ;;; This interval pattern leads to an infinite ascending movement, like the picture below:
     

    ;;; After that, I decided to restrict the ambitus of the pattern, otherwise it goes ascending forever. I did the restriction
     thinking  in the hands of the pianist, in a way to not collide or crossing the hands.
     


    ;;;After the ambitus restriction, the next step was find some partitions to make some chords for the piece, so
    each hand have a diferent partition of the chevron-like pattern, like below

     
    (setf pitpartition (ambitus '(g3 c6)(chordize-list (gen-divide '(1 1 1 3 1 1 1 2) patpit)))) (setf pitpartition2 (ambitus '(g1 g3)(chordize-list (gen-divide '(2 1 1 1 1 2 1 1 1 1 1 1 1 1) patpit2))))
    ;;; Next, i decided on the Rhythms to use. The rhythms are complementary, i.e., each hand plays on the
    silence of the other, using the following pattern:
     

     
    DIGRESSION: The FORTE NUMBERS are part of my dissertation that makes the conversion of the entire
     Forte sets onto Rhythms modulo 12.
    The dissertation (in portuguese) can be downloaded HERE:
    Das alturas ao ritmo : teoria dos conjuntos rítmicos como ferramenta composicional
    From pitches to rhythm: rhythmic set theory as a compositional tool.
    http://hdl.handle.net/10183/179457
    Abstract
    This doctoral dissertation is divided into two parts: the first deals a rhythmic set theory, and the second contains the portfolio of compositions developed during this period of studies. This dissertation presents a system of rhythmic organization parallel to the musical set theory pitch class organization FORTE (1973), as well as an adaptation of the time-point-system (BABBITT, 1962). From the standpoint of the traditional set theory, and also from the diatonic set theory, this unified approach allows to estabilish a connecting tissue of basic aspects: from the harmony and chords symbols to the rhythmic organization. At one time, in a complete catalog, the families of pitch class sets and chord symbols are related to their respective rhythmic counterparts. The musical motivation for this research came from my interest in the swinging and groovy repetitive rhythms called timelines (TOUSSAINT, 2013), commonly used in popular music. These dancing timelines have properties similar to those of the diatonic sets, and for this reason, this dissertation presents some properties of the diatonic pitch class sets, drawing a parallel with their rhythmic counterparts. These relationships also appear in the portfolio of compositions, characterizing some procedures used. The portfolio of compositions, which includes a composition for symphony orchestra, is presented form the standpoint of a duality between transparency and opacity. This duality address the essential differences in the audibility of the results from various composition techniques. This study of Rhythmic Set Theory will serve as an analytical approach of my compositional output in popular music, with a systematic way to understant and to extrapolate some aspects already used in my practice as composer and improviser.  
    Here is the rhythm used in Turing Piano (with Forte numbers and rotations)
     
     
     
    (setf ritmo1 (gen-repeat 10 '(s s -s s s -s -s -s s -s -s s -s s -s -s s -s s -s -s -s s -s))) (setf ritmo1b (length-invert ritmo1 :omn t))
    ; DINAMICS: Following the parametric stuff, I decided to set the dynamics, according to the harmonic density, i.e.
    the more notes, the more louder.
     

     
    (setf din1 (span pitpartition '(p p p ff p mf pp ff))) (setf din2 (span pitpartition2 '(f p p p p ff p p ff pp pp f mf mf)))
    ;ASSEMBLING of the materials

     
    (setf lhmat1 (make-omn :length ritmo1 :pitch (pitch-transpose 4 pitpartition) :velocity din1)) (setf rhmat1 (make-omn :length ritmo1b :pitch (pitch-transpose 4 pitpartition2) :velocity din2)) ;MONTAGE of music blocks (assemblage)
     
    (setf pianoassemblerh (assemble-seq lhmat1)) (setf pianoassemblelh (assemble-seq rhmat1))
    ;;;SCORE- Layout

     
    (def-score Miniatura-pno1 (:key-signature 'atonal :time-signature '(3 4) :tempo 85 :octave-shift '(c2 c6) :layout (grand-layout 'pno :all-accidentals 'all)) (pno :omn (merge-voices lhmat1 rhmat1) :channel 1 :sound 'gm :program 0) )  
    COMPLETE VIDEO
     
     
     
     
  13. Like
    JulioHerrlein reacted to Stephane Boussuge in Beginner: Slonimsky 648 as a function   
    Hi,
     
    may be this can do what you want:
     
    (make-scale 'c4 14 :alt '(13 -11) :type :pal) SB.
  14. Like
    JulioHerrlein reacted to AM in Beginner: Slonimsky 648 as a function   
    in lisp -> create OMN with (midi-to-pitch)... 
     
    (setq half-row (loop repeat 13
                     with interval
                     with stack = 60
                     with cnt = 0
                     when (oddp cnt) do (setq interval 13)  
                     when (evenp cnt) do (setq interval -11) 
                     when (= cnt 0) collect stack
                     else collect (setq stack (+ stack interval))
                     do (incf cnt)))
     
    (midi-to-pitch (append half-row (reverse (butlast half-row))))
  15. Like
    JulioHerrlein reacted to Wim Dijkgraaf in Beginner: Slonimsky 648 as a function   
    This is a great learning experience. Both SB and AM thank you so much!!!!
     
    Worked on page 90 of Slonimsky's book to further discover what can be done with make-scale and came up with the following:
     
    ;; Slonimsky 648
    (make-scale 'c4  14 :alt '(13 -11) :type :pal)
     
    ;; Slonimsky 649
    (make-scale 'c4  14 :alt '(13 13 -11 -11) :type :pal)
     
    ;; Slonimsky 650
    (make-scale 'c4  13 :alt '(13 13 13 -11 -11 -11) :type :pal)
     
    ;; Slonimsky 651
    (make-scale 'c4  13 :alt '(1 13 -11) :type :pal)
     
    ;; Slonimsky 652
    (make-scale 'c4  13 :alt '(13 -11 1) :type :pal)
     
    ;; Slonimsky 653
    (make-scale 'c4  13 :alt '(13 1 -11) :type :pal)
     
    ;; Slonimsky 654
    (make-scale 'c4  13 :alt '(1 1 13 1 1 -11) :type :pal)
     
    ;; Slonimsky 655
    (make-scale 'c2  13 :alt '(11 -1 11 -1) :type :pal)
     
    ;; Slonimsky 656 - has mismatch with original -> to be checked why
    (make-scale 'c2  14 :alt '(11 11 -13 11) :type :pal)
     
    ;; Slonimsky 657 - has mismatch with original -> to be checked why
    (make-scale 'c2  14 :alt '(11 11 11 11 -13 -13 -13) :type :pal)
     
    It makes my day :-)
     
    Wim Dijkgraaf
  16. Like
    JulioHerrlein reacted to Stephane Boussuge in Klangreihen Model   
    Hi Rangarajan
     
    you will find all the information into this book:
    https://www.amazon.co.uk/Serial-Composition-Tonality-Dominik-Sedivy/dp/3902796030/276-6904282-9885755?ie=UTF8&*Version*=1&*entries*=0
     
     
    Best regards
     
    SB.
  17. Like
    JulioHerrlein reacted to ajf- in Klangreihen Study   
    Here is my study about the klangreihen: 
     
    (defparameter tempo 60) (defparameter title "Klangreihen Study") ;;; This object takes care of setting and getting of parts (defclass study-score () ((instruments :initarg :instruments :initform 0) (duration :initarg :duration :initform 0) (parts))) ;;; When initializing, fill it with an empty model for parts (array of size N) (defmethod initialize-instance :after ((score study-score) &key) (let ((instruments (slot-value score 'instruments ))) (setf (slot-value score 'parts) (make-array instruments :initial-element '(-w)' :fill-pointer instruments)))) ;;; Getter and setter methods (defun get-part (score n) (elt (slot-value score 'parts) n )) (defun (setf part) (part score n) (let ((previous-value (elt (slot-value score 'parts) n))) (setf (elt (slot-value score 'parts) n) (concatenate 'list previous-value part)))) ;;; Instance of the object (defparameter study (make-instance 'study-score :instruments 16 :duration tempo)) ;;; Main procedure (let* ;; Main local variables ((12tone '(0 2 4 5 7 9 6 8 10 11 1 3)) (variants (list (row-variant 0 'r4 12tone) (row-variant 0 '4 12tone))) (total-parts (slot-value study 'instruments)) (bases (apply #'append (map 'list #'(lambda (v) (klangreihen 0 '(3 3 3 3) v)) variants))) (lengths (subseq (gen-divide total-parts (gen-length (distributive-cube (interference2 '(3 2 2))) 16)) 0 (length bases)))) (loop for base in bases for length in lengths do (labels ;; Local transformative functions ((amount-of (n) (/ 1 (nth n length))) (vel-scale (v) (+ 0.2 (* 0.6 v) )) (vel-format (v) (get-velocity (list v) :type :symbol)) (velocity-for (n) (vel-format (vel-scale (/ (amount-of n) 16)))) (length-for (n) (list (nth n length ))) (octave-of (n) (let ((low-bound (- 12 (* 12 (round (* (/ 1 total-parts) n 3.4) ))))) (list low-bound (+ low-bound 12)))) (pitch-for (n) (let* ((rolled (gen-surround base :size (amount-of n) :start n))) (ambitus (octave-of n) rolled)))) (loop for n from 0 to (- total-parts 1) do (destructuring-bind (&key length pitch velocity) ;; Example of handling on a case-by-case basis. No extra cases configured now. (case n (otherwise (list :length (length-for n) :velocity (velocity-for n) :pitch (pitch-for n) ))) (setf (part study n) (make-omn :length length :pitch pitch :velocity velocity :span :pitch))))))) ;;; Retrieve parts and save score (let ((partnum -1)) (def-score Study (:title title :composer "A. Jacomet" :key-signature 'atonal :time-signature '(4 4) :tempo tempo :layout (string-ensemble-layout '(vn11 vn12 vn13 vn14 vn21 vn22 vn23 vn24) '(vla1 vla2 vla3 vla4) '(vlc1 vlc2) '(ctb1 ctb2))) (vn11 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 1) (vn12 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 2) (vn13 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 3) (vn14 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 4) (vn21 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 5) (vn22 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 6) (vn23 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 7) (vn24 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 8) (vla1 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 9) (vla2 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 11) (vla3 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 12) (vla4 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 13) (vlc1 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 14) (vlc2 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 14) (ctb1 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 15) (ctb2 :omn (get-part study (incf partnum)) :sound 'gm :program 'Acoustic-Grand-Piano :channel 15))) (live-coding-midi (compile-score 'Study)) (display-musicxml 'Study) ;;;--------------------------------------------------------- ;;; ANNOTATION ;;;--------------------------------------------------------- #! This study is about the LISP languages and the possibilities of working with object oriented programming and loops. The first important part of this study is the 'study-score' class defined at the top of the file. (defclass study-score () ((instruments :initarg :instruments :initform 0) (duration :initarg :duration :initform 0) (parts))) On initialization, that object will create and save in one of it's properties, a model of the parts, which is an array of lists. (defmethod initialize-instance :after ((score study-score) &key) (let ((instruments (slot-value score 'instruments ))) (setf (slot-value score 'parts) (make-array instruments :initial-element '(-w)' :fill-pointer instruments)))) It is important to note that this can be extended to an N-dimensional array supporting Parts, Pitches, Velocities, Lengths, and more information. We then define trivial functions that are intended to help in adding and retrieving parts. (defun get-part (score n) (elt (slot-value score 'parts) n )) (defun (setf part) (part score n) (let ((previous-value (elt (slot-value score 'parts) n))) (setf (elt (slot-value score 'parts) n) (concatenate 'list previous-value part)))) This will eventually help keep our program free of code redundancy, and we can adapt the parts in any way we like in a global way. The rest is a simple example of utilizing a klangreihen base and looping over it. The loop starts with a LET clause that sets all the basic parameters: (let* ;; Main local variables ((12tone '(0 2 4 5 7 9 6 8 10 11 1 3)) (variants (list (row-variant 0 'r4 12tone) (row-variant 0 '4 12tone))) (total-parts (slot-value study 'instruments)) (bases (apply #'append (map 'list #'(lambda (v) (klangreihen 0 '(3 3 3 3) v)) variants))) (lengths (subseq (gen-divide total-parts (gen-length (distributive-cube (interference2 '(3 2 2))) 16)) 0 (length bases)))) ..... ) Looping over these global parameters, we start to build our theme sequentially, making all parts for each base. (loop for base in bases for length in lengths do (labels ... )) The LABELS special operator allows us to define local functions for our loop body, that will be helpful in transforming the data. Within it's function body, we have the actual loop that loops over the parts: (loop for n from 0 to (- total-parts 1) ...) The DESTRUCTURING-BIND macro allows us to keep our syntax clean and succint, because we can handle different cases using CASE, while setting Length, Velocity and Pitch, and then in a single line, retrieve those values and use them to set that particular omn in the parts array: (destructuring-bind (&key length pitch velocity) ;; Example of handling on a case-by-case basis. No extra cases configured now. (case n (otherwise (list :length (length-for n) :velocity (velocity-for n) :pitch (pitch-for n) ))) (setf (part study n) (make-omn :length length :pitch pitch :velocity velocity :span :pitch))) !#  
  18. Thanks
    JulioHerrlein reacted to AM in neg-sieve   
    ...how ti filter all "unused/complementary" pitches inside a sieve (if you like to extend the function... could be interesting if it works also with chords)
     
    (defun neg-sieve (pitchlist) (let ((pitchlist (pitch-to-midi pitchlist))) (midi-to-pitch (loop for i from (car pitchlist) to (car (last pitchlist)) when (null (member i pitchlist)) collect i)))) (setf sieve '(fs3 g3 as3 b3 c4 cs4 ds4 e4 f4 gs4 a4 d5 eb5 fs5 g5 gs5 bb5 b5 c6 cs6 e6 f6)) (neg-sieve sieve) => (gs3 a3 d4 fs4 g4 bb4 b4 c5 cs5 e5 f5 a5 d6 eb6) (neg-sieve '(c4 d4 e4 fs4 gs4 as4 c5)) => (cs4 eb4 f4 g4 a4 b4)  
     
     
  19. Thanks
    JulioHerrlein reacted to opmo in mapping integer?   
    There is an internal function which expand any scale (a sequence) to a total octaves span with ambitus from -60 to 67.
    I will make a document for it.
  20. Thanks
    JulioHerrlein reacted to AM in mapping integer?   
    i coded a function now, that maps all integers to all TONALITIES, like i want it... 
    SORTING OLIVIER's MODI and going crazy 🙂
     
    ;;; SUB (defun multiple-expand-tonality (&key startpitch octaves tonality) (remove-duplicates ;remove is for "cutting" if there are too much pitches (OMN loops last octave!) (loop repeat octaves with pitch = startpitch with cnt = 0 when (= cnt (length tonality)) do (setq cnt 0) append (expand-tonality (list pitch (nth cnt tonality))) do (incf cnt) do (setq pitch (car (pitch-transpose 12 (list pitch))))))) ;;; MAIN (defun integer-to-tonality (seq tonality &key (startpitch 'c4)) (progn (if (not (pitchp (car tonality))) (setf tonality (multiple-expand-tonality :startpitch startpitch :octaves 8 :tonality tonality)) tonality) (loop for i in seq collect (nth i tonality)))) ;;;;;;;;;;;;; (setf seq (flatten (gen-sort (rnd-order (gen-integer 24) :seed 49) :type 'selection))) (def-score example-score (:key-signature 'atonal :time-signature '(4 4) :tempo 90 :layout (piano-solo-layout 'rhand 'lhand)) (rhand :omn (make-omn :pitch (integer-to-tonality seq '(messiaen-mode4 messiaen-mode5 messiaen-mode6) :startpitch 'c4) :length (gen-repeat (length seq) 't))) (lhand :omn (make-omn :pitch (integer-to-tonality (x+b seq 3) ; transp integer-seq '(messiaen-mode3 messiaen-mode1 messiaen-mode2) :startpitch 'c2) :length (gen-repeat (length seq) 't))))  
  21. Thanks
    JulioHerrlein reacted to Stephane Boussuge in mapping integer?   
    With vector-map function, you can map anything:
     
    (vector-map (expand-tonality '(c4 messiaen-mode5)) '(0 1 2 3 4 2 1 5 3 1)) SB.
  22. Thanks
    JulioHerrlein reacted to AM in mapping integer?   
    in LISP
     
    (loop for i in '(0 1 2 3 4 2 1 5 3 1) collect (nth i (expand-tonality '(c4 messiaen-mode5))))  
  23. Like
    JulioHerrlein reacted to Stephane Boussuge in Classical accomp. Example   
    Here's the rendering of the score "Classical Accomp Example" i've made for the last version of Opusmodus.
     

     
  24. Like
    JulioHerrlein got a reaction from Jorgalad in Chord Inversions & Arpeggios   
    For example:
    This syntax
    (expand-chord '(c4 69))
    will give you a C(6,9) chord. Evaluate the expression via CMD+1 to get the snippet in notation.
     
    added 5 minutes later Maybe Janusz can help me here:
     
    When I evaluate this:
    (chord-inversion 1 (expand-chord '(c4 69)))
    I get this
    e4g4a4d5c6
    However, when I try to get the snippet, via CMD+1, I get an error:
     
    > Error: The value e4g4a4d5c6 is not of the expected type list.
    > While executing: parse-chord-form-from-stream, in process Listener-1(6).
    > Type cmd-. to abort, cmd-\ for a list of available restarts.
    > Type :? for other options.
     
  25. Like
    JulioHerrlein reacted to Stephane Boussuge in Chord Inversions & Arpeggios   
    (list (chord-inversion 1 (expand-chord '(c4 69)))) S.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy