Jump to content

Opusmodus 1.1.17889


opmo

Recommended Posts

CHORD-INVERSION now with correct octave rotation.

 

chord-inversion n chord &key list root

 

[Function]

 

Arguments and Values:

 

n                inversion (rotation) number.

chord            a chord.

list            rotation in a sequence.

root            root chord and inversions together.

 

Description:

 

The function CHORD-INVERSION will generate all the inversions (rotations) of a chord up to and including N. For example, the first inversion of C major will give us:

 

(chord-inversion 1 'c4e4g4)

=> e4g4c5

 

(chord-inversion -1 'c4e4g4)

=> g3c4e4

 

Root position and 1st inversion together.

 

(chord-inversion 1 'c4e4g4 :root t)

=> (c4e4g4 e4g4c5)

 

However, requesting the second inversion will give us both the first and second, and so on. Use the LISP primitive REVERSE to place the 2nd inversion before the first.

 

(chord-inversion 2 'c4e4g4 :list t)

=> (e4g4c5 g4c5e5)

 

(reverse (chord-inversion 2 'c4e4g4 :list t))

=> (g4c5e5 e4g4c5)

 

We can also rotate the chords downwards in pitch, for example the rotation of the fifth order below:

 

(chord-inversion -5 'c4e4g4 :list t)

=> (g3c4e4 e3g3c4 c3e3g3 g2c3e3 e2g2c3)

 

To get only the final rotation in a series:

 

(chord-inversion -2 'c4e4g4)

=> e3g3c4

 

Examples:

 

Generate rotations of a chord:

    

(chord-inversion 3 'c4eb4 :list t :root t)

=> (c4eb4 eb4c5 c5eb5 eb5c6)

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy