Jump to content
Sign in to follow this  
JulioHerrlein

Negative Harmony Function

Recommended Posts

Dear All, 

 

One interesting thing that could be implemented as a function could be a form of generating Negative Harmony.

In the video below, there are some explanation of what it is and the origin in the Levy book.

It was a trendy topic due to the Jacob Collier interview. And there are a lot of fun videos making versions of pop tunes using negative harmony.

 

The way I understand it, it is simply a kind of mapping notes in relation to an axis, like in the figure below.

 

image.png.93cc03d35099d40f1a7d2fde922e45d2.png

 

So we need a function that could map a note in any register to another note in the closest register to the first on.

So, any  C note will be mapped to G, all Db to F#, all D to F, all, Eb to E, all B to Ab, all Bb to A.

 

It´s also possible to generate other mappings as well.

 

I think that replace map or substitute map can do the job, but I´m not sure (I will try), but I find interesting to post it here to explore the idea.

 

All the best,

 

Julio

 

It´s kind of funny to sse in this por versions how every is upside down and how you can generate an entirely new song from exactly the same material.

 

 

 

POP TUNES with negative harmony:

 

 

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Topics

    • By torstenanders
      What is the Lisp function for stopping playback (bound to the shortcut cmd-esc)? 
       
      ... I could never add a custom keyboard shortcut to the Opusmodus text editor Hemlock (and I tried), but I just managed adding keyboard shortcuts and a menu for playing Opusmodus snippets and my polyphonic score format to Emacs (thanks to the fact that scores now can be displayed in a separate window). Only need some key for stopping playback as well.
       
      (The main thing I will then miss when using Emacs as the Opusmodus IDE is the close integration of the document, but well, you cannot have everything 🙂  On the plus side, I have a more stable editor and in particular a very good debugger.)
       
      Thanks! 
       
      Torsten
    • By spuki
      Hallo,
      newbie here 🙂
      I'm just starting with OM and playing around with the tutorials.
      I slightly changed tutorial #4 and run into something strange.
       
      If i run the script as posted below, all works as expected. But when i change the function reverse to nreverse (and nreverse is the oficially documented name of the function)
      the omn result will leave the right hand empty. Why ist that?  And why does reverse work as i expect it to work?
       
      And, another thing: i dont understand what the term seed will do. Will it make random functions behave always the same as long as the seed is the same?
      ...and what does the number following the seed mean?
       
      Thank you !!
      Best,
      Sebasian
      (setf pitches (gen-repeat 5 '(c4 cs4 fs4 g4 c5 cs5))) (setf transposed-pitches (gen-repeat 5 (pitch-transpose -24 pitches))) (setf lengths (span pitches '(e))) (setf lengths-rests (length-weight lengths :weight '(2 1) :seed 12)) (setf left-lengths (reverse lengths-rests)) (setf piano-righthand       (make-omn        :length lengths-rests        :pitch pitches        :velocity'(mp))) (setf piano-lefthand       (make-omn        :length left-lengths        :pitch transposed-pitches        :velocity '(f))) (setf timesigs (get-time-signature left-lengths)) (def-score lesson-4            (:key-signature 'chromatic             :time-signature '( 5 8 )             :tempo 190             :layout (piano-layout 'piano-rh 'piano-lh))     (piano-rh    :omn piano-righthand    :channel 1    :sound 'gm    :program 'acoustic-grand-piano)     (piano-lh    :omn piano-lefthand)   )  
    • By Deb76
      Hello, 
      Somewhat stupid question but I do not find a function that would allow me to reorder a sequence of pitches.
      Let me explain, on a forum where Messiaen's limited transposition modes are discussed, I wanted to show that with Opumodus we could very easily analyze the modes and recreate them. I have no problem with those who are in total symmetry and divisible by two, but if I take the mode 3: (c4 d4 eb4 e4 gb4 g4 ab4 bb4 b4), using the function pitch-transpose-start I get in the end the mode but according to the postponement of the intervallic structure on c4 d4 ab4 is => ((c4 e4 gs4) (d4 fs4 bb4) (eb4 g4 b4)). I tried to reorder with the function pcs-normal-order the mode is reordered but with however the c4 in last position: (d4 eb4 e4 fs4 g4 gs4 bb4 b4 c4). Now, I suppose there is a function that makes it possible to obtain the right disposition. What is it ?
      (setf modmessiaen3 '(c4 d4 eb4 e4 gb4 g4 ab4 bb4 b4)) (setf SIMessiaenMod3 (pitch-to-interval modmessiaen3)) ; =>  (2 1 1 2 1 1 2 1) (setf mod3divide (gen-divide 3 modmessiaen3)) (setf firstmodmessiaen3 (filter-first 3 modmessiaen3)) (setf report3 '(c4 e4 ab4)) (setf rep3 (gen-repeat 3 (list report3))) (setf pch3 (modus (flatten (pitch-transpose-start firstmodmessiaen3 rep3)))) (setf MessiaenMod3 (pcs-normal-order pch3 :pitch)) (setf SIMessiaenMod3a (pitch-to-interval MessiaenMod3)) ; => (1 1 2 1 1 2 1 -11) (setf mod3chordsM (melodize '((c4eb4gb4) (d4gb4bb4) (eb4gb4bb4) (e4g4b4) (gb4bb4db5) (g4b4d5) (ab4b4d5) (bb4gb5) (b4d5gb5)))) (setf analysechords3 (pcs-analysis (integer-to-pitch (modus mod3chordsM))))  
      In particular, this distorts the analysis of the interstellar structure of mode 3:
      of (2 1 1 2 1 1 2 1) I get (1 1 2 1 1 2 1 -11)
      Besides, there is probably a more efficient script than the one I tried?
      Best.
      Didier
       
      PS : In fact, I realize that the function pcs-normal-order is not adapted at all according to the modes.
×
×
  • Create New...