Jump to content

JulioHerrlein

Members
  • Posts

    814
  • Joined

  • Last visited

Posts posted by JulioHerrlein

  1. Dear Friends,

     

    Very basic question:

     

    I use some old VSL sample .gig files with gplayer.

    I really like this libraries and the way it sounds.

    The combination patches alternate sounds via keyswitches in the lower range of keyboard (or the upper range in some instruments).

    Something like:

    C normal sound

    C# pizz

    D marcato etc

     

    Can I use this keyswitches in the OMN lingo, without having to send the midi note itself to activate the keyswitch, something like:

     

    (marcato e c4 d4 s legato fs4 g4 cs5 eb5 )

     

    Opusmodus will send the keyswitches as a hidden midi note in the expression ?

     

    All the best,

    Julio

  2. On 4/19/2019 at 3:27 PM, Avner Dorman said:

    Hi Janusz, 

     

    In the example below (first two chords)

    b-c (+1)

    g-a (+2)

    e-f (+1)

    c-e(+3)

    total: 7 semitones move

    image.png.3530e620778d5ac3479538522bd8497b.png

     

    In the example below (first two chords)

    b-c (+1)

    g-f (-2)

    e-e (0)

    c-a (-3)

    total: 6 semitones move - this is smoother, more parsimounious (considering only the first two chords).

     

    image.png.e7ea4848ef590ee5ab29a8da3d0d1772.png

     

     

    I think voice-leading is one of the hardest things  !!

  3. Dear Friends,

     

    Avner, I noticed exactly the same behaviour.

    I feel a contradiction in having two results for something called

     "the closest path", because "the closest path", in my interpretation,

     means only one solution: the one in which the sum of the semitones

     of all voice-leading moves are the less.

    It's logically impossible to have "the closest path" with two solutions.

    You cannot have the cake and eat it too...

    If the function alternate between two solutions, maybe could be the

     case that  two solutions would sum the same amount of semitonal

     moves, but the example above do not seems to be that case.

     

    After I realized it, I tried to find a way to assure a more accurate

     expression to represent that one "closest" solution.

     

    Janusz, what do you think ?

     

    All the best !!

    I love Opusmodus !!

    Thank you !

    Best,

    Julio

  4. Dear Friends,

     

    Here 's a way to produce chords from 12 tone rows (Schoenberg opus 25 row):

    (setf op25arnie '(e4 f4 g4 cs4 fs4 ds4 gs4 d4 b4 c4 a4 as4))
    
    (respell (gen-chord2 20 '(3 3 3 1) op25arnie))

    Hope it helps a little.

     

    Best,

    Julio

     

     

    Also check this !

    And the Nigel Morgan Parametric Composition book, of course !

    More specific, to keep track of the row:

    (setf op29webernLib (expand-libraries '(library vienna webern r19)))
    (setf rowint (pitch-to-integer op29webernLib))
    (setf pitches (gen-repeat 10 op29webernLib))
    (setf lengths (span pitches (gen-repeat 10 '(s s s s -s s e -s s s -s e e -q q))))
    (setf text
          (span pitches rowint))
    (def-score Stage-1
               (:key-signature 'chromatic 
                :time-signature '(4 4) 
                :tempo 80
                :layout (treble-layout 'piano-rh))
      (piano-rh
       :length lengths
       :pitch pitches
       :text text
       ;:velocity dynamics
       :channel 1
       :sound 'gm
       :program 'acoustic-grand-piano)
    )

    Best,

    Julio

  5. Let's take one example:

     

    Take a set of 12 melodic patterns, like this:

     

    (setf jazzpit (substitute-map '(
    (s c4 d4 e4 g4)
    (s c4 d4 g4 e4)
    (s g4 e4 c4 d4)
    (s c4 d4 f4 g4)
    (s c4 d4 g4 f4)
    (s g4 f4 c4 d4)
    (s c4 d4 g4 f4)
    (s g4 gb4 f4 g4)
    (s g4 gb4 f4 a4)
    (s d4 f4 g4 a4)
    (s a4 g4 f4 d4)
    (s d4 f4 g4 c5)) '(0 1 2 3 4 5 6 7 8 9 10 11) '(0 1 2 3 4 5 6 7 8 9 10 11)))

    In this way, when I evaluate the substitute map, a got exactly the justaposition of the 12 four note patters one after another, like this:

     

    image.png.20f0c963bcf6066f494738b1e00bef6b.png

     

    If I want to have all the patterns connected by (for example) one semitone, I can MANUALLY arrange all the transpositions in a way that the connection by semitone is achieved, like this:

     

    (pitch-transpose
     '(0 6 2 3 11 8 9 6 5 11 10 11) jazzpit)

    But I have calculate this transpositions MANUALLY, one by one, figuring out, depending on the order of the patterns, wich transposition will give me the connection by semitone. Evaluating the expression above I get this:

     

    image.png.8de22917afba8ba6d43cd73741d568b4.png

     

    There are EXACTLY the same patterns of the example before transposed to connect to each other by semitone.

    THIS IS THE POINT:

    I can achieve it just because I know BEFOREHAND the order of the patterns.

    If the process of ordering the patterns is done randomly, how can I figure out the transpositions ??

     

    I'll explain:

     

    Let's look to another example:

    Let's say I have exactly the same 12 patterns but with the order choosen randomly by a rnd-unique function, like this:

     

    (setf jazzpit (substitute-map '(
    (s c4 d4 e4 g4)
    (s c4 d4 g4 e4)
    (s g4 e4 c4 d4)
    (s c4 d4 f4 g4)
    (s c4 d4 g4 f4)
    (s g4 f4 c4 d4)
    (s c4 d4 g4 f4)
    (s g4 gb4 f4 g4)
    (s g4 gb4 f4 a4)
    (s d4 f4 g4 a4)
    (s a4 g4 f4 d4)
    (s d4 f4 g4 c5)) '(0 1 2 3 4 5 6 7 8 9 10 11) (rnd-unique 12 '(0 1 2 3 4 5 6 7 8 9 10 11))))

    Now, each time I run this expression, I will get a different order of the same 12 patterns, like this:

     

    FIRST RUN:

     

    image.png.a1dbb5f984ffe2b435d9cb98adfc53de.png

     

    SECOND RUN

     

    image.png.35a9f25893302eefe9379e7bd7a34378.png

    ETC...

     

    In each case, the order of transpositions to make a connection between each four-note patterns by semitone

     could not been calculated manually because I don't know beforehand what will be the result of the expression.

     

    I would need a kind of buffer function that informs me what would be the first and last note of each pattern after

     the rnd-unique, so with this information, I could find a formula to map this information with the transposition

     sequence, in order to connect every pattern with a semitone between the its last and first note.

     

    I don't know how to antecipate the result of a random process, or to have it inside a loop of decicion making

     process inside Opusmodus.

     

    Please, let me know if I was clear in the explanation.

     

    Best,

    Julio

     

  6. Very nice, Jordv !

    I'm very interested in Harmony. Let me know about your progress in this matter.

    I did a book about set theory and harmony. If you play guitar, you gonna like it.

    It have all the possible voicings with diagrams for guitarand much more, like

     hexatonics, voice leading, functional harmony, etc.

    Here's the link

     

    https://www.melbay.com/Products/30042BCD/combinatorial-harmony-concepts-and-techniques-for-composing-and-improvising.aspx

     

    And another post related to it

     

     

     

    All the Best,

    Julio

  7. Dear Jorvd,

     

    Maybe this post can be useful.

    Best,

    Julio

     

     

    Or maybe this. I did it for composing a String Quartet from a piano reduction.

    It brings some ideas to work with harmony.

    Best,

    Julio

     

    
    ;;;HARMONY METHOD 2 ////////////////////////////////////////SEV CHORDS Basic Functions SETS///
    
    ;;SETS 7-35 - Major Scale
    
    (setf Srm7 (pcs-transpose 9 (pcs '4-26) :pitch))
    (setf S7M (pcs-transpose 4 (pcs '4-20) :pitch))
    (setf Trm7 (pcs-transpose 4 (pcs '4-26) :pitch))
    (setf T7M (pcs-transpose -1 (pcs '4-20) :pitch))
    (setf Tam7 (pcs-transpose 11 (pcs '4-26) :pitch))
    (setf D7 (pcs-transpose 11 (pcs '4-27b) :pitch))
    (setf hd (pcs-transpose 9 (pcs '4-27) :pitch))
    (setf F7M#11-5 (gen-rotate 2 (pcs-transpose -1 (pcs '4-8) :pitch)))
    
    
    ;;;Establishing a Progression
    
    (setf chordprog (chordize (list Srm7 S7M Trm7 T7M Tam7 S7M)))
    
    ;; Some repetitions and transpositions from Harmonic functions
    
    (setf chordtrp-rpt 
    (pitch-transpose-repeat '((0) (1 2 3) (0 -1)) 
    (chordize (list T7M S7M Trm7 T7M T7M T7M T7M T7M T7M T7M T7M T7M T7M T7M))))
    
    ;;; DEFINE DROP TYPES Position of chords
    
    (setf 
    csd '(0 0 0 0)
    dp2 '(0 -12 0 0)
    dp3 '(0 0 -12 0)
    dp2-4 '(0 -12 0 -12)
    dp2-3 '(0 -12 -12 0)
    ddp2-3 '(0 -24 0 -12)
    dp-24 '(-24 -24 -24 -24)
    dp-ligeti '(-24 -24 24 24))
    
    ;;;DROP ORDER - Order of Positions
    
    (setf droplist (flatten 
    (list dp2-4 dp2 dp2-4 dp3 dp2)))
    
    ;;;MAKING THE Actual Voicings
    
    (setf chordprogdrop (chordize-list
                 (pitch-transpose-n 
                  droplist
                  (sort-desc (pitch-melodize chordtrp-rpt)))))
    
    
    ;;;Using the voicings for the final result
    
    (setf chordprgtrp chordprogdrop)
    
    
    
    
    ;;; Choose how many repeats of the rhythm
    
    (setf times 1)
    
    ;;;Transform the chords into separate voices
    
    (setf voz1 (flatten (pitch-demix 1 chordprgtrp)))
    (setf voz2 (flatten (pitch-demix 2 chordprgtrp)))
    (setf voz3 (flatten (pitch-demix 3 chordprgtrp)))
    (setf voz4 (flatten (pitch-demix 4 chordprgtrp)))
    
    
    
    ;;; (OPTIONAL) Process AMBITUS Instrumental ou vocal////////////////////////////////////////
    
    ;(setf vozamb1 (ambitus '(c4 c5) voz1) vozamb2 (ambitus '(f3 c5) voz2) vozamb3 (ambitus '(g3 g4) voz3) vozamb4 (ambitus '(c2 e3) voz4))
    
    ;(setf vozamb1 (ambitus (ambitus-instrument 'flute) voz1)vozamb2 (ambitus (ambitus-instrument 'oboe) voz2) vozamb3 (ambitus (ambitus-instrument 'clarinet) voz3) vozamb4 (ambitus (ambitus-instrument 'bassoon) voz4))
    
    (setf vozamb1 voz1 vozamb2 voz2 vozamb3 voz3 vozamb4 voz4)
    
    
    ;;;HOMORHYTHM
    
    (setf homorhy (gen-repeat times '(q stacc -q e stacc q e stacc h h -s s pizz s pizz s pizz)) r1 homorhy r2 homorhy r3 homorhy r4 homorhy)(setf arthomo '(stacc stacc ord stacc ord ord leg leg ord))
    
    (setf dynhomo '(f f mf mf p< f mp< < <))
    
    ;; THE DYNAMICS are a little crazy, but this is only to show the stuff
    
    ;;;outra possibilidade para homorritmo
    ;;;lista do ritmo e articulação basica
    
    (setf ritrepeat '(-s s s s s -s s s e stacc e stacc -s s ord s s -s s s s e stacc e stacc h ord -s s s s -s s s s e stacc e stacc -e q. ord e stacc e stacc e -s s ord s s -s s -h -q s s -s s h -h))
    
    ;;;repetições
    
    (setf homorhy (gen-repeat times ritrepeat) r1 homorhy r2 homorhy r3 homorhy r4 homorhy)
    
    
    ;;;OMN ASSEMBLAGE da LINHA (for poliphony)
    
    
    (setf vozomn1
    (make-omn
     :length r1
     :pitch vozamb1
     :articulation arthomo
     :velocity dynhomo))
    
    (setf vozomn2
    (make-omn
     :length r2
     :pitch vozamb2
     :articulation arthomo
     :velocity dynhomo))
    
    (setf vozomn3
    (make-omn
     :length r3
     :pitch vozamb3
     :articulation arthomo
     :velocity dynhomo))
    
    (setf vozomn4
    (make-omn
     :length r4
     :pitch vozamb4
     :articulation arthomo
     :velocity dynhomo))
    
    ;;;---------------------------------------------------------
    ;;; SCORE
    ;;;----------------------------------------------------------
    
    ;;;
    
    ;;; (OPTIONAL) Time Signature Sequences
    
    (setf time-signatures '((2 4 1) (3 4 2) (4 4 1)))
    
    ;;;ONLY ONE TIME SIGNATURE
    
    ;(setf time-signatures '((4 4)))
    
    (def-score voices
               (:title "Piano-Red-4-Voices"
                :subtitle "Estudos Polifônicos"
                :composer "Julio-Herrlein"
                :key-signature 'atonal
                :time-signature time-signatures
                :tempo '("Meditativo" q 60)
                :layout (piano-solo-layout '(pno-rh1 pno-rh2) '(pno-lh pno-lh2))) 
      (pno-rh1 :omn vozomn1 
    :channel 1 :sound 'gm :program 'Violin :volume 100)
      (pno-rh2 :omn vozomn2 
    :channel 2 :sound 'gm :program 'Violin :volume 70)
      (pno-lh :omn vozomn3 
    :channel 3 :sound 'gm :program 'Viola :volume 80)
      (pno-lh2 :omn vozomn4 
    :channel 4 :sound 'gm :program 'Cello :volume 80))

     

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy