Jump to content

JulioHerrlein

Members
  • Posts

    814
  • Joined

  • Last visited

Everything posted by JulioHerrlein

  1. Janusz suggested a different way for the expression: (setf voices 3) (setf chordstovl2 '(b3eb5g3 cs6e7gs3 b4f5g6 f7e5c2 d4f7e4 gs7e2a8)) (setf chordmelo (pitch-melodize chordstovl2)) (setf intervals (integer-to-interval (modus (pitch-to-midi chordmelo)))) (setf map (replace-map '((-11 1) (-10 2) (-9 3) (-8 4) (-7 5) (7 -5) (8 -4) (9 -3) (10 -2) (11 -1)) intervals)) (setf vlfinal (integer-to-pitch (modus (interval-to-pitch map :start (car chordmelo))))) (setf chordized (mclist (chordize-list (gen-divide voices vlfinal)))) (chord-closest-path (car chordized) chordized)
  2. Parsimonious Voice Leading (again): attempts to provide an algorithm In a previous post I deleted, I was trying to find a good way to ensure the minimal parsimonious Voice-Leading (VL) between a sequence of chords. In this post I will try to explain my second attempt. Let's take a look at a sequence of chords, spreaded out almost in a random way, with no VL (setf chordstovl2 '(b3eb5g3 cs6e7gs3 b4f5g6 f7e5c2 d4f7e4 gs7e2a8) Let's specify and evaluate a variable for the number of voices used: (setf voices 3) Let's try to think the best way to connect this pitches with minimal movement. I will apply the following expression to ensure a better and less ambiguous result when applying the CHORD-CLOSEST-PATH function. Evaluate voices before (setf voices 3) Then (setf chordized (mclist (chordize-list (gen-divide voices (setf vlfinal (integer-to-pitch (modus (interval-to-pitch (replace-map '((-11 1) (-10 2) (-9 3) (-8 4) (-7 5) (7 -5) (8 -4) (9 -3)(10 -2)(11 -1)) (integer-to-interval (modus (pitch-to-midi (setf chordmelo (pitch-melodize chordstovl2)))))) :start (car chordmelo))))))))) Please note the use of the replace-map function ensuring that no movement will be greater than a tritone away. This means that a movement like "C to G" (7 semitones) will be convertet in a G to C (5 semitones). This ensure a modulo 12 (octave constraint) reduction of all the material and also a constraint in terms of the size of the movements that will not exceed 6 semitones. Finally, I will apply the CHORD-CLOSEST-PATH function (chord-closest-path (car chordized) (chordize-list (gen-divide voices vlfinal))) Hope it help some VL efforts. Best, Julio Herrlein
  3. Thanks, Didier ! I'm looking forward for the new Opusmodus version. It willl be better for dealing with sets. Best ! Happy New Year ! Julio
  4. Dear Friends, I'm struggling to find a modulo 12 function Something like this: (mod12 '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 24 48)) returns >> (0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 0 0) Any Hint ? Best, Julio
  5. Congrats, Janusz! Looks Great! Merry Xmas!. Best Julio
  6. Looks interesting ! Looking forward ! Best. Merry Xmas, Janusz !
  7. Dear Wim I found your model very interesting and useful. It worked for me. Best ! Julio
  8. Dear Janusz, I presume that under each function there is a code that is hidden for the sake of elegance and for practical reasons. Actually, when using Opusmodus built-in functions we are working in a "pseudo-code". For example, last week André Meier wrote the code below, for tweaking lenghts. This could be transformed in a OM built-inl function, in a way that we could not see the entire code, only the call of the function. I'm asking where can I see the entire lisp code of the built in functions in order to learn to code my own functions, like André and Torsten. Best, Julio André Meier Function "lenght-staccato" (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)))
  9. Dear Torsten/Janusz Is there a way to see the Lisp Code underneath the existing functions of Opusmodus in order to learn ? Best, Julio
  10. Hey, Stephane! Thank you! Hope you like it. What a lovely combination! I feel very honored with this picture! Best! Julio added 2 minutes later Thank you, LOOPYC! It's really cool to have a physical book. Best regards and happy xmas to you! Best Julio
  11. Tested !!! It works !! No XML bug and works w/ sublists. Thanks André !! You rock ! Best, Julio
  12. Yes, Hope he read throught this. Always amazing ideas coming. Best Julio
  13. Thanks a lot, Ole ! I noticed that problem. I got a strange musicXML result when evaluating this: (length-staccato-lists 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))) In the screen it appears somewhat buggy and in the XML, the result is unaltered (no staccato at all) Best ! Julio bugxml_lengthfunction2.xml
  14. Dear Andre, Thank you! Very nice example. I will study this. Best Julio
  15. Dear Friends, What is the exact opposite function of length-legato ? Lenght-legato turns this: onto this: I want exactly the reverse: Changing this: to this: Thanks for help ! Best ! Julio
  16. Dear Friends, I'm happy to announce that my doctoral dissertation in music composition will have many Opusmodus examples ! I'd like to know how the best way to export plots, and midi piano roll (assistants) for using as examples in Microsoft Word, PDF applications, vectorial graphic software (like Corel), etc I was just snapshoting the screen with built in mac snapshot function (CMN + CTRL + SHIFT + 4) but wondering if there are some method for saving the output. Best, Julio
  17. WOW !!! GREAT ! Thanks ! It was really a lot of work done ! Lots of sets, but it's really useful, I think. Best ! Julio This will be in the next release, I think. Looking Forward ! added 2 minutes later If you like Set Theory and Guitar, you gonna like my book. Please, Check it out ! https://www.melbay.com/Products/Default.aspx?bookid=30042BCDEB Best, Julio
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy