Jump to content

Suggestion: harmonic-progression function

Recommended Posts

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).




Link to post
Share on other sites
  • 6 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use Privacy Policy