First Neo-Riemannian Generative Patch

Hello everyone,

I have been noodling for a couple of weeks with VCV and lurking in the discussions here helped me a lot, thanks!!

So I am interested in generative patches and looking for a smooth transition in harmoninc space I thought that Neo-Reimannian Theory (NRT) could have provide some nice movement as moving on adiacient tiles on the Tonnetz basically leads to a very smooth voice leading with basically no tonal center.

Much to my surprise, I could not find any specific module, so I implemented a first template of a module that basically just implement the three basic NRT transformation

Parallel (P) CM → Cm

Relative (R) CM → Am

Leading (L) CM → Em (Swap the root with a leading tome e.g. C → B)

The module simply outputs a chord with poly output. It starts from CM and has three trigers that will apply P,R or L transformation when activated. A reset triger let you go back to the original Chord (whch can be dialed in).

This is really minimal, my original idea was to look at random walks on the tonnetz.

In the patch I am using a trig sequencer to alternate R, P and L.

My question, before I keep reinventing the wheel (which was fun!). Is there a module that work with NRT?

Sorry for the mess in the patch, my module is the plain white one in the middle row at the right of the Count Modula Trigger Sequencer.

6 Likes

Neat idea! I am not all that familiar with the Neo-Riemann thing, but W.A. Mathieu has a similar outlook and also uses a Lattice/Tonnetz for harmonic analysis (see “Harmonic Experience” if you’re interested, really great book).

I don’t know of any modules that do this. Perhaps one exists but if so I haven’t seen it. Cool!

Riemann from Southpole was available for VCV Rack 1. Southpole has not been officially migrated to VCV Rack 2

Here it is in action

2 Likes

I have a Eurorack module that does tonnetz, from Noise Engineering. They discontinued it, but maybe it’ll serve as inspiration:

I have to say, after exploring with that module for really quite a while, I can see why they discontinued selling these
 It’s really something for music theory geeks. Personally I felt it was hard to make sequences that don’t sound ‘cheesy’ for lack of a better word.. the Tonnetz really limits you by being what it is.

Would be cool to be able to play around with Tonnetz patches in VCV, so yes please develop it! :slight_smile:

Thanks a lot! I did found this module before but this time I went to look for what the hardware module was doing and indeed it is incredibly similar to my design!

So, if I may, what was the difficulty in creating good sequences of chords? Foe the moment I am using a trigger sequencer as first attempt that it does simply alternate P R L moves. Due to the toroidal structure of the space this does make you explore a large harmonic space and the transition sounds smooth to me.

The real difficulty I am having is finding some notes that plays well on top of the harmonic background since you have no tonal center, I have been struggling with more then notes arpegios on the notes of the chords or of the last two chords


thanks I did found this as well, and the code is open source. I will have a better look for inspiration. It appears that it has been not mantained for some years


“The real difficulty I am having is finding some notes that plays well on top of the harmonic background since you have no tonal center,” Yes, that’s the difficulty! :slight_smile:

I think you are discovering for yourself the weirdness of the tonnetz scale, which is very cool. To me this is the really fun part of modular, just digging in and trying crazy stuff.

Choose whichever one of these scales fits the chord type and you should be good I think:

So, for a major chord pick the first one and for a minor chord, pick the other.

Sidenote, I know some people (Helmholz if I recall?) draw the Tonnetz/Lattice “upside down” from these ones, so the major chords triangles point down instead of up. The places I learned from do it this way, if you’re used to the other one I’m sorry about any confusion.

Anyway, the point is to center a diatonic scale on each triad you move to. This should give fairly “normal” sounding melodic material over each chord.

Since you’re working in 12-tone equal temperament here (I think?) you also get the probably desired result that the scale effectively doesn’t change for the relative transformation. The scale does shift on the Tonnetz, and In Just Tuning one of the scale degrees would shift by a comma. But that difference is removed by the 12-tet compromise so the scale stays the same.

The other transformations do alter the scale. For parallel, that is expected, the major scale turns minor just like the chord does. For Leading, one scale degree changes: the fourth degree becomes augmented.

1 Like

thanks a lot for your replay
 the tonnetz I have in mind point toward the right (major) and left (minor)
 yet another orientation :laughing:

so basically what you have ionian (major) and aeolian (minor). this make sense
I can pass the root and pick the notes out of that.

At the moment what I was trying to do is to use a polyphonic S&H and shift register that keeps in mind the current chords and the previous one and then I can sample notes from the two chords the results is nice with a bit of an off note here and there.

I am thinking to implement now some composite move that are typicla on tonnetz and that can bring more tonal movements.

2 Likes

Ha, don’t think I’ve ever seen a sideways lattice. I suppose any orientation makes as much sense as any other. :slight_smile:

Right, if you remember the last chord you can indeed use that info to try to keep things a bit more “in”. My intuition would be that simply shifting the scale along with each chord change would be the most direct path to the “no tonal center” experience. But hard to say how important that is.

Anyway, cool project. Best of luck with it!

I have studied this stuff in film music composition school, and I was very glad when we had Southpole Riemann available in VCV Rack, I remember I have mapped some parameters to a controller and had a lot of fun!

I don’t remember all the names given to the functions, but the affitinites of thirds and so on have been written on my mind :nerd_face:

Any good recommendations for where you can read an overview of the system? Like I said, I’m not so familiar with it. W.A. Mathieu talks about “matchstick harmony” (among many other things) in Harmonic Experience, which seems to be a very similar approach. Would be interested to get a grasp on what the differences are.

feel free to start here

The first time I heard about the tonnetz was from this friend of mine, a “matemusician”. Amazing guy. He composes pop songs using the Tonnetz. He has a lot beutiful conferences but most of them in french I am afraid


2 Likes

This discussion has lifted part of the veil on a truly fascinating world that I never suspected existed. Many thanks to all the contributors.

Ah, I was a bit unclear sorry. I am very much familiar with the Lattice in general, I use it as a compositional tool all the time in the context of Just-Tuned music. It’s the neo-Riemannian thing I was asking about.

Ah, but I see that wikipedia article links to the one I need. Alright, thanks!

1 Like

Oh wow, you should totally check out the new module that Bloodbat just dropped. :slight_smile:

3 Likes

Ahh fantastico news! I will check this out immediately it looks like the old module that was not ported to vcv 1.

My time is limited and I have to use it also to learn modular and vcv!

It makes me very happy that I had a nice intuition I will probably keep playing with my custom module for the my self.

And I take the chance to thank you for your collection! An ising model inspired module was one of my first ideas


1 Like

I still think you should make your version as it seems quite different from Beleth in operation.

I’d also be interested to see what you’d do with an Ising inspired design. :slight_smile: