Jump to content

JulioHerrlein

Members
  • Posts

    809
  • Joined

  • Last visited

Everything posted by JulioHerrlein

  1. Dear Janusz, EXACT !!! Looks great !! Nice touch adding the row operations inside it (p, i , r and ri). Is it too hard to code ? Best, Julio
  2. 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: 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: 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: SECOND RUN 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
  3. Thanks , Janusz. I was trying to find a way to implement an algorhythm to process the randomness. Depending on the random result, the transposition would be adjusted based on the last note generated. Best, Julio
  4. 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
  5. 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))
  6. CONNECTING BY SEMITONE Dear Stephane and friends, I'm back to this idea of fragments, this time with some Dave Liebman licks. I have one question: 1) How to ensure that the connection between the lines are made always by semitone or whole tone ? Is there some way to make an expression for that? I'll try to explain it better: Lets say I have one fragments and some random transpositions, as in the Stephane's solution: FRAGMENT 1 (Coltrane Pattern) (c4 d4 e4 g4) For connecting to the preceeding pattern by semitone, the pattern must be transposed to (fs4 gs4 as4 cs5) > Tritone above or to (ab4 bb4 c5 eb5) > minor 6 above. For connecting to the (fs4 gs4 as4 cs5) pattern, the pattern must be transposed to (c5 d5 e5 g5) > octave above or to (d5 e5 fs5 a5) > ninth above. And so on... Depending on the random transposition, I would need a function to check the last note of each pattern to calculate the right transposition depending on the last note. Maybe a loop function... I could write all the patterns beginning in C, so after having the last note the transposition could be calculated. Any idea ? All the best ! Julio
  7. Dear Didier, Nice to hear from you. Congrats for the project. I'm happy to make something useful here. Best, Julio
  8. Great, Janusz. And no more manual updates !! Best, Julio
  9. Janusz, It would be great with some kind of span inside, like this: (octave-map '(3 5 6) '(c3 d3 e3 f3 g3 f3 e3 d3 c3 cs3)) => (c3 d5 e6 f3 g5 f6 e3 d5 c6 cs3) Best, Julio Or better: (octave-map '(3 5 6) '(c3 d3 e3 f3 g3 f3 e3 d3 c3 cs3) :span t) => (c3 d5 e6 f3 g5 f6 e3 d5 c6 cs3) Best,
  10. Thank you Janusz ! Good Idea ! Happy 2019 ! Best, Julio
  11. Thanks a lot, André ! I´m trying to use your famous loops ! All the Best ! Happy 2019 ! Julio
  12. Dear All, I'm trying to find a loop for making substitutions in a list, for changing the ranges of a list of pitches. SOME PITCHES (AND WHAT TO CHANGE) (setf pitches '(c4 d4 e4 c4 eb4 f4 c4 eb4 eb5)) (setf i '(c4 eb4)) This will take out the range of the notes, i.e., c4 db5 will became c db (defun convert-pitch (pitches) (loop for i in pitches when (pitchp i) collect (compress (butlast (explode i))) else collect i)) Setting a variable for pitches without range indication (pitnorng) and a new range list (setf pitnorng (convert-pitch pitches)) (setf rangelist '(4 5 3 6 4)) Function to put back the new range to the notes (defun convert-pitchbk (pitnorng) (loop for i in pitnorng when i collect (flatten (mapcar 'list pitnorng rangelist)) else collect i )) Setting a collection of notes with new ranges: (setf convbaklst (convert-pitchbk pitnorng)) The (problematic) result: ((c 4 d 5 e 3 c 6 eb 4) (c 4 d 5 e 3 c 6 eb 4) (c 4 d 5 e 3 c 6 eb 4) (c 4 d 5 e 3 c 6 eb 4) (c 4 d 5 e 3 c 6 eb 4) (c 4 d 5 e 3 c 6 eb 4) (c 4 d 5 e 3 c 6 eb 4) (c 4 d 5 e 3 c 6 eb 4) (c 4 d 5 e 3 c 6 eb 4)) I have WHITE SPACES between the note and the corresponding range... LISP PROBLEM: How to remove the white spaces ? Best, Julio And also... The list is multiplied 9 times... why? Some problem in the loop function, I suppose...
  13. Dear Friends, Maybe this could work (in def score, not in make omn) (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) ) RESULT Best ! Julio
  14. Dear Didier, Maybe you could try this way, with integer-to-pitch function: (setf mkomnpit (gen-repeat 10 (integer-to-pitch '(0 2 4 7)))) (setf mkomnrhy (gen-repeat 5 '(s s s s e. s q q))) (make-omn :length (span mkomnpit mkomnrhy) :pitch (span mkomnrhy mkomnpit)) Integer to Pitch: (integer-to-pitch '(0 2 4 7) Will result in Best, Julio
  15. Thank you, Torsten ! Looks great. Have a nice 2019 ! Best, Julio
  16. It would ve great to have the :port and :channel in the make-omn function. Sometimes is interesting for hearing snippets with different sounds without having to compile the entire score (sometimes it take a while,depending on the complexity of the score). The port would help to deal with vst adresses and libraries on auditioning. Best !
  17. Really cool for idiomatic stuff ! This will be great ! Best, Julio
  18. Beautiful ! Any code or hint about the composicional process ? Best, Julio
  19. Happy New Year, Tim I updated too but I had no crashes at all. Using El Capitan 10.11.6 Opusmodus seems more fast, by the way. Best, Julio
  20. Thanks a lot, Stephane ! 7-33 is ALMOST a whole tone scale. (0 1 2 4 6 8 A). All the Best ! Julio
  21. Nice, Stephane! Some score/code or compositional hints? Whole tones a lot, by the way. Best, Julio
  22. Dear André, Thank you for the detailed explanation. In the mind of the composers there is a lot of not so evident processes. This is deep. All the best, Julio
  23. Looks interesting. The function seems to work. I tryed some ideas with 3 or 4-note chords. It's easier to figure out what it does. What is the musical idea behind it ? What's the musical purpose? Any example in the context of a composition? Best, Julio
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy