sg1.scm 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. (require)
  2. (export %monads
  3. %dyads
  4. %trichords
  5. %tetrachords
  6. %pentachords
  7. %hexachords
  8. %septachords
  9. %octachords
  10. %nonachords
  11. %decachords
  12. %undecachords
  13. %dodecachords
  14. %universe
  15. %universe-alist)
  16. (define %monads '((0)))
  17. (define %dyads '((0 1) (0 2) (0 3) (0 4) (0 5) (0 6)))
  18. (define %trichords '((0 1 2) (0 1 3) (0 2 3) (0 1 4)
  19. (0 3 4) (0 1 5) (0 4 5) (0 1 6)
  20. (0 5 6) (0 2 4) (0 2 5) (0 3 5)
  21. (0 2 6) (0 4 6) (0 2 7) (0 3 6)
  22. (0 3 7) (0 4 7) (0 4 8)))
  23. (define %tetrachords '((0 1 2 3) (0 1 2 4) (0 2 3 4)
  24. (0 1 3 4) (0 1 2 5) (0 3 4 5)
  25. (0 1 2 6) (0 4 5 6) (0 1 2 7)
  26. (0 1 4 5) (0 1 5 6) (0 1 6 7)
  27. (0 2 3 5) (0 1 3 5) (0 2 4 5)
  28. (0 2 3 6) (0 3 4 6) (0 1 3 6)
  29. (0 3 5 6) (0 2 3 7) (0 4 5 7)
  30. (0 1 4 6) (0 2 5 6) (0 1 5 7)
  31. (0 2 6 7) (0 3 4 7) (0 1 4 7)
  32. (0 3 6 7) (0 1 4 8) (0 3 4 8)
  33. (0 1 5 8) (0 2 4 6) (0 2 4 7)
  34. (0 3 5 7) (0 2 5 7) (0 2 4 8)
  35. (0 2 6 8) (0 3 5 8) (0 2 5 8)
  36. (0 3 6 8) (0 3 6 9) (0 1 3 7)
  37. (0 4 6 7)))
  38. (define %pentachords '((0 1 2 3 4) (0 1 2 3 5) (0 2 3 4 5)
  39. (0 1 2 4 5) (0 1 3 4 5) (0 1 2 3 6)
  40. (0 3 4 5 6) (0 1 2 3 7) (0 4 5 6 7)
  41. (0 1 2 5 6) (0 1 4 5 6) (0 1 2 6 7)
  42. (0 1 5 6 7) (0 2 3 4 6) (0 1 2 4 6)
  43. (0 2 4 5 6) (0 1 3 4 6) (0 2 3 5 6)
  44. (0 2 3 4 7) (0 3 4 5 7) (0 1 3 5 6)
  45. (0 1 2 4 8) (0 2 3 4 8) (0 1 2 5 7)
  46. (0 2 5 6 7) (0 1 2 6 8) (0 1 3 4 7)
  47. (0 3 4 6 7) (0 1 3 4 8) (0 1 4 5 7)
  48. (0 2 3 6 7) (0 1 3 6 7) (0 1 4 6 7)
  49. (0 1 5 6 8) (0 2 3 7 8) (0 1 4 5 8)
  50. (0 3 4 7 8) (0 1 4 7 8) (0 2 3 5 7)
  51. (0 2 4 5 7) (0 1 3 5 7) (0 2 4 6 7)
  52. (0 2 3 5 8) (0 3 5 6 8) (0 2 4 5 8)
  53. (0 3 4 6 8) (0 1 3 5 8) (0 3 5 7 8)
  54. (0 2 3 6 8) (0 2 5 6 8) (0 1 3 6 8)
  55. (0 2 5 7 8) (0 1 4 6 8) (0 2 4 7 8)
  56. (0 1 3 6 9) (0 2 3 6 9) (0 1 4 6 9)
  57. (0 3 5 8 9) (0 2 4 6 8) (0 2 4 6 9)
  58. (0 2 4 7 9) (0 1 2 4 7) (0 3 5 6 7)
  59. (0 3 4 5 8) (0 1 2 5 8) (0 3 6 7 8)))
  60. (define %hexachords '((0 1 2 3 4 5) (0 1 2 3 4 6) (0 2 3 4 5 6)
  61. (0 1 2 3 5 6) (0 1 3 4 5 6) (0 1 2 4 5 6)
  62. (0 1 2 3 6 7) (0 1 4 5 6 7) (0 1 2 5 6 7)
  63. (0 1 2 6 7 8) (0 2 3 4 5 7) (0 1 2 3 5 7)
  64. (0 2 4 5 6 7) (0 1 3 4 5 7) (0 2 3 4 6 7)
  65. (0 1 2 4 5 7) (0 2 3 5 6 7) (0 1 2 4 6 7)
  66. (0 1 3 5 6 7) (0 1 3 4 6 7) (0 1 3 4 5 8)
  67. (0 3 4 5 7 8) (0 1 2 4 5 8) (0 3 4 6 7 8)
  68. (0 1 4 5 6 8) (0 2 3 4 7 8) (0 1 2 4 7 8)
  69. (0 1 4 6 7 8) (0 1 2 5 7 8) (0 1 3 6 7 8)
  70. (0 1 3 4 7 8) (0 1 4 5 7 8) (0 1 4 5 8 9)
  71. (0 2 3 4 6 8) (0 2 4 5 6 8) (0 1 2 4 6 8)
  72. (0 2 4 6 7 8) (0 2 3 5 6 8) (0 1 3 4 6 8)
  73. (0 2 4 5 7 8) (0 1 3 5 6 8) (0 2 3 5 7 8)
  74. (0 1 3 5 7 8) (0 1 3 4 6 9) (0 3 5 6 8 9)
  75. (0 1 3 5 6 9) (0 2 3 6 7 9) (0 1 3 6 7 9)
  76. (0 2 3 6 8 9) (0 1 4 5 7 9) (0 2 4 5 8 9)
  77. (0 2 4 5 7 9) (0 2 3 5 7 9) (0 2 4 6 7 9)
  78. (0 1 3 5 7 9) (0 2 4 6 8 9) (0 2 4 6 8 10)
  79. (0 3 4 5 6 7) (0 1 2 3 4 7) (0 1 2 3 4 8)
  80. (0 1 2 3 7 8) (0 3 4 5 6 8) (0 2 3 4 5 8)
  81. (0 3 5 6 7 8) (0 1 2 3 5 8) (0 2 5 6 7 8)
  82. (0 1 2 3 6 8) (0 1 2 3 6 9) (0 2 3 6 7 8)
  83. (0 1 2 5 6 8) (0 3 4 7 8 9) (0 1 2 5 6 9)
  84. (0 2 3 4 6 9) (0 3 5 7 8 9) (0 1 2 4 6 9)
  85. (0 2 5 7 8 9) (0 1 2 4 7 9) (0 1 2 5 7 9)
  86. (0 1 3 4 7 9) (0 1 4 6 7 9)))
  87. (define %septachords '((0 1 2 3 4 5 6) (0 2 3 4 5 6 7) (0 1 2 3 4 5 7)
  88. (0 3 4 5 6 7 8) (0 1 2 3 4 5 8) (0 1 3 4 5 6 7)
  89. (0 1 2 3 4 6 7) (0 1 2 4 5 6 7) (0 1 2 3 5 6 7)
  90. (0 1 4 5 6 7 8) (0 1 2 3 4 7 8) (0 1 2 5 6 7 8)
  91. (0 1 2 3 6 7 8) (0 2 3 4 5 6 8) (0 2 4 5 6 7 8)
  92. (0 1 2 3 4 6 8) (0 2 3 4 5 6 9) (0 1 2 3 4 6 9)
  93. (0 2 3 4 5 7 8) (0 1 3 4 5 6 8) (0 1 2 3 4 7 9)
  94. (0 2 3 4 6 7 8) (0 1 2 4 5 6 8) (0 1 3 5 6 7 8)
  95. (0 1 2 3 5 7 8) (0 1 2 4 6 7 8) (0 1 3 4 5 6 9)
  96. (0 1 2 3 5 6 9) (0 1 2 4 5 6 9) (0 1 4 5 6 7 9)
  97. (0 1 4 6 7 8 9) (0 1 2 3 6 8 9) (0 1 2 3 6 7 9)
  98. (0 1 2 5 7 8 9) (0 1 2 5 6 7 9) (0 1 3 4 5 8 9)
  99. (0 1 2 4 5 8 9) (0 1 2 5 6 8 9) (0 2 4 5 6 7 9)
  100. (0 2 3 4 5 7 9) (0 2 4 6 7 8 9) (0 1 2 3 5 7 9)
  101. (0 2 3 5 6 7 9) (0 2 3 4 6 7 9) (0 1 3 4 5 7 9)
  102. (0 2 4 5 6 8 9) (0 2 4 5 7 8 9) (0 1 2 4 5 7 9)
  103. (0 1 3 5 6 7 9) (0 2 3 4 6 8 9) (0 2 3 5 7 8 9)
  104. (0 1 2 4 6 7 9) (0 1 3 5 7 8 9) (0 1 2 4 6 8 9)
  105. (0 1 3 4 6 7 9) (0 2 3 5 6 8 9) (0 1 3 5 6 8 9)
  106. (0 1 3 4 6 8 9) (0 1 2 4 6 8 10) (0 1 3 4 6 8 10)
  107. (0 1 3 5 6 8 10) (0 2 3 5 6 7 8) (0 1 2 3 5 6 8)
  108. (0 1 3 4 5 7 8) (0 1 3 4 6 7 8) (0 1 2 4 5 7 8)))
  109. (define %octachords '((0 1 2 3 4 5 6 7) (0 2 3 4 5 6 7 8) (0 1 2 3 4 5 6 8)
  110. (0 1 2 3 4 5 6 9) (0 1 3 4 5 6 7 8) (0 1 2 3 4 5 7 8)
  111. (0 1 2 4 5 6 7 8) (0 1 2 3 4 6 7 8) (0 1 2 3 5 6 7 8)
  112. (0 1 2 3 4 5 8 9) (0 1 2 3 4 7 8 9) (0 1 2 3 6 7 8 9)
  113. (0 2 3 4 5 6 7 9) (0 2 4 5 6 7 8 9) (0 1 2 3 4 5 7 9)
  114. (0 1 3 4 5 6 7 9) (0 2 3 4 5 6 8 9) (0 2 3 5 6 7 8 9)
  115. (0 1 2 3 4 6 7 9) (0 1 2 4 5 6 7 9) (0 2 3 4 5 7 8 9)
  116. (0 1 3 5 6 7 8 9) (0 1 2 3 4 6 8 9) (0 1 2 4 6 7 8 9)
  117. (0 1 2 3 5 7 8 9) (0 1 3 4 5 6 8 9) (0 1 3 4 6 7 8 9)
  118. (0 1 2 3 5 6 8 9) (0 1 3 4 5 7 8 9) (0 1 2 4 5 6 8 9)
  119. (0 1 2 4 5 7 8 9) (0 1 2 3 4 6 8 10) (0 1 2 3 5 7 9 10)
  120. (0 1 2 3 5 6 8 10) (0 1 2 3 5 7 8 10) (0 1 2 4 5 6 8 10)
  121. (0 1 2 4 6 7 8 10) (0 1 3 4 5 7 8 10) (0 1 2 4 6 7 9 10)
  122. (0 1 2 4 5 7 8 10) (0 1 3 4 6 7 9 10) (0 2 3 4 6 7 8 9)
  123. (0 1 2 3 5 6 7 9)))
  124. (define %nonachords '((0 1 2 3 4 5 6 7 8) (0 1 2 3 4 5 6 7 9) (0 2 3 4 5 6 7 8 9)
  125. (0 1 3 4 5 6 7 8 9) (0 1 2 3 4 5 6 8 9) (0 1 2 4 5 6 7 8 9)
  126. (0 1 2 3 4 5 7 8 9) (0 1 2 3 5 6 7 8 9) (0 1 2 3 4 6 7 8 9)
  127. (0 1 2 3 4 5 6 8 10) (0 1 2 3 4 5 7 9 10) (0 1 2 3 4 5 7 8 10)
  128. (0 1 2 3 4 6 8 9 10) (0 1 2 3 4 6 7 8 10) (0 1 2 3 5 6 7 8 10)
  129. (0 1 2 3 4 6 7 9 10) (0 1 2 3 5 6 8 9 10) (0 1 2 3 5 6 7 9 10)
  130. (0 1 2 4 5 6 8 9 10)))
  131. (define %decachords '((0 1 2 3 4 5 6 7 8 9)
  132. (0 1 2 3 4 5 6 7 8 10)
  133. (0 1 2 3 4 5 6 7 9 10)
  134. (0 1 2 3 4 5 6 8 9 10)
  135. (0 1 2 3 4 5 7 8 9 10)
  136. (0 1 2 3 4 6 7 8 9 10)))
  137. (define %undecachords '((0 1 2 3 4 5 6 7 8 9 10)))
  138. (define %dodecachords '((0 1 2 3 4 5 6 7 8 9 10 11)))
  139. (define %universe-wrong '(%monads
  140. %dyads
  141. %trichords
  142. %tetrachords
  143. %pentachords
  144. %hexachords
  145. %septachords
  146. %octachords
  147. %nonachords
  148. %decachords
  149. %undecachords
  150. %dodecachords))
  151. ;; (define %universe (list %monads
  152. ;; %dyads
  153. ;; %trichords
  154. ;; %tetrachords
  155. ;; %pentachords
  156. ;; %hexachords
  157. ;; %septachords
  158. ;; %octachords
  159. ;; %nonachords
  160. ;; %decachords
  161. ;; %undecachords
  162. ;; %dodecachords))
  163. (define %universe (=> %universe-wrong (.map eval)))
  164. (define %universe-alist (=> %universe-wrong
  165. (.map (lambda (sym) (cons sym (eval sym))))))