RST Posted June 21, 2016 Posted June 21, 2016 Greetings friends, I have a little project I am working on - to map a two-octave scale 12-tone scale. I want to be able to re-write pitches into this scale and to use the results in both harmonic and melodic contexts. However, I am finding some puzzlement! Here is a code fragment of what I am working on: (create-tonality 12-tone-2 '(0 1 3 4 7 8 10 11 14 17 18 21)) (tonality-map '(12-tone-2 :root c4 :shift t) '(c3 d3 e3 f3)) My thought is that it SHOULD result in: 0 1 3 4 - c cs ds e - as the result. Specifically: c4 cs4 ds4 e4 (or the enharmonic equivalent). But, the result is: c eb (ds) g gs !! Specifically: c3 ebb g3 gs3. Perhaps someone can help by pointing out my mistake? With thanks, Robert Quote
opmo Posted June 21, 2016 Posted June 21, 2016 The output here is correct: (create-tonality 12-tone-2 '(0 1 3 4 7 8 10 11 14 17 18 21)) (tonality-map '(12-tone-2 :root c4 :shift t) '(c3 d3 e3 f3)) => (c3 eb3 g3 gs3) I think the function you are looking for is: (integer-to-pitch '(0 1 3 4 7 8 10 11 14 17 18 21)) => (c4 cs4 eb4 e4 g4 gs4 bb4 b4 d5 f5 fs5 a5) (harmonic-path '(c4 cs4 eb4 e4 g4 gs4 bb4 b4 d5 f5 fs5 a5) '(c3 d3 e3 f3)) => (c3 cs3 eb3 e3) Quote
RST Posted June 23, 2016 Author Posted June 23, 2016 Finally, part of a solution. This tonality mapping copies the target 2-octave 12-tone collection. The important flag seems to be :fixed t, in this application. (setf nums '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21)) (setf orig (integer-to-pitch nums)) (setf map '(0 1 3 4 7 8 10 11 17 18 21)) (setf mapping (integer-to-pitch map)) (create-tonality 12T2 '(0 1 3 4 7 8 10 11 17 18 21)) (remove-duplicates (tonality-map '(12T2 :root c3 :fixed t) (integer-to-pitch nums))) Quote
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.