Rangarajan Posted May 9, 2016 Share Posted May 9, 2016 it is common to represent chord degrees starting from 1, not 0. For instance, a valid chord progression degree sequence is '(1 2 5 6 3 5 6 1). In such cases, in order to get the corresponding chords, the function harmonic-progression is quite useful. However, this function assumes the chord degrees to be zero-based, so we have to write like this: (harmonic-progression (integer-transpose -1 '(1 2 5 6 3 5 6 1)) '(c4 major)) For example, see SB's reply in: I have also been using it like this in some of my code. Nothing wrong with this, but since this is likely to be a frequently occurring pattern, I feel it might be better to include an optional keyword argument to the function to mention the base to use: (harmonic-progression '(1 2 5 6 3 5 6 1) '(c4 major) :base 1) Or, of course, we can change the current behaviour to be 1-based instead of 0-based (if it doesn't affect existing code). Regards, Rangarajan Quote Link to comment Share on other sites More sharing options...
Stephane Boussuge Posted May 9, 2016 Share Posted May 9, 2016 Hi, i think it is a good idea. SB. Quote Link to comment Share on other sites More sharing options...
opmo Posted May 9, 2016 Share Posted May 9, 2016 Yes, for chords we should use base 1. For intervals (12 tone) we use base-0. I will make the change for this and all chord functions. Quote Link to comment Share on other sites More sharing options...
opmo Posted November 22, 2016 Share Posted November 22, 2016 Opusmodus 1.2.21003 (harmonic-progression '(0 3 4 4) '(c major)) => (c4e4g4 f4a4c5 g4b4d5 g4b4d5) (harmonic-progression '(1 4 5 5) '(c major) :base 1) => (c4e4g4 f4a4c5 g4b4d5 g4b4d5) 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.