Jump to content

Doubt about representing a scale

Recommended Posts


When I use a function such as "harmonic-progression" where I have to specify a scale, it seems natural to associate the root with the scale description. For example, '(c4 major) or '(a3 lydian) seems correct to me. But what is allowed is this: '(c major) and '(a minor). Why is the former representation (with the actual root octave) not allowed? I see that the function "harmonic-progression" allows you to mention the root as an argument, but is it not more natural to bind it to the scale itself?




Link to comment
Share on other sites

1.1.17992 fixed the bug found in the HARMONIC-PROGRESSION.



(harmonic-progression '(0 3 5 4) '((c4 major) (c3 lydian)))
=> ((c4e4g4 f4a4c5 a4c5e5 g4b4d5)
    (c3e3g3 fs3a3c4 a3c4e4 g3b3d4))

(harmonic-progression '((0 3 5 4) (4 5 3 4)) '((c4 major) (c3 lydian)))
=> ((c4e4g4 f4a4c5 a4c5e5 g4b4d5)
    (g3b3d4 a3c4e4 fs3a3c4 g3b3d4))

(harmonic-progression '((1 3 4 2))
                      '((cb3 messiaen-mode6 :rotate 1)
                        (b3 messiaen-mode6 :rotate 4)
                        (bb3 messiaen-mode4)))
=> ((eb3f3a3 f3a3b3 g3bb3cs4 e3g3bb3)
    (g4bb4cs5 bb4cs5e5 b4eb5f5 a4b4eb5)
    (b3eb4f4 eb4f4a4 e4fs4bb4 c4e4fs4))

(setf partials
       (library 'tbn-cs3-frames 'partials nil :random 4)))

(harmonic-progression '(1 4 5 1 3 4 2 4 3) partials
                      :size '((3 4) (3 5))
                      :root '(-6 -2 3 -3 2 0 3 -2))
=> ((b3gs4g5 f5cs6e6gs6 e6g6b6 d4b4bb5cs6 e5eb6fs6 g5eb6fs6bb6 c5bb5fs6 f5cs6e6gs6 gs4g5bb5)
    (b3gs4e5 fs5d6a6cs7bb4 cs6a6e7 d4b4g5eb6bb6 e5c6gs6 gs5e6b6eb7c5 c5b5g6 fs5d6a6cs7bb4 gs4e5c6)
    (b3bb4g5 f5c6fs6cs7 e6a6cs7 d4cs5bb5eb6 fs5eb6gs6 g5d6gs6eb7 c5bb5f6 f5c6fs6cs7 bb4g5c6)
    (b3d5f5 gs5b5g6cs7bb4 d6g6f7 d4f5gs5cs6b6 bb5cs6fs6 bb5cs6a6eb7c5 bb4cs6e6 gs5b5g6cs7bb4 d5f5bb5))

(harmonic-progression '(1 4 5 1 3 4 2 4 3) partials
                      :size '((3 4) (3 5))
                      :root '((-6 -2 3) (-3 2 0) (3 -2))
                      :relative '(c2 c3 c4 c5 c6))
=> ((b1g3gs4 e2cs3gs4f6 b1g3e6 gs1bb4b5g6 d1c5b5 cs1bb5fs6a6 cs1eb6a6 e6f6gs6cs7 e6g6f7)
    (d3g3b4 bb2cs3d5f5fs6 cs3bb4fs5 bb2g4d5eb5b6 e2gs4c5 eb2e4gs4b4c7 fs2cs4f4 f2cs4d4bb4fs7 fs2bb3d5)
    (g1gs2e4 cs1c3fs4f6 cs4a4e6 e4b4d5eb6 g4e5a6 f5c6fs6cs7 f5bb5c6 c5cs6f6fs7 e5g6a6)
    (f2d3b5 g2gs3bb4b5cs6 f2g4d6 d2f4gs5bb5b5 d2fs5a5 e2fs5c6cs6eb6 e5cs6g6 cs5bb5b5g6gs6 b5d6g6))


Link to comment
Share on other sites

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