Posted to tcl by jima at Fri Apr 02 20:42:33 GMT 2021view pretty
INDEX create NOTE { do {dos reb} re {res mib} mi fa {fas solb} sol {sols lab} la {las sib} si } TBL0 create SCALE {.interval} { major {0 2 2 1 2 2 2} harmonic_major {0 2 2 1 2 1 3} natural_minor {0 2 1 2 2 1 2} melodic_minor {0 2 1 2 2 2 2} harmonic_minor {0 2 1 2 2 1 3} penta_minor {0 3 2 2 3} } TBL0 create CLAW {.degree} { triad {0 2 4} } set a [+ : {SV 5} {*}[+ : / {*}[SCALE : D.interval {*}[ SCALE : I major natural_minor penta_minor ]]]] set b [| : "SV [NOTE . .le]" {*}$a] set t [CLAW : D.degree [CLAW . I triad]] set c [Select : "C_KL $t" {*}$b] set d [Select : "C_KL [+ : {SV 4} {*}$t]" {*}$b] puts [NOTE :1 D {*}$c] puts [NOTE :1 D {*}$d] ---- {fa la do} {fa sols do} {fa las res} {do mi sol} {do res sol} {res sols do}