torstenanders Posted April 25, 2018 Share Posted April 25, 2018 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 Stephane Boussuge 1 Quote Link to comment Share on other sites More sharing options...
Stephane Boussuge Posted April 25, 2018 Share Posted April 25, 2018 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. Quote Link to comment Share on other sites More sharing options...
torstenanders Posted April 25, 2018 Author Share Posted April 25, 2018 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 Quote Link to comment Share on other sites More sharing options...
opmo Posted April 29, 2018 Share Posted April 29, 2018 Could you give me an example of the input and output - maybe few :-) Quote Link to comment Share on other sites More sharing options...
opmo Posted April 30, 2018 Share Posted April 30, 2018 I will make some changes to the TONALITY-MAP which will allow us to use scales lager then an octave. Stephane Boussuge and AM 2 Quote Link to comment Share on other sites More sharing options...
opmo Posted May 3, 2018 Share Posted May 3, 2018 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)) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.