Jump to content

JulioHerrlein

Members
  • Posts

    814
  • Joined

  • Last visited

Reputation Activity

  1. Thanks
    JulioHerrlein reacted to Avner Dorman in Negative Harmony Function   
    Hi Julio,
     
    The so called "negative harmony" is the same as "inversion and symmetrical axes" in set theory (which is the same as saying Neo-Riemannian theory - all transformations are In operations).
     
    An inversion of a pitch class is given by subtracting the pc from index of the inversion operation, n.
     
    In(pc1, pc2,pc3) = (n-pc1, n-pc2, n-pc3)
     
    If you want to think of it as an inversion around an axis, the axis would be n/2 (or 12-n/2 on the other side of the clock-face). 
     
    So the function could be written like this: 
     
    (defun axis-inversion (axis pitches) (integer-to-pitch (loop for i in pitches collect (- (* 2 axis) (pitch-to-integer i))))) And if you want to use Eb-E as the axis it would be 3.5 (e is pc3 and eb is pc4)
     
    (axis-inversion 3.5 '(c4 e4 g4)) ;;; results in (g4 eb4 c4)  
    This doesn't account for octaves etc. - for that you'll need to use midi. Now the axis is given in midi number - so 63.5 would be Eb4:
     
    (defun midi-inversion (axis pitches) (midi-to-pitch (loop for i in pitches collect (- (* 2 axis) (pitch-to-midi i))))) (midi-inversion 63.5 '(c4 e4 g4)) ;;; you get (g4 eb4 c4) (midi-inversion 60 '(c4 e4 g4)) ;;; you get (g4 eb4 c4) (midi-inversion 53.5 '(c4 e4 g4)) ;;; you get (b2 g2 e2)  
    If I missed any cases I am happy to check them out 🙂 
     
    All the best,
    Avner 
     
     
    p.s. - 
     
    (midi-inversion 63.5 '(a4 g4 fs4 a4 d5 a4 fs5 d5 a5 fs5 e5 d5)) ;;; results in (bb3 c4 cs4 bb3 f3 bb3 cs3 f3 bb2 cs3 eb3 f3) ;;; as you expected (I think? I only checked the first few notes :-)  
  2. Thanks
    JulioHerrlein got a reaction from TomTolleson in Negative Harmony Function   
    Dear Tom, 
     
    Looks great ! Sometimes we find excellent stuff just by accident. I love when this happens !
    Actually, as I said before, the negative harmony is sligthly different from just the inversion of the pitch. 
    In your inversion, the pitch axis is the first note a4, so all the inversion operation is based in that first note.
     
    In the  negative harmony, the axis lies between two notes and have some tonal orientation, i.e., it´s a kind of mapping that changes according to each tonality. For example, the mapping corresponding to the C center would be like:
     

     
    So, the "negative version" of  your melody below:
     
    a4 g4 fs4 a4 d5 a4 fs5 d5 a5 fs5 e5 d5
     
    would be, according to the graph above:
     
    Bb C Db Bb F Bb Db F Bb Db Eb F.
     
    Please, check the first video of the post, it´s very pedagogical.
     
    Probably Stephane will have a solution. The keyword is MAPPING. Maybe pattern substitution, pattern match, but a function where the octaves are relatives.
     
    All the best !
     
    Julio
     
     
  3. Like
    JulioHerrlein got a reaction from Stephane Boussuge in Session 6 - 20.06.20 - From Nothing (Part 2)   
    Thank you, Stephane ! Very nice presentation !
    Best,
    Julio
  4. Thanks
    JulioHerrlein reacted to Stephane Boussuge in Session 6 - 20.06.20 - From Nothing (Part 2)   
    Hi folks,
    here's the file from the last session.
     
    Happy study !
    Stéphane
     
    FromNothingSuite-20-06-2020.opmo
  5. Thanks
    JulioHerrlein reacted to Jorgalad in Different Voice for one note in a Chord   
    Wow that is some stellar work, I do play guitar but I mainly compose on piano will send this along to my guitar playing friends, seems like a very valuable source.
    I already had some new things to learn in the first few lines of your provided example so I had a productive day yesterday.
    I have no doubt that you're familiar with these, but for others that might be interested, I found some useful tools for PCS analysis as well as a nice explanation on the subject.
     
    https://www.fransabsil.nl/htm/toneset.htm#toneset_userguidelines
     
    https://www.mta.ca/pc-set/pc-set_new/pages/introduction/toc.html
  6. Like
    JulioHerrlein reacted to opmo in Opusmodus 2.0.25787   
    2.0.25787
     
    – New functions:
     MICROPOLYPHONY  MICRO-QUANTIZE  MAKE-BINARY  COLLATZ-SEQUENCE  ULAM-SPIRAL-ARRAY  ZIGZAG-ARRAY  
    – Key shortcut changes:
    Utilities Search: control-option-F
    Navigator Search: control-shift-F
     
    At the moment we have two versions of Opusmodus, one for macOS 10.15 (Catalina) and one for macOS 10.9 - 10.14 due to Apple Xcode bug.
    Therefore use the Forums Download link, which you find in the Forums menu.
     
    In the HowTo Score section you will find a few new examples to play with:
    HowTo Score/Polyphony/Micropolyphony 1.opmo
    HowTo Score/Polyphony/Micropolyphony 2.opmo
    HowTo Score/Rhythm/Rhythm.opmo
  7. Like
    JulioHerrlein reacted to opmo in OMN articulation Customization   
    The key switches, cc etc... you will find in your Virtual Instrument Manuals.
  8. Like
    JulioHerrlein reacted to Stephane Boussuge in OMN articulation Customization   
    look docs for add-program-attributes function and add-text-attributes.
     
    SB.
     
  9. Thanks
    JulioHerrlein reacted to opmo in OMN articulation Customization   
    There is no nail-scrape articulation (symbol) in the musicxml but you can create your own text attribute for that.
    How to create user text attribute check the System Library documents.
  10. Thanks
    JulioHerrlein reacted to Stephane Boussuge in Combination without repeating elements   
    Why not using combination in place of combination2 ?
     
     
    SB.
  11. Like
    JulioHerrlein reacted to LdBeth in Combination without repeating elements   
    There's a count-repeat function.
     
    ? (count-repeat '(a3 b3 b3 b3)) count-repeat (1 3)  
    Thus
    (let ((*do-verbose* nil)) (remove-if (lambda (x) (> (apply #'max (count-repeat x)) 1)) ;; or replace apply with (reduce #'max (count-repeat x)), essentially does the same (combination2 4 '(c3 d3 e3 f3 g3 a3 b3)))) ((a3 b3 a3 b3) (g3 b3 a3 b3) (f3 b3 a3 b3) (e3 b3 a3 b3) (d3 b3 a3 b3) (c3 b3 a3 b3) (b3 g3 a3 b3) (a3 g3 a3 b3) (f3 g3 a3 b3) (e3 g3 a3 b3) (d3 g3 a3 b3) (c3 g3 a3 b3) (b3 f3 a3 b3) (a3 f3 a3 b3) (g3 f3 a3 b3) (e3 f3 a3 b3) (d3 f3 a3 b3) (c3 f3 a3 b3) (b3 e3 a3 b3) (a3 e3 a3 b3) (g3 e3 a3 b3) (f3 e3 a3 b3) (d3 e3 a3 b3) (c3 e3 a3 b3) (b3 d3 a3 b3) (a3 d3 a3 b3) (g3 d3 a3 b3) (f3 d3 a3 b3) (e3 d3 a3 b3) (c3 d3 a3 b3) (b3 c3 a3 b3) ...  
  12. Like
    JulioHerrlein got a reaction from Stephane Boussuge in Couleurs du temps présent pour Flute et Piano   
    Very nice ! Some Messiaen touch.
  13. Thanks
    JulioHerrlein reacted to Stephane Boussuge in Couleurs du temps présent pour Flute et Piano   
    Here's a new piece made in Opusmodus.
     
       
     
    The pdf itself is raw output of Opusmodus, I've just added Title, name etc... with PdfExpert software.
    Enjoy.
     
    SB.
     
    CouleursDuTempsPourFluteEtPiano.pdf
  14. Thanks
    JulioHerrlein reacted to opmo in Parametric Music Composition with Opusmodus   
    The Karajan Music Tech Conference is a cross-industry networking event in a creative environment.
     

     

    Parametric Music Composition with Opusmodus
    presentation by Stéphane Boussuge
     

  15. Thanks
    JulioHerrlein reacted to opmo in OPUSMODUS 2.0 OUT NOW!   
  16. Like
    JulioHerrlein got a reaction from Jorgalad in Giant Steps Improvisation generator   
    Thanks for editing the file, Janusz !
    Here is some Giant Steps in 12 keys !
    Best !
    Julio
     
  17. Like
    JulioHerrlein reacted to opmo in Giant Steps Improvisation generator   
    Bravo! love it.
  18. Like
    JulioHerrlein got a reaction from lviklund in Giant Steps Improvisation generator   
    Thanks for editing the file, Janusz !
    Here is some Giant Steps in 12 keys !
    Best !
    Julio
     
  19. Like
    JulioHerrlein reacted to opmo in Giant Steps Improvisation generator   
    Same as above with corrections to the renamed function.
     
    giant-steps-vl-improv.opmo
  20. Like
    JulioHerrlein reacted to opmo in Giant Steps Improvisation generator   
    Function name change 🙂
  21. Like
    JulioHerrlein reacted to o_e in Giant Steps Improvisation generator   
    Just tried your code, it does not compile, I had to change some 'chord-closest-path' into 'closest-path' and add some setf's, then it worked. Maybe you want to correct it..?
     
    best
     
    ole
     
     
  22. Like
    JulioHerrlein reacted to o_e in harmonic-path   
    Thanks for the answers!
    My starting point was the video from Jorvd and he don't uses the :time parameter at all, that was confusing me.
    @Julio: thanks for the example, I will look into that!
     
  23. Like
    JulioHerrlein reacted to opmo in harmonic-path   
    (setf mat       '((s c4 cs4 gs4 eb4 d4 g4 fs4 a4 e4 bb4 b4 f4)         (s c4 d4 eb4 bb4 f4 g4 a4 fs4 b4 e4 gs4 cs4)         (s c4 a4 g4 cs4 fs4 b4 f4 eb4 e4 gs4 d4 bb4)         (s c4 b4 bb4 f4 e4 d4 cs4 eb4 gs4 fs4 a4 g4)         (s c4 gs4 d4 cs4 g4 f4 fs4 eb4 a4 b4 bb4 e4)         (s c4 d4 bb4 e4 g4 a4 fs4 b4 eb4 gs4 f4 cs4)         (s c4 gs4 cs4 fs4 b4 g4 eb4 f4 a4 d4 e4 bb4)         (s c4 b4 fs4 e4 d4 cs4 f4 a4 eb4 bb4 gs4 g4)         (s c4 eb4 cs4 g4 f4 gs4 d4 a4 b4 fs4 bb4 e4)         (s c4 a4 eb4 fs4 gs4 f4 bb4 d4 b4 g4 e4 cs4)         (s c4 cs4 g4 b4 gs4 e4 f4 fs4 d4 eb4 bb4 a4)         (s c4 fs4 e4 eb4 cs4 f4 bb4 g4 a4 gs4 d4 b4))) (setf path '(fs4a4c5 a4c5e5 b4db5fs5)) (harmonic-path path mat :octave 'path :time '(1/2 3/4 4/4) :loop t) (harmonic-path path mat :octave 'path :time '(1/2 3/4 4/4) :loop nil)  
    The :time option controls the time (duration) of each path:
    1st path  fs4a4c5  for 1/3 2nd path  a4c5e5  for 3/4 3rd path  b4db5fs5 for 4/4  
    if loop is nil then the last value of the time list (4/4) will apply to each path (its duration):  '(1/2 3/4 4/4 4/4 4/4 4/4 4/4 . . .)
    if loop is set to t then the time list values will repeat again and again: '(1/2 3/4 4/4 1/2 3/4 4/4 1/2 3/4 4/4 . . .)

    If you path is a list or one chord then there is no need for a loop option. 
  24. Thanks
    JulioHerrlein reacted to Stephane Boussuge in Generate gestures through midi input   
    I've made a video showing a prelude composition from originally midi imported material:
     
    https://opusmodus.com/forums/videos/view-28-composing-a-piano-prelude/
     
    As Julio mentionned before, Unfold is also another powerful way for variations.
     
    Happy Opusmodusing !!
     
    Stéphane
  25. Like
    JulioHerrlein reacted to opmo in Score Examples   
    You find many examples in the Utilities panel in the 'Howto Score' and the 'Score Examples' section:


×
×
  • Create New...

Important Information

Terms of Use Privacy Policy