home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / hard.hdv / HARD / FORTH / SOURCE / STYLINGS.WRD < prev   
Encoding:
Text File  |  1994-03-01  |  2.4 KB  |  102 lines  |  [04] ASCII Text (0x0000)

  1. \ PIANO STYLINGS
  2. \
  3. \ EXAMPLE:
  4. \
  5. \  HN  4 OCT C MELODY   F MAJ7 G BASS LOW   CHORD
  6.  
  7.     
  8. \ INTERVALS USED FOR CONSTRUCTING CHORDS:
  9.  
  10. 0 CONSTANT ROOT
  11. 1 CONSTANT +ROOT    1 CONSTANT -9TH
  12. 2 CONSTANT 9TH
  13. 3 CONSTANT +9TH     3 CONSTANT -3RD
  14. 4 CONSTANT 3RD
  15. 5 CONSTANT 4TH      5 CONSTANT 11TH
  16. 6 CONSTANT +4TH     6 CONSTANT -5TH    6 CONSTANT +11TH
  17. 7 CONSTANT 5TH
  18. 8 CONSTANT +5TH     8 CONSTANT -13TH
  19. 9 CONSTANT 6TH      9 CONSTANT 13TH
  20. 10 CONSTANT -7TH   10 CONSTANT +13TH
  21. 11 CONSTANT 7TH
  22.  
  23. \ =====================================
  24.  
  25. 5 PARAMETERS CHORDARRAY
  26. 0 TO 0 CHORDARRAY        \ BASS NOTE
  27. 0 TO 1 CHORDARRAY
  28. 0 TO 2 CHORDARRAY
  29. 0 TO 3 CHORDARRAY
  30. 0 TO 4 CHORDARRAY
  31.  
  32.  
  33. : BASS ( NOTE# -- )
  34.    12 MOD                 \ EXTRACT NOTE VALUE 0-11
  35.    36 +                   \ PUT IN LOW REGISTER
  36.    DUP 41 < IF 12 + THEN  \ BUT MAKE RANGE F-E
  37.    TO 0 CHORDARRAY
  38.  
  39. : LOW  0 CHORDARRAY 12 - TO 0 CHORDARRAY ;
  40.  
  41. : HIGH 0 CHORDARRAY 12 + TO 0 CHORDARRAY ;
  42.  
  43.  
  44. : QUALITY ( N1 N2 N3 N4 -- ) ( KEY -- )       
  45. CREATE C, C, C, C, DOES> 
  46. OVER BASS
  47. SWAP 12 MOD SWAP
  48. OVER OVER     C@ +  12 MOD  TO 1 CHORDARRAY 
  49. OVER OVER 1+  C@ +  12 MOD  TO 2 CHORDARRAY
  50. OVER OVER 2 + C@ +  12 MOD  TO 3 CHORDARRAY
  51.           3 + C@ +  12 MOD  TO 4 CHORDARRAY ;                                          
  52. \ =====================================
  53.  
  54. ROOT 3RD  5TH  ROOT  QUALITY MAJ 
  55. ROOT -3RD 5TH  ROOT  QUALITY MIN
  56. ROOT 3RD  +5TH ROOT  QUALITY AUG
  57. ROOT -3RD -5TH ROOT  QUALITY DIM
  58. ROOT 4TH  5TH  ROOT  QUALITY SUS4
  59.  
  60. ROOT 3RD  5TH  6TH   QUALITY MAJ6
  61. ROOT -3RD 5TH  6TH   QUALITY MIN6
  62.  
  63. ROOT 3RD  5TH  7TH   QUALITY MAJ7
  64. ROOT 3RD  5TH  -7TH  QUALITY DOM7
  65. ROOT -3RD 5TH  -7TH  QUALITY MIN7
  66. ROOT -3RD -5TH -7TH  QUALITY HALFDIM
  67. ROOT -3RD -5TH 6TH   QUALITY DIM7
  68. ROOT -3RD 5TH  7TH   QUALITY MINMAJ7
  69.  
  70. 3RD  5TH  7TH  9TH   QUALITY MAJ9
  71. 3RD  5TH  -7TH 9TH   QUALITY DOM9
  72. -3RD 5TH  -7TH 9TH   QUALITY MIN9
  73.  
  74. 5TH  -7TH 9TH  11TH  QUALITY DOM11
  75. 3RD  -7TH 9TH  +11TH QUALITY AUG11
  76. -3RD -7TH 9TH  11TH  QUALITY MIN11
  77.  
  78. -7TH 9TH  3RD  13TH  QUALITY DOM13
  79.  
  80. \ ===================================
  81.  
  82. 0 PARAMETER MEL-NOTE
  83.   
  84. : MELODY  ( NOTE# -- ) TO MEL-NOTE ;
  85.    
  86. : ADJUST-NOTE ( CHORDNOTE -- POSITIONED UNDER MELODY NOTE)
  87.     DUP MEL-NOTE 12 MOD > IF 12 - THEN
  88.     MEL-NOTE 12 / 12 * + 
  89. ;
  90.  
  91. : CHORD
  92.    MEL-NOTE                   
  93.    4 CHORDARRAY ADJUST-NOTE  
  94.    3 CHORDARRAY ADJUST-NOTE   
  95.    2 CHORDARRAY ADJUST-NOTE   
  96.    1 CHORDARRAY ADJUST-NOTE   
  97.    0 CHORDARRAY               
  98.  
  99.    6 CD
  100. ;
  101.