
Content count
119 
Joined

Last visited

Days Won
4
Content Type
Profiles
Forums
Blogs
Calendar
Tutorials
Downloads
Videos
Member Map
Everything posted by JulioHerrlein

Changing MIDI channels with articulations
JulioHerrlein replied to torstenanders's topic in Support & Troubleshooting
Me too !!! Thanks ! 
Modelling Tonality (1) Diatonic Transposition (some intuitions)
JulioHerrlein posted a topic in Function examples
I'm thinking about the formal conditions of the diatonic transposition. It may seem trivial, but actually is much more difficult than it appears. I think that modelling tonality and diatonic stuff is far more difficult than the 12tone operations. One of the things I think is that in diatonic transposition you need to inform more to the machine, a kind of axis point or map, because the transposition of each degree is going to be different. In the case of the diatonic set, the MyHill property assures that each diatonic distance will be in exactly 2 sizes. Seconds: major and minor; Thirds: major and minor; Fourths: perfect and augmented; Fifths: perfect and diminished and so on... The Morris pitch spaces are also part of the problem... Do you have any hint in relation to this intuitions to share ? Maybe the way that OM make this operations ? Best, Julio 
Great idea, Torsten Very pedagogic example too. Thanks a lot. Im studying a lot of diatonic set Theory now, so I'm interested on mod 12 and mod 7 operations. The problem with the diatonic stuff is that is, in the lingo of Robert Morris, a pitch space with a irregular but periodic division. Best Julio

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

Modelling Tonality (1) Diatonic Transposition (some intuitions)
JulioHerrlein replied to JulioHerrlein's topic in Function examples
Thank you, Torsten. You are digging a lot into the realm of modelling tonality. I think that this is really something more interesting than brownian motions, stochastic stuff, because there are many constraints in the tonality and also idiomatisms. Models like the xenakian one are amazing but the are in the realm of math. I'd like to find something more idiomatic. Best, Julio 
Saving Plots and Piano Rolls to PDF Vectorial Graphics ETC
JulioHerrlein posted a topic in Notation & Layout
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 
Modelling Tonality (1) Diatonic Transposition (some intuitions)
JulioHerrlein replied to JulioHerrlein's topic in Function examples
Thanks a lot, Stephane ! It's a kind of mapping. Best ! Julio 
Dear All, HAPPY 2018 !! With the new PCS organization in Opusmodus is possible to implement a concept of my book, called Combinatorial Voiceleading of Hexachords. From a Hexachord Set, is possible to find 10 different ways to combine the notes in the for of voiceleading sets. Each hexachord is divided in (3 + 3) way. This expression: (setf hexavl (mclist (chordizelist (integertopitch (removeduplicates (sortasc (gendivide 3 (flatten (permute (pcs '632))))) :test #'equal))))) Will result in this combination of the 632 hexachord, similar to the idea in the book. In the book, the material is organized in 70 pages of melodic and harmonic exercises. Here is a litte sample: CH_HERRLEIN.pdf The entire book: https://www.melbay.com/Products/Default.aspx?bookid=30042BCDEB Best ! Julio Herrlein

 combinatorial harmony
 voiceleading

(and 1 more)
Tagged with:

Thanks, Janusz !

I need a function to filter the Permutations. For example: (gendivide 2 (flatten (permute (pcs '41)))) Will result in: ((0 1) (2 3) (0 1) (3 2) (0 2) (1 3) (0 2) (3 1) (0 3) (1 2) (0 3) (2 1) (1 0) (2 3) (1 0) (3 2) (1 2) (0 3) (1 2) (3 0) (1 3) (0 2) (1 3) (2 0) (2 0) (1 3) (2 0) (3 1) (2 1) (0 3) (2 1) (3 0) (2 3) (0 1) (2 3) (1 0) (3 0) (1 2) (3 0) (2 1) (3 1) (0 2) (3 1) (2 0) (3 2) (0 1) (3 2) (1 0)) But I don't mind with the order, since I'll make chords out of it, so ((0 1) (2 3) or (0 1) (3 2) or (1 0) (2 3) will result in the same chord. How to filter the list onto a list where the order does not matter ? Best, Julio

Possible workaround: (removeduplicates (sortasc (combination 3 (pcs '61))) :test #'equal)

Parsimonious Voice Leading (again): attempts to provide an algorithm
JulioHerrlein posted a topic in Function examples
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 VoiceLeading (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) ;lLet'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 ChordClosestPath Function ;;;Evaluate voices before (setf voices 3) ;;;Then (setf chordized (mclist (chordizelist (gendivide voices (setf vlfinal (integertopitch (modus (intervaltopitch (replacemap '((11 1) (10 2) (9 3) (8 4) (7 5) (7 5) (8 4) (9 3)(10 2)(11 1)) (integertointerval (modus (pitchtomidi (setf chordmelo (pitchmelodize chordstovl2)))))) :start (car chordmelo))))))))) ;;; Please note the use of the replacemap 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 ChordClosestPath Function (chordclosestpath (car chordized) (chordizelist (gendivide voices vlfinal))) Hope it help some VL efforts. Best, Julio Herrlein 3 replies

 voiceleading
 parsimonious voice leading

(and 1 more)
Tagged with:

Parsimonious Voice Leading (again): attempts to provide an algorithm
JulioHerrlein replied to JulioHerrlein's topic in Function examples
Thanks, Janusz ! Best ! Julio 3 replies

 voiceleading
 parsimonious voice leading

(and 1 more)
Tagged with:

Parsimonious Voice Leading (again): attempts to provide an algorithm
JulioHerrlein replied to JulioHerrlein's topic in Function examples
Janusz suggested a different way for the expression: (setf voices 3) (setf chordstovl2 '(b3eb5g3 cs6e7gs3 b4f5g6 f7e5c2 d4f7e4 gs7e2a8)) (setf chordmelo (pitchmelodize chordstovl2)) (setf intervals (integertointerval (modus (pitchtomidi chordmelo)))) (setf map (replacemap '((11 1) (10 2) (9 3) (8 4) (7 5) (7 5) (8 4) (9 3) (10 2) (11 1)) intervals)) (setf vlfinal (integertopitch (modus (intervaltopitch map :start (car chordmelo))))) (setf chordized (mclist (chordizelist (gendivide voices vlfinal)))) (chordclosestpath (car chordized) chordized) 3 replies

 voiceleading
 parsimonious voice leading

(and 1 more)
Tagged with:

Great !!! New Year Version!! BEst ! Julio

Thanks, Didier ! I'm looking forward for the new Opusmodus version. It willl be better for dealing with sets. Best ! Happy New Year ! Julio

modus OK !!!

Congrats, Janusz! Looks Great! Merry Xmas!. Best Julio

Looks interesting ! Looking forward ! Best. Merry Xmas, Janusz !

NeoRiemannian approach (Tonnetz, etc.)
JulioHerrlein replied to Wim Dijkgraaf's topic in Function examples
Dear Wim I found your model very interesting and useful. It worked for me. Best ! Julio 
How to extend the system with your own functions
JulioHerrlein replied to opmo's topic in Programming (Common Lisp)
Here is the answer for my last question. Best Julio 
Génération de structures de hauteurs à partir d'une série avec genchord2
JulioHerrlein commented on Stephane Boussuge's blog entry in Stephane Boussuge's Blog
Where the accmp is defined ? I think is missing... Best, Jullio 
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 builtin functions we are working in a "pseudocode". For example, last week André Meier wrote the code below, for tweaking lenghts. This could be transformed in a OM builtinl 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 "lenghtstaccato" (defun lengthstaccato (n alist) (let ((newlengths) (newomn (omnmergeties (flatten alist))) (timesign (gettimesignature alist))) (progn (setf newlengths (loop for i in (omn :length newomn) when (> i 0) append (if (= n i) (list i) (list n (* 1 (abs ( i n))))) else collect i)) (if (omnformp alist) (omntotimesignature (makeomn :length newlengths :pitch (omn :pitch newomn) :velocity (omn :velocity newomn) :articulation (omn :articulation newomn)) timesign) newlengths)))) (lengthstaccato 1/16 '(q q q q)) (lengthstaccato 1/16 '(q e4 mp q tasto q q q q)) (lengthstaccato 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)))

Dear Torsten/Janusz Is there a way to see the Lisp Code underneath the existing functions of Opusmodus in order to learn ? Best, Julio

Pcs: how to retrieve inverted forms from this function ?
JulioHerrlein replied to JulioHerrlein's topic in Function examples
Thank you, Iviklund! Best Julio