You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

226 lines
13KB

  1. 0: ;http://www.spinsemi.com/get_spn.php?spn=dance_ir_h_l.spn&prodnum=SPN1001
  2. 0: ;dance patchfor disco mixers:
  3. 0: ;pot 1 = Reverb to infinite RT, scales in and out levels
  4. 0: ;pot 2 = High pass filter (2 pole peaking, 8 ocatves)
  5. 0: ;pot 3 = Low pass filter (2 pole peaking, 8 ocatves)
  6. 0:
  7. 0: ;filters are great for actively modifying program material;
  8. 0: ;reveb can capture tonality for filter manipulation.
  9. 0: ;beware, infinite reverb turns off input!
  10. 0:
  11. 0: EQU KRT 32 equ krt reg0
  12. 0: EQU KIN 33 equ kin reg1
  13. 0: EQU KMIX 34 equ kmix reg2
  14. 0: EQU HPAL 35 equ hpal reg3
  15. 0: EQU HPBL 36 equ hpbl reg4
  16. 0: EQU LPAL 37 equ lpal reg5
  17. 0: EQU LPBL 38 equ lpbl reg6
  18. 0: EQU HPAR 39 equ hpar reg7
  19. 0: EQU HPBR 40 equ hpbr reg8
  20. 0: EQU LPAR 41 equ lpar reg9
  21. 0: EQU LPBR 42 equ lpbr reg10
  22. 0: EQU KFH 43 equ kfh reg11
  23. 0: EQU KFL 44 equ kfl reg12
  24. 0: EQU TEMP 45 equ temp reg13
  25. 0: EQU RMIXL 46 equ rmixl reg14
  26. 0: EQU RMIXR 47 equ rmixr reg15
  27. 0: EQU HPOUTL 48 equ hpoutl reg16
  28. 0: EQU HPOUTR 49 equ hpoutr reg17
  29. 0: EQU HBYP 50 equ hbyp reg18
  30. 0: EQU LBYP 51 equ lbyp reg19
  31. 0:
  32. 0: MEM 0 202 mem ap1 202
  33. 0: MEM 203 541 mem ap2 541
  34. 0: MEM 745 1157 mem ap3 1157
  35. 0: MEM 1903 1903 mem ap4 1903
  36. 0:
  37. 0: MEM 3807 2204 mem dap1a 2204
  38. 0: MEM 6012 3301 mem dap1b 3301
  39. 0: MEM 9314 4456 mem del1 4456
  40. 0: MEM 13771 3532 mem dap2a 3532
  41. 0: MEM 17304 3201 mem dap2b 3201
  42. 0: MEM 20506 6325 mem del2 6325
  43. 0:
  44. 0: EQU KAP 5033165 equ kap 0.6
  45. 0: EQU KQL -1677721 equ kql -0.2
  46. 0: EQU KQH -1677721 equ kqh -0.2
  47. 0:
  48. 0: ;prepare pots to affect control variables:
  49. 0: ;pot0 controls reverb time, but also affects input drive level;
  50. 0: ;reveb time is moderate up to about mid position, then increases
  51. 0: ;to infinity (or nearly) at full position.
  52. 0: ;input drive is constant, but decreases at the full pot0 position.
  53. 0: ;output mix is varied over the first half of pot0, then remains
  54. 0: ;high to the end of pot0's range.
  55. 0:
  56. 1: RDAX 16 8384256 rdax pot0,1.999 ;get pot0, clip the upper half of pot0's range.
  57. 2: WRAX 34 0 wrax kmix,0 ;write the output mix value
  58. 0:
  59. 3: RDAX 16 -4194304 rdax pot0,-1 ;get pot0 again, 0 to -1
  60. 4: SOF 4194304 8380160 sof 1,0.999 ;now +1 to 0
  61. 5: SOF 8384256 0 sof 1.999,0 ;now +1 until midpint, then decreases to 0
  62. 6: WRAX 33 0 wrax kin,0 ;write the input attenuator value
  63. 0:
  64. 7: RDAX 16 4194304 rdax pot0,1 ;get pot0 again
  65. 8: WRAX 32 4194304 wrax krt,1 ;save in krt, keep in ACC
  66. 9: SOF 4194304 -4194304 sof 1,-0.5 ;subtract 1/2
  67. 10: SKP 2 2 skp gez,2 ;skp if pot is in upper half of range
  68. 11: SOF 0 4194304 sof 0,0.5 ;load accumulator with +0.5
  69. 12: WRAX 32 0 wrax krt,0 ;overwrite if pot is in lower half of range
  70. 0:
  71. 0: ;now prepare pot1 for HP sweeping.
  72. 0: ;both frequency controls are exponential, and frequency increases
  73. 0: ;with clockwise pot rotation. Target Kf ranges are from .001 to 1.0
  74. 0:
  75. 13: CLR clr
  76. 14: RDAX 17 4194304 rdax pot1,1 ;get pot1
  77. 15: SOF 2097152 -4194304 sof 0.5,-0.5 ;ranges -0.5 to 0
  78. 16: EXP 4194304 0 exp 1,0
  79. 17: WRAX 43 0 wrax kfh,0 ;write to HP filter control
  80. 0:
  81. 18: RDAX 18 4194304 rdax pot2,1 ;get pot2
  82. 19: SOF 2097152 -4194304 sof 0.5,-0.5 ;ranges -0.5 to 0
  83. 20: EXP 4194304 0 exp 1,0
  84. 21: WRAX 44 0 wrax kfl,0 ;write to LP filter control
  85. 0:
  86. 0: ;now derive filter bypass functions (at open conditions)
  87. 0:
  88. 22: RDAX 17 -4194304 rdax pot1,-1
  89. 23: SOF 4194304 8380160 sof 1,0.999 ;ranges +1 to 0
  90. 24: WRAX 45 4194304 wrax temp,1
  91. 25: MULX 45 mulx temp
  92. 26: MULX 45 mulx temp
  93. 27: WRAX 50 0 wrax hbyp,0
  94. 0:
  95. 0:
  96. 28: RDAX 18 4194304 rdax pot2,1 ;read pot2 (LP) again
  97. 29: MULX 18 mulx pot2
  98. 30: MULX 18 mulx pot2
  99. 31: MULX 18 mulx pot2
  100. 32: WRAX 51 0 wrax lbyp,0
  101. 0:
  102. 0: ;now do reverb, simple, twin loop, mono drive:
  103. 0:
  104. 33: RDAX 20 1048576 rdax adcl,0.25
  105. 34: RDAX 21 1048576 rdax adcr,0.25 ;get inputs, leave headroom
  106. 35: MULX 33 mulx kin ;scale by input attenuator
  107. 36: RDA 202 2514944 rda ap1#,kap ;4 all passes:
  108. 37: WRAP 0 -2523136 wrap ap1,-kap
  109. 38: RDA 744 2514944 rda ap2#,kap
  110. 39: WRAP 203 -2523136 wrap ap2,-kap
  111. 40: RDA 1902 2514944 rda ap3#,kap
  112. 41: WRAP 745 -2523136 wrap ap3,-kap
  113. 42: RDA 3806 2514944 rda ap4#,kap
  114. 43: WRAP 1903 -2523136 wrap ap4,-kap
  115. 44: WRAX 45 0 wrax temp,0 ;write ap output to temp reg
  116. 0:
  117. 45: RDA 26831 4194304 rda del2#,1
  118. 46: MULX 32 mulx krt
  119. 47: RDAX 45 4194304 rdax temp,1
  120. 48: RDA 6011 2514944 rda dap1a#,kap
  121. 49: WRAP 3807 -2523136 wrap dap1a,-kap
  122. 50: RDA 9313 2514944 rda dap1b#,kap
  123. 51: WRAP 6012 -2523136 wrap dap1b,-kap
  124. 52: WRA 9314 0 wra del1,0
  125. 53: RDA 13770 4194304 rda del1#,1
  126. 54: MULX 32 mulx krt
  127. 55: RDAX 45 4194304 rdax temp,1
  128. 56: RDA 17303 2514944 rda dap2a#,kap
  129. 57: WRAP 13771 -2523136 wrap dap2a,-kap
  130. 58: RDA 20505 2514944 rda dap2b#,kap
  131. 59: WRAP 17304 -2523136 wrap dap2b,-kap
  132. 60: WRA 20506 0 wra del2,0
  133. 0:
  134. 0: ;now mix the inputs with the reverb:
  135. 0:
  136. 61: RDAX 20 -4194304 rdax adcl,-1
  137. 62: RDA 9314 6291456 rda del1,1.5
  138. 63: MULX 16 mulx pot0
  139. 64: RDAX 20 4194304 rdax adcl,1
  140. 65: WRAX 46 0 wrax rmixl,0
  141. 0:
  142. 66: RDAX 21 -4194304 rdax adcr,-1
  143. 67: RDA 20506 6291456 rda del2,1.5
  144. 68: MULX 16 mulx pot0
  145. 69: RDAX 21 4194304 rdax adcr,1
  146. 70: WRAX 47 0 wrax rmixr,0
  147. 0:
  148. 0: ;Reverb outputs are at rmixl and rmixr.
  149. 0:
  150. 0: ;now do two filters, start with the high pass, stereo.
  151. 0: ;use the reveb mix for inputs, cascade the filter banks.
  152. 0:
  153. 71: RDAX 35 4194304 rdax hpal,1
  154. 72: MULX 43 mulx kfh
  155. 73: RDAX 36 4194304 rdax hpbl,1
  156. 74: WRAX 36 -4194304 wrax hpbl,-1
  157. 75: RDAX 35 -838912 rdax hpal,kqh
  158. 76: RDAX 46 4194304 rdax rmixl,1
  159. 77: WRAX 48 4194304 wrax hpoutl,1 ;HP output
  160. 78: MULX 43 mulx kfh
  161. 79: RDAX 35 4194304 rdax hpal,1
  162. 80: WRAX 35 0 wrax hpal,0
  163. 0:
  164. 81: RDAX 39 4194304 rdax hpar,1
  165. 82: MULX 43 mulx kfh
  166. 83: RDAX 40 4194304 rdax hpbr,1
  167. 84: WRAX 40 -4194304 wrax hpbr,-1
  168. 85: RDAX 39 -838912 rdax hpar,kqh
  169. 86: RDAX 47 4194304 rdax rmixr,1
  170. 87: WRAX 49 4194304 wrax hpoutr,1 ;HP output
  171. 88: MULX 43 mulx kfh
  172. 89: RDAX 39 4194304 rdax hpar,1
  173. 90: WRAX 39 0 wrax hpar,0
  174. 0:
  175. 0: ;bypass if pot1 is fully counterclockwise:
  176. 0:
  177. 91: RDAX 48 -4194304 rdax hpoutl,-1
  178. 92: RDAX 46 4194304 rdax rmixl,1
  179. 93: MULX 50 mulx hbyp
  180. 94: RDAX 48 4194304 rdax hpoutl,1
  181. 95: WRAX 48 0 wrax hpoutl,0
  182. 0:
  183. 96: RDAX 49 -4194304 rdax hpoutr,-1
  184. 97: RDAX 47 4194304 rdax rmixr,1
  185. 98: MULX 50 mulx hbyp
  186. 99: RDAX 49 4194304 rdax hpoutr,1
  187. 100:WRAX 49 0 wrax hpoutr,0
  188. 0:
  189. 0: ;now do cascaded low pass:
  190. 0:
  191. 101:RDAX 37 4194304 rdax lpal,1
  192. 102:MULX 44 mulx kfl
  193. 103:RDAX 38 4194304 rdax lpbl,1
  194. 104:WRAX 38 -4194304 wrax lpbl,-1
  195. 105:RDAX 37 -838912 rdax lpal,kql
  196. 106:RDAX 48 4194304 rdax hpoutl,1
  197. 107:MULX 44 mulx kfl
  198. 108:RDAX 37 4194304 rdax lpal,1
  199. 109:WRAX 37 0 wrax lpal,0
  200. 0:
  201. 110:RDAX 41 4194304 rdax lpar,1
  202. 111:MULX 44 mulx kfl
  203. 112:RDAX 42 4194304 rdax lpbr,1
  204. 113:WRAX 42 -4194304 wrax lpbr,-1
  205. 114:RDAX 41 -838912 rdax lpar,kql
  206. 115:RDAX 49 4194304 rdax hpoutr,1
  207. 116:MULX 44 mulx kfl
  208. 117:RDAX 41 4194304 rdax lpar,1
  209. 118:WRAX 41 0 wrax lpar,0
  210. 0:
  211. 119:RDAX 38 -4194304 rdax lpbl,-1
  212. 120:RDAX 48 4194304 rdax hpoutl,1
  213. 121:MULX 51 mulx lbyp
  214. 122:RDAX 38 4194304 rdax lpbl,1
  215. 123:WRAX 22 0 wrax dacl,0
  216. 0:
  217. 124:RDAX 42 -4194304 rdax lpbr,-1
  218. 125:RDAX 49 4194304 rdax hpoutr,1
  219. 126:MULX 51 mulx lbyp
  220. 127:RDAX 42 4194304 rdax lpbr,1
  221. 128:WRAX 23 0 wrax dacr,0
  222. 0:
  223. 0:
  224. 0:
  225. 0: