Jump to content

JulioHerrlein

Members
  • Posts

    809
  • Joined

  • Last visited

Posts posted by JulioHerrlein

  1.  

    Dear Friends,

     

    I need some help on functions related to more control over 12-tone rows,

    specially the interval content.

    For example, below there are Berg's Lyric Suite 12-tone Row.

    This is an example of all interval series, a combination of every interval.

    Please, check this:

    https://en.wikipedia.org/wiki/All-interval_twelve-tone_row

     

    This All interval series are very interesting harmonically, since it

    produces very consonant trichords.

     

    1) I'd like to control the building of the 12-tone rows, in relation to

     it's properties to get more control over the harmonic output.

     

    What are the methods and fuctions related to it ?

    (setf berglyric '(f4 e4 c4 a4 g4 d4 ab4 db4 eb4 gb4 bb4 b4))
    
    (pitch-to-interval berglyric)
    
    (respell (gen-chord2 20 '(3 3 3) no012row))
    (respell (gen-chord2 40 '(3 3 3 1) berglyric))

    2) How to retrieve the notes of the series for genarating chords in different

     ways and matrices, like in sequence or every other note.

    For example

    Hypothetical ROW

    (0 1 2 3 4 5 6 7 8 9 10 11)

     

    How to retrieve:

    0 2 4 6 8 10 (skipping every one note)

    or

    0 3 6 9

     

    OR HARMONIC MATRICES, Like

     

    Trichords

     

    (0 1 2)

    (3 4 5)

    (6 7 eight)

    (9 10 11)

     

    OR

     

    (0 4  😎

    (1 5 9)

    (2 6 10)

    (3 7 11)

     

    Any help is welcome !

    Best,

    Julio

  2. Dear Friends,

     

    I'm setting some 12-tone examples for classroom.

    I just want to show some rows with motives, in the example below.

    I'd like to force this omn expression to make a snippet in 4/4 only or 2/4,

    without having to use def score.

    Is it possible ?

    It's easier for faster classroom purposes.

    Best,

    Julio

     

    (setf clodorow '(a4 gs5 c5 d5 bb4 b4 fs5 f5 cs5 g5 ds5 e5))
    
    (setf serierit '(q.. s -s s s s -s e._q -s s -s s_q))
    
     (make-omn
      :length serierit
      :pitch clodorow
      :velocity '(pp sfz p < f pp mf mf mp mp)
    	:length-symbols t)

    It's genarating a 7/4 snippet. I would prefer it in 2/4 or 4/4...

    image.png.d7e2eab086b0910e4e50ee0c908f1b78.png

    Any help ?

    Best,

    Julio

  3. Dear Janusz,

     

    Hope it can be useful. It will be great to have this new function ! Thank you !

    With a dedicated function, all this can be more elegant, for sure !

    An easier workflow.

     

    All the code below can be embbeded in only one code:

     

    (binary-map (row-rotation -7 (gen-binary-row 12 (pcs '3-11)))1/16)

     

    all this can be something like

     

    (pcs-to-rhythm (pcs '3-11) 1/16)  with optional arguments, like

     

    :rotation - rotation of the series wrapping around itself.

    :displace - put a rest of, for ex, 1/16 before the set

    ;legato -   t, for full value or nil (default) for normal operation (each value equals the quantization

     

    (pcs-to-rhythm (pcs '3-11) 1/16) 

    image.png.ab71de48a4105e54673f91978cc0d557.png

    (pcs-to-rhythm (pcs '3-11) 1/16 :legato t) 

    image.png.f74b7a0b773d06dae8331af075be99bb.png only the rhtyhm (without the notes)

    :mod - defalt is the 12 time point cycle, but optionally, any cycle rotation, like 16, for example.

    :crop - assuming 12 time points as the default cycle, the crop option let you take portions of the sets to

     use. It's easy, just make something to cut the last parts of the binary result.

     

    (pcs-to-rhythm (pcs '3-11) 1/16 :crop 8 )  will result in:

    image.png.19225f165b2ce08e4fcca07c47497265.png

    (pcs-to-rhythm (pcs '3-11) 1/16 :crop 8 :displace 1)

    image.png.af792f5eebd8a275fe715fd8c70b71cd.png

    (pcs-to-rhythm (pcs '3-11) 1/16 :crop 8 :rotate 1)

    image.png.1c67fc928e0ee931874175d05b5026d9.png

     

    The crop option helps using portions of the Rhythmic Sets, by truncating some of them, like this:

     

    image.png.3e2591cde21d27093006eaa3876efa06.png

     

    In the preceeding example, only parts of the 2 sets are used (9 time points out of 12 in the 

    first and 8 time points out of 12 in the second).

     

    Best !

    Julio

     

    image.png

  4. This is the EASIEST Method to achieve the result !!!

    FINALLY !! Without the need of Meier's Functions !!

     

    (binary-map (row-rotation 0 (gen-binary-row 12 (pcs '3-11)))1/16)

    YEEEEESSSSS !!!

    added 10 minutes later

     

    (binary-map (row-rotation 1 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.803f0b8c2a339d03013203e65d832190.png

    (binary-map (row-rotation 0 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.a3d665e6bee763cee502fd535ff1a748.png

    (binary-map (row-rotation -1 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.f63cc66fc499ba0e252cecbf6b0baf1a.png

    
    (binary-map (row-rotation -2 (gen-binary-row 12 (pcs '3-11)))1/16)

     

    image.png.4e46f4510aaed928a8657cd964e369fc.png

    (binary-map (row-rotation -3 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.20f3619c5fd10e16884d44c1dc1edad6.png

    (binary-map (row-rotation -4 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.9adaac4adb338a42c2212af43f8256c8.png

    (binary-map (row-rotation -5 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.da92effc572f056db4077c403a86d4e9.png

    (binary-map (row-rotation -6 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.51367e728b9158180fc8621b316b3d26.png

    (binary-map (row-rotation -7 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.da2f93b99a54387ffb8ef9bc89c96514.png

    (binary-map (row-rotation -8 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.9ecef4b368ed51acd142a21845d02e7f.png

    (binary-map (row-rotation -9 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.3311960e6f55019159de26aabde9b2da.png

    (binary-map (row-rotation -10 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.ee79816eb0c4ac16bb43eded28240689.png

    AND FINALLY, back to que original

     

    (binary-map (row-rotation -11 (gen-binary-row 12 (pcs '3-11)))1/16)

    image.png.e2fda7735354ad10f72978108a026563.png

     

    It works !

     

    image.png

    image.png

    image.png

    image.png

  5. MY effort, version 2

     

    (setf pcsrhy1 (flatten (omn :length (length-staccato 1/16 (time-point-system (pcs '3-11b :pitch)'s)))))
    
    ;; here you adjust the rotation of the rhythm: (1) is the original, 0 is one 16th note ahead (-1) is 2 16th notes ahead and so on
    
    (setf pcsrot1 (row-rotation 1 (length-to-binary pcsrhy1 1/16)))
    
    (binary-map pcsrot1 1/16)

     

    The aforementioned Meier's functions are necessary...

     

    Best,

    Julio

  6. This is my best effort, using two André Maier functions (THANKS ANDRÉ !!!)

     

    (binary-map (row-rotation 7 (length-to-binary 
    (flatten 
    (omn :length (length-staccato 1/16 
    (time-point-system (pitch-rotate 0 (pcs '3-11b :pitch))'s :start 0)
    )))1/16))1/16)

     

    Here are the Andre Meier Functions invoked in the code above:

     

    ;EXTRA FUNCTIONS
    ;;;LENGTH-LEGATO (ANDRE MEIER)
    
    (defun length-staccato (n alist)
      (let ((newlengths)
            (new-omn (omn-merge-ties (flatten  alist)))
            (time-sign (get-time-signature alist)))
        (progn 
          (setf newlengths (loop for i in (omn :length new-omn)
                             when (> i 0)
                             append (if (= n i)
                                      (list i)
                                      (list n (* -1 (abs (- i n)))))
                             
                             else collect i))
          (if (omn-formp alist)
            (omn-to-time-signature (make-omn :length newlengths
                                             :pitch (omn :pitch new-omn)
                                             :velocity (omn :velocity new-omn)
                                             :articulation (omn :articulation new-omn))
                                   time-sign)
            newlengths))))
    
    ;;LENGHT TO BINARY ANDRE MEIER
    
    (defun length-to-binary (lengthlist n)
      (let ((newlist (loop for i in (omn :length lengthlist)
                        collect (/ i n))))
        (loop for x in newlist
          when (> x 0)
          append (append (list 1) (gen-repeat (1- x) '0))
          else append  (gen-repeat (abs x) '0))))
        
    
    (length-to-binary '(-e -s s q e) 1/16)
    (length-to-binary '(-1/16 1/16 -1/8) 1/16)
    => (0 0 0 0 1 0 0 0 1 0)
    
    (length-to-binary '(-q s s q e) 1/16)
    => (0 0 0 0 1 1 1 0 0 0 1 0)

     

  7. Dear Janusz,

     

    This function will deal with the cyclic and rotational aspect of the rhythm, conceived as a necklace:

     

    image.png.1bd470715a5b31e1a38f984551f92222.png

     

    The pitch class set is conceived as a modular space and converted to rhythms with rotation inside the

     modulo. The figure above shows a module 8 rhythm.

    In my catalog, every rhythm is module 12, but you can :CROP (possible parameter of the function)

     the rhythm in a shorter module or cycle, or you can concatenate many sets to form a longer rhythm.

     

    HERE IS THE POINT (what time-point-system don't do)

     

    There's a difference between que time-point-system function and the idea I'm talking about.

    I'll try to explain:

     

    THIS CODE:
     

    (time-point-system (pcs '3-11b :pitch)'s :start 0)

    Results in

     

    image.png.cf3db87db7bd30c561c690d834c2e311.png

    And This
     

    (time-point-system (pcs '3-11b :pitch)'s :start 4)

    Results in

     

    image.png.ebd833ef7fd53d6aa8a157f2b35b2459.png

    But, in this case,  when the start parameter exceeds 4, like with this code:

     

    (time-point-system (pcs '3-11b :pitch)'s :start 5)

     

    image.png.a9f83522344a4723aac166fdee0adfaa.png

     

    The rhythm cross to the next bar. So, the rhythm is NOT working like a necklace, it's

     exceeding the 12 time-points...

     

    In my hypothetical Function, let's say the "pcs-to-rhythm" function

    the result would be like the upper staff below,

     

    Pseudo-code
    
    (pcs-to-rhythm (pcs '3-11b :pitch)'s :rotation 5 :mod 12)

    i.e, the note that is going to next bar is actually rotated back to the begining of the

     same bar, like rotation, wrapping around the modulo 12.

    image.png.e34a1886020d5171717400e044960a5a.png

    Possible parameters would be:

     

    :mod  -  The modulo of the rhythm (explained below)

    :rotation  -  the range would be  1 > (mod - 1)

    :crop    the range would be x < mod

     

    Let me know if I made the point clear.

    Best,

    Julio

  8. In my Dissertation, I worked a way to convert every chord and set in a modulo 12 rhythm,

    so the entire catalog of FORTE are converted to rhythms, following the steps of Babitt:

     

    image.png.5df1ac95d98df3547314c1b78c5bf905.png

     

    As a hardcore serialist, Babbitt was interested in converting 12-tone rows to rhythms, in a kind of 12-tone rhythm theory.

    Below, Wuorinen show one example of a typical Babbitt idea:

     

    image.png.25a5974ddbc6dfc91d52f00235af0fe5.png

     

    For the sake of explaining my idea of function, it's important to have in mind that for Babbitt, the order of the

     row is very important and lead to different results in the pitch to rhythm conversion. Take a look in the example

     below:

     

    image.png.7019cb6f78beb3ec6f85511690953db5.png

     

    In the preceeding figure, the order of the C major triad generate different rhythms. In the example (0 4 7) have a

    different result from (4 0 7) or (7 0 4).

     

    In the system I developed in my Dissertation, the order does NOT matter, since (0 4 7), (7 0 4) or (4 0 7) will result

     in exactly the same rhythm, as you can see below:

    image.png.876f1b753396ca7179ca480cf99592d0.png

     

    In my system, the transposition equals rotation (as well as in Babbitt)

    image.png.78a8b530a8d5be35ff98718b2b741991.png

     

    And every chord symbol can be transformed in a rhythm:

     

    image.png.9ddbc5774498adb94023497463f65c75.png

    Even voicings can be converted in longer Rhythms (the more spread the voicing, the longer the rhythm):

     

    image.png.b7ba392788fc45dcd5fdb762307e2964.png

     

     

    So I did every FORTE SET in the catalog, in this way:

    Below, you can see the example of the rhythm of the major triad (Forte number 3-11b).

    In the 1st bar there is the prime form (0 4 7).

    In each subsequent bar there is a rotation of the first set by 16th note increments.

     

    HERE IS THE POINT, for the sake of the new function !

     

    The note C (that I call Rhythmic Fundamental, the "root" of the rhythm) is being displaced, as

     you can see in the circled notes.

     

    THE SET WRAP AROUND ITSELF, always forming 12 time-points (always twelve 16th notes),

    in a different way from Babbit, where the order of the sets generates longer rhythms.

    THIS WAY IS MORE INTERESTING For Popular and Minimalist Repetition Music, as

     well as 12 tone music.

     

    In the bottom staff, there are the complementary rhythm of the 3-11b set, i.e., the 9-11a

     set. In the catalog, every set is presented alongside its complementary set and every set is

    presented in 3/4 (16th notes) and in 12-8 (with the 8th note as the base value for the increments

     and rotations).

    image.png.6f8d9aaf8b748309c50978bf7504a878.png

     

    So the function needed would be the one that mirror exacty this kind of conversion, not the tradicional time-point-system conversion,

    so I could use my catolog inside Opusmodus, connecting the diferent sets, like this:

     

    image.png.db32ec649dacbb030745a69ca56cc9ae.png

     

    Or even using portions of the Rhythmic Sets, by truncating some of them, like this:

     

    image.png.3e2591cde21d27093006eaa3876efa06.png

     

    In the preceeding example, only parts of the 2 sets are used (9 time points out of 12 in the 

    first and 8 time points out of 12 in the second).

     

    So, I hope someone could help me to find a way of implementing this.

    Maybe Janusz or Stephane could find interesting to develop this kind of idea inside

     the software.

     

    All the best !

    Julio Herrlein

  9. Dear Friends,

     

    1) How to convert a given length series in a binary series ? For example:

    ((1/16 -3/16 1/16 -1/8 1/16 -1/4)) with 1/16 as a base could be transformed in binary like:

    (1 0 0 0 1 0 0 1 0 0 0 0)

     

    and/or

    2) How to convert a length  3/16 in 1/16 -1/16 -1/16, i.e. a kind of length conversion

     based on quantize.

     

    3/16 could be converted in

     

    1/16 -1/16 -1/16

    or

    1/32 -1/32 -1/32 -1/32 -1/32 -1/32

    depending on the value regarded as the reference (1/16 in the first case or 1/32 in the second)

     

    Thanks !

    Julio

     

    Code example

    (setf ccpa1 (omn :length (length-staccato 1/16 (time-point-system (pitch-rotate 0 (pcs '3-11b :pitch))'s :start 0))))
    
    ;EXTRA FUNCTION NEEDED
    
    ;;;LENGTH-LEGATO (by ANDRE MEIER)
    
    (defun length-staccato (n alist)
      (let ((newlengths)
            (new-omn (omn-merge-ties (flatten  alist)))
            (time-sign (get-time-signature alist)))
        (progn 
          (setf newlengths (loop for i in (omn :length new-omn)
                             when (> i 0)
                             append (if (= n i)
                                      (list i)
                                      (list n (* -1 (abs (- i n)))))
                             
                             else collect i))
          (if (omn-formp alist)
            (omn-to-time-signature (make-omn :length newlengths
                                             :pitch (omn :pitch new-omn)
                                             :velocity (omn :velocity new-omn)
                                             :articulation (omn :articulation new-omn))
                                   time-sign)
            newlengths))))

     

     

  10. Sometime ago, I was searching for a function that would be the exact opposite function of length-legato.

     

    Lenght-legato turns this:

     

    image.png.a479c853c70760bf5c1c34348aa0e0bf.png

     

    onto this:

     

    image.png.a012187a1aa8dc4196691bd3bc370b53.png

     

    I wanted exactly the reverse:

    Changing this:

    image.png.85b853406242cd7fa71fdf078b6c726f.png

    to this:

    image.png.a479c853c70760bf5c1c34348aa0e0bf.png

     

    In the ocasion, Andre Meier came with this code below:

     

    Janusz, do you think a good idea to include a function like this in the library ?

    Or there is also something similar that I dont know ?

    I still need it in a easy way...

     

    Best,

     

    Julio

     

    (defun length-staccato (n alist)
      (let ((newlengths)
            (new-omn (omn-merge-ties (flatten  alist)))
            (time-sign (get-time-signature alist)))
        (progn 
          (setf newlengths (loop for i in (omn :length new-omn)
                             when (> i 0)
                             append (if (= n i)
                                      (list i)
                                      (list n (* -1 (abs (- i n)))))
                             
                             else collect i))
          (if (omn-formp alist)
            (omn-to-time-signature (make-omn :length newlengths
                                             :pitch (omn :pitch new-omn)
                                             :velocity (omn :velocity new-omn)
                                             :articulation (omn :articulation new-omn))
                                   time-sign)
            newlengths))))
    
    
    (length-staccato 1/16 '(q -q q q))
    (length-staccato 1/16 '(q e4 mp q tasto q -q q q))
    (length-staccato 1/16 '((e. c4 eb4 fs4 a4 tie) (s a4 e. cs4 e4 g4 e bb4 tie) (e bb4 e. d4 f4 gs4 s b4)))
  11. 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. 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:

     

    image.png.a006f5040085d35d3ae72cfdac9bd798.png

    ;;; 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.

     

    image.png.40ebffd494d3cf8f9396b841fc44f289.png

    ;;;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:

     

    image.png.6967440f44c45d85fda4179c0dc5481e.png

     

    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.

     

    image.png.0bd6c136b1ea38b5bc2ec2a5506d8556.png

     

    (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. 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.

     

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy