home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-03-01 | 2.4 KB | 102 lines | [04] ASCII Text (0x0000) |
- \ PIANO STYLINGS
- \
- \ EXAMPLE:
- \
- \ HN 4 OCT C MELODY F MAJ7 G BASS LOW CHORD
-
-
- \ INTERVALS USED FOR CONSTRUCTING CHORDS:
-
- 0 CONSTANT ROOT
- 1 CONSTANT +ROOT 1 CONSTANT -9TH
- 2 CONSTANT 9TH
- 3 CONSTANT +9TH 3 CONSTANT -3RD
- 4 CONSTANT 3RD
- 5 CONSTANT 4TH 5 CONSTANT 11TH
- 6 CONSTANT +4TH 6 CONSTANT -5TH 6 CONSTANT +11TH
- 7 CONSTANT 5TH
- 8 CONSTANT +5TH 8 CONSTANT -13TH
- 9 CONSTANT 6TH 9 CONSTANT 13TH
- 10 CONSTANT -7TH 10 CONSTANT +13TH
- 11 CONSTANT 7TH
-
- \ =====================================
-
- 5 PARAMETERS CHORDARRAY
- 0 TO 0 CHORDARRAY \ BASS NOTE
- 0 TO 1 CHORDARRAY
- 0 TO 2 CHORDARRAY
- 0 TO 3 CHORDARRAY
- 0 TO 4 CHORDARRAY
-
-
- : BASS ( NOTE# -- )
- 12 MOD \ EXTRACT NOTE VALUE 0-11
- 36 + \ PUT IN LOW REGISTER
- DUP 41 < IF 12 + THEN \ BUT MAKE RANGE F-E
- TO 0 CHORDARRAY
- ;
-
- : LOW 0 CHORDARRAY 12 - TO 0 CHORDARRAY ;
-
- : HIGH 0 CHORDARRAY 12 + TO 0 CHORDARRAY ;
-
-
- : QUALITY ( N1 N2 N3 N4 -- ) ( KEY -- )
- CREATE C, C, C, C, DOES>
- OVER BASS
- SWAP 12 MOD SWAP
- OVER OVER C@ + 12 MOD TO 1 CHORDARRAY
- OVER OVER 1+ C@ + 12 MOD TO 2 CHORDARRAY
- OVER OVER 2 + C@ + 12 MOD TO 3 CHORDARRAY
- 3 + C@ + 12 MOD TO 4 CHORDARRAY ;
- \ =====================================
-
- ROOT 3RD 5TH ROOT QUALITY MAJ
- ROOT -3RD 5TH ROOT QUALITY MIN
- ROOT 3RD +5TH ROOT QUALITY AUG
- ROOT -3RD -5TH ROOT QUALITY DIM
- ROOT 4TH 5TH ROOT QUALITY SUS4
-
- ROOT 3RD 5TH 6TH QUALITY MAJ6
- ROOT -3RD 5TH 6TH QUALITY MIN6
-
- ROOT 3RD 5TH 7TH QUALITY MAJ7
- ROOT 3RD 5TH -7TH QUALITY DOM7
- ROOT -3RD 5TH -7TH QUALITY MIN7
- ROOT -3RD -5TH -7TH QUALITY HALFDIM
- ROOT -3RD -5TH 6TH QUALITY DIM7
- ROOT -3RD 5TH 7TH QUALITY MINMAJ7
-
- 3RD 5TH 7TH 9TH QUALITY MAJ9
- 3RD 5TH -7TH 9TH QUALITY DOM9
- -3RD 5TH -7TH 9TH QUALITY MIN9
-
- 5TH -7TH 9TH 11TH QUALITY DOM11
- 3RD -7TH 9TH +11TH QUALITY AUG11
- -3RD -7TH 9TH 11TH QUALITY MIN11
-
- -7TH 9TH 3RD 13TH QUALITY DOM13
-
- \ ===================================
-
- 0 PARAMETER MEL-NOTE
-
- : MELODY ( NOTE# -- ) TO MEL-NOTE ;
-
- : ADJUST-NOTE ( CHORDNOTE -- POSITIONED UNDER MELODY NOTE)
- DUP MEL-NOTE 12 MOD > IF 12 - THEN
- MEL-NOTE 12 / 12 * +
- ;
-
- : CHORD
- MEL-NOTE
- 4 CHORDARRAY ADJUST-NOTE
- 3 CHORDARRAY ADJUST-NOTE
- 2 CHORDARRAY ADJUST-NOTE
- 1 CHORDARRAY ADJUST-NOTE
- 0 CHORDARRAY
-
- 6 CD
- ;
-