Jump to content
Sign in to follow this  

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.




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,




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

Are you simply looking for an invert function, e.g., pitch-invert? 


(pitch-invert '(c4 d4 e4))

=> (c4 bb3 gs3)


This function inverts (mirrors) around the first pitch by default. If you are looking for retaining the original ambitus, you might want to instead you my function invert-in-ambitus (https://tanders.github.io/tot/sources/pitch.html#_g251910).



(invert-in-ambitus '(c4 e4 g4)) 
=> (g4 eb4 c4)


BTW, when you are specifically talking about a harmonic context in which you are "mirroring" chords, there exist extensive music theories based on this idea already. The notion of minor chords as the mirror image of major chords, and its implications on harmonic functions (tonic, dominant, subdominant etc.) was in detail explored under the label of dualism by theorists like Hugo Riemann, Arthur von Öttingen and Sigfrid Karg-Elert. They also already generalised this notion for microtonal music. Likely independently of these theorists exploring the notion of dualism, Harry Partch's concept of otonality and utonality is also based on this idea, now firmly in the field of microtonal music. In microtonal harmonic theory I came across this notion also elsewhere (e.g., discussed by the composers and theorists of ekmelic music like Franz Richter Herf, which may have arrived there independently as well.


Anyway, this harmonic concept in general is so basic and fundamental that I would not be surprised it would have been studied by the likes of Pythagoras already...




Share this post

Link to post
Share on other sites

Just a brief follow-up. While Partch's book is obviously available in English, the other authors all wrote in German. More recent Neo-Riemannian theory is often pretty math-heavy, so also somewhat hard to digest for us composers. To get a taste of these harmonic theories in a highly developed form (with dualism throughout, but that is only one facet) delivered by a practicing composers, you might want to have a look at the recent English translation and discussion of Sigfrid Karg-Elert's book Acoustic Determination of Pitch, Chord and Function from 1930.


Byrne, D. A. (2018) The Harmonic Theories of Sigfrid Karg-Elert: Acoustics, Function, Transformation, Perception. PhD Thesis thesis. University of Cincinnati. Online available (with a somewhat slow download speed) at https://etd.ohiolink.edu/!etd.send_file?accession=ucin1522417315389199&disposition=attachment !etd.send_file?accession=ucin15224173153
Warning: this is not for the faint of heart 🙂

Share this post

Link to post
Share on other sites

Dear Torsten


The function pitch-invert works as the tradional inversion, mirroing the intervals upside-down.

Negative harmony is somewhat similar to inversion, but not exactly the same thing.

Please, take a look in Levy book and in the video above, and you will see what I mean.

I'm looking for something straightforward and non-academic, inside the 12-tone temperament, very simple, just to spice up

 the old progressions and voice-leading with a negative version.


Thank you for the reply and references.





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.

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 JulioHerrlein
      In my Dissertation, I worked a way to convert every chord and set in a modulo 12 rhythm,
      so the entire catalog of FORTE are converted to rhythms, following the steps of Babitt:

      As a hardcore serialist, Babbitt was interested in converting 12-tone rows to rhythms, in a kind of 12-tone rhythm theory.
      Below, Wuorinen show one example of a typical Babbitt idea:

      For the sake of explaining my idea of function, it's important to have in mind that for Babbitt, the order of the
       row is very important and lead to different results in the pitch to rhythm conversion. Take a look in the example

      In the preceeding figure, the order of the C major triad generate different rhythms. In the example (0 4 7) have a
      different result from (4 0 7) or (7 0 4).
      In the system I developed in my Dissertation, the order does NOT matter, since (0 4 7), (7 0 4) or (4 0 7) will result
       in exactly the same rhythm, as you can see below:

      In my system, the transposition equals rotation (as well as in Babbitt)

      And every chord symbol can be transformed in a rhythm:

      Even voicings can be converted in longer Rhythms (the more spread the voicing, the longer the rhythm):

      So I did every FORTE SET in the catalog, in this way:
      Below, you can see the example of the rhythm of the major triad (Forte number 3-11b).
      In the 1st bar there is the prime form (0 4 7).
      In each subsequent bar there is a rotation of the first set by 16th note increments.
      HERE IS THE POINT, for the sake of the new function !
      The note C (that I call Rhythmic Fundamental, the "root" of the rhythm) is being displaced, as
       you can see in the circled notes.
      THE SET WRAP AROUND ITSELF, always forming 12 time-points (always twelve 16th notes),
      in a different way from Babbit, where the order of the sets generates longer rhythms.
      THIS WAY IS MORE INTERESTING For Popular and Minimalist Repetition Music, as
       well as 12 tone music.
      In the bottom staff, there are the complementary rhythm of the 3-11b set, i.e., the 9-11a
       set. In the catalog, every set is presented alongside its complementary set and every set is
      presented in 3/4 (16th notes) and in 12-8 (with the 8th note as the base value for the increments
       and rotations).

      So the function needed would be the one that mirror exacty this kind of conversion, not the tradicional time-point-system conversion,
      so I could use my catolog inside Opusmodus, connecting the diferent sets, like this:

      Or even using portions of the Rhythmic Sets, by truncating some of them, like this:

      In the preceeding example, only parts of the 2 sets are used (9 time points out of 12 in the 
      first and 8 time points out of 12 in the second).
      So, I hope someone could help me to find a way of implementing this.
      Maybe Janusz or Stephane could find interesting to develop this kind of idea inside
       the software.
      All the best !
      Julio Herrlein
    • By JulioHerrlein
      This caused a hanging (not responding) crash. I don´t know why...
      (setf padrao '(7 -1 -5 4 -3 2 12 -16)) (setf pitches (gen-sieve '(c4 e6) padrao :type :pitch))  
      (setf padrao '(7 -1 -5 4 -3 2 12 -15)) (setf pitches (gen-sieve '(c4 e6) padrao :type :pitch))  
    • 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.)
  • Create New...