Jump to content
Sign in to follow this  
torstenanders

tonality-map: controlling in which octave tones occur

Recommended Posts

I like how the function tonality-map allows specifying some input harmony (called tonality) and raw music, where the "raw" music is then quasi-quantised into the given harmony. 

 

However, I would like to control in which octaves specific tones are allowed to occur. tonality-map allows specifying an underlying harmony that ranges over multiple octaves, but it seems that internally only octave-less pitch classes are used, and any tone in the harmony can occur in any octave in the result. By contrast, in the spectral tradition of music thinking, you change the underlying spectrum if you scramble in which octaves pitches occur. For example, if you have a spectrum or chord that approximates the overtone series, then that spectrum sounds rather consonant, regardless how far up in the overtone series you allow tones to be included. However, if you then randomly octave-transpose the pitches of this spectrum/chord, then it can become much more dissonant, without changing any pitch classes.

 

To be more specific here is a dummy example with simple traditional chords where tones are distributed across octaves in a certain way. 

 

(tonality-map 
 ;; underlying harmony or spectra
 '((c4g4e5b5d6) (g3d4b5f5a4))
 ;; input music
 '((h c4f5 cs4fs5) (d4g5 cs4gs5) (eb4as5 f4a5) (e4gs5 c4gs5))
 ;; harmonic rhythm
 :time '(w w w_w))
=> ((h c4e5 c4g5) (h a3d5 g3d5) (h e4b5 e4b5) (h e4g5 c4g5))

 

As you can see, the tone G in the first tonality occurs only in octave 4, but in the result, in the second chord of the first bar (still following the first tonality) we have a g5 instead. Now, you might feel that the g5 does not musically do any harm, but in the second tonality, there is an A only in octave 6, while in the function output in the related third chord the A occurs three octaves lower in octave 3, where it greatly increases the dissonance degree of this chord/scale. 

 

So, is there a way to restrict the octaves of tones in the result to be restricted to the octaves of these tones in the respective tonalities? Alternatively, is there another function that complements tonality-map, where I can force some "raw" music to follow some underlying harmony with a given harmonic rhythm, and where the octaves of the resulting pitches can be restricted?

 

Thank you! 

 

Best,

Torsten

Share this post


Link to post
Share on other sites

You can try harmonic-path function.

 

But i agree and would like to define larger than one octave tonality for tonality-map.

 

:map '(step) could be a partial solution, but i'm always searching for a tonality mapping that preserve the octave map.

 

the spectral way is important for me and i would like to use pitch-fields like Kaja Saariaho 😉

 

 

S.

Share this post


Link to post
Share on other sites

I assume internally of tonality-map there is a comparison of pitch classes (modulus 12 of pitches) deduced from the input "raw" music with the input pitch classes of the underlying harmony/spectra (called tonalities here). All that would be needed technically is to instead allow for a comparison among pitches or MIDI note numbers instead (i.e. skipping the modulus 12 calculation). This behaviour could be the default or controlled with a keyword argument to tonality-map.

 

Best,

Torsten

 

Share this post


Link to post
Share on other sites

A new spectra map is added to TONALITY-MAP. - ver. 1.2.23287

 

(tonality-map
'((c4g4e5b5d6 :closest up :map spectra)
   (g3d4b5f5a4 :closest up :map spectra))
'((h c4f5 cs4fs5) (h d4g5 cs4gs5) (h eb4as5 f4a5) (h e4gs5 c4gs5)))
=> ((h c4e5 c4e5) (h d4f5 d4b5) (h c4b5 g4b5) (h d4b5 d4b5))

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×