Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.80 KB | None | 0 0
  1. on init
  2. {Getting Essential Values Out of the Way}
  3.  
  4. set_script_title("Sard's Easy AnyTune")
  5. set_ui_height(4)
  6. message("")
  7.  
  8. declare $count
  9. declare !note_class[12]
  10. !note_class[0] := "C"
  11. !note_class[1] := "Db"
  12. !note_class[2] := "D"
  13. !note_class[3] := "Eb"
  14. !note_class[4] := "E"
  15. !note_class[5] := "F"
  16. !note_class[6] := "Gb"
  17. !note_class[7] := "G"
  18. !note_class[8] := "Ab"
  19. !note_class[9] := "A"
  20. !note_class[10] := "Bb"
  21. !note_class[11] := "B"
  22.  
  23. declare !note_names [128]
  24. $count := 0
  25. while ($count < 128)
  26. !note_names[$count] := !note_class[$count mod 12] & (($count/12)-2)
  27. inc ($count)
  28. end while
  29.  
  30. declare %preset_semi[13*12] := (...
  31. 1, 0, 1, 2, 0, 1, 0, 1, 2, 0, 1, 0, {highland bagpipes} ...
  32. 0, -1, 0, 0, -1, -1, -1, 0, 0, -1, 0, -1, {Pure } ...
  33. 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, -1, -1, {Overtone 16-32}...
  34. 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, {Pythagorean }...
  35. 0, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, {Pythagorean Middle}...
  36. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {Pythagorean Up}...
  37. 0, -1, -1, 0, 0, 0, -1, -1, -1, -1, 0, -1, {Mean Tone 1/4}...
  38. 0, 0, 0, 0, -1, 0, -1, -1, 0, -1, 0, -1, {Silbermann }...
  39. 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, {Werckmeister III}...
  40. 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, {Kirnberger III}...
  41. 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, {Neidhardt I}...
  42. 0, -1, -1, -1, -1, 0, -1, -1, -1, -1, 0, -1, {Valotti } ...
  43. 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1) {Young 1/6 pC }
  44. make_persistent (%preset_semi)
  45.  
  46. declare %preset_cent[13*12]:= (...
  47. 33, 0, 35, 20, 0, 30, 0, 36, 18, 0, 3, 0, {highland bagpipes} ...
  48. 0, 71, 4, 16, 86, 98, 69, 2, 14, 84, 18, 88, {Pure } ...
  49. 0, 5, 4, 98, 86, 71, 51, 2, 41, 6, 69, 88, {Overtone 16-32}...
  50. 0, 14, 4, 95, 8, 98, 12, 2, 16, 6, 4, 10, {Pythagorean }...
  51. 0, 90, 4, 94, 8, 98, 0, 2, 92, 6, 96, 10, {Pythagorean Middle}...
  52. 0, 14, 4, 18, 8, 22, 12, 2, 16, 6, 20, 10, {Pythagorean Up}...
  53. 0, 76, 93, 10, 14, 3, 79, 97, 73, 90, 7, 83, {Mean Tone 1/4}...
  54. 0, 8, 3, 5, 93, 2, 90, 98, 7, 95, 3, 92, {Silbermann }...
  55. 0, 90, 92, 94, 90, 98, 88, 96, 92, 88, 96, 92, {Werckmeister III}...
  56. 0, 90, 93, 94, 86, 98, 88, 97, 92, 90, 96, 88, {Kirnberger III}...
  57. 0, 94, 96, 96, 92, 98, 92, 98, 96, 94, 96, 92, {Neidhardt I}...
  58. 0, 94, 96, 98, 92, 2, 92, 98, 96, 94, 0, 90, {Valotti } ...
  59. 0, 90, 96, 94, 92, 98, 88, 98, 92, 94, 96, 92) {Young 1/6 pC }
  60. make_persistent (%preset_cent)
  61.  
  62. declare %preset_key[13] := (...
  63. 9, {highland bagpipes} ...
  64. 1, {Pure } ...
  65. 1, {Overtone 16-32} ...
  66. 1, {Pythagorean } ...
  67. 1, {Pythagorean Middle} ...
  68. 1, {Pythagorean Up} ...
  69. 1, {Mean Tone 1/4} ...
  70. 1, {Silbermann } ...
  71. 1, {Werckmeister III} ...
  72. 1, {Kirnberger III} ...
  73. 1, {Neidhardt I} ...
  74. 1, {Valotti } ...
  75. 1) {Young 1/6 pC }
  76. make_persistent (%preset_key)
  77.  
  78. declare $retune
  79.  
  80. {UI Setup}
  81.  
  82. {Key Display}
  83. declare ui_knob $key(0,11,1)
  84. make_persistent($key)
  85. set_control_help($key,"Note: Does not change any tuning, simply used to rotate the display to show the first note in the key.")
  86. set_text($key,"Key")
  87.  
  88. declare ui_label $start_note1 (2,1)
  89. declare ui_label $start_note2 (2,1)
  90. declare !notes[12]
  91. !notes[0] := " C "
  92. !notes[1] := " Db "
  93. !notes[2] := " D "
  94. !notes[3] := " Eb "
  95. !notes[4] := " E "
  96. !notes[5] := " F "
  97. !notes[6] := " Gb "
  98. !notes[7] := " G "
  99. !notes[8] := " Ab "
  100. !notes[9] := " A "
  101. !notes[10] := " Bb "
  102. !notes[11] := " B "
  103. _read_persistent_var($key)
  104. set_text ($start_note1,!notes[(0+$key) mod 12]&""&...
  105. !notes[(1+$key) mod 12]&""&...
  106. !notes[(2+$key) mod 12]&""&...
  107. !notes[(3+$key) mod 12]&""&...
  108. !notes[(4+$key) mod 12]&""&...
  109. !notes[(5+$key) mod 12]&""&...
  110. !notes[(6+$key) mod 12]&""&...
  111. !notes[(7+$key) mod 12]&""&...
  112. !notes[(8+$key) mod 12]&""&...
  113. !notes[(9+$key) mod 12]&""&...
  114. !notes[(10+$key) mod 12]&""&...
  115. !notes[(11+$key) mod 12])
  116. set_text ($start_note2,!notes[(0+$key) mod 12]&""&...
  117. !notes[(1+$key) mod 12]&""&...
  118. !notes[(2+$key) mod 12]&""&...
  119. !notes[(3+$key) mod 12]&""&...
  120. !notes[(4+$key) mod 12]&""&...
  121. !notes[(5+$key) mod 12]&""&...
  122. !notes[(6+$key) mod 12]&""&...
  123. !notes[(7+$key) mod 12]&""&...
  124. !notes[(8+$key) mod 12]&""&...
  125. !notes[(9+$key) mod 12]&""&...
  126. !notes[(10+$key) mod 12]&""&...
  127. !notes[(11+$key) mod 12])
  128. set_knob_label($key,!notes[(0+$key) mod 12])
  129.  
  130. {Tuning Tables}
  131. declare ui_table %tuning_semi[12](2,6,-4)
  132. make_persistent (%tuning_semi)
  133.  
  134. declare ui_table %tuning_cent[12](2,6,100)
  135. make_persistent (%tuning_cent)
  136.  
  137. declare ui_label $table_guide (4,1)
  138. set_text ($table_guide,"The left table is for semitones (up or down 4), the right for cents (0-100).")
  139.  
  140. {Presets Menu}
  141. declare $a
  142. declare ui_menu $presets
  143. add_menu_item($presets,"Select Preset",100)
  144. add_menu_item($presets,"",99)
  145. add_menu_item($presets,"Instruments",98)
  146. add_menu_item($presets," Highland Bagpipes",1)
  147. add_menu_item($presets,"",99)
  148. add_menu_item($presets,"Temperaments",98)
  149. add_menu_item($presets," Pure",2)
  150. add_menu_item($presets," Overtone 13-32",3)
  151. add_menu_item($presets," Pythagorean",4)
  152. add_menu_item($presets," Pythagorean Middle",5)
  153. add_menu_item($presets," Pythagorean Up",6)
  154. add_menu_item($presets," Mean Tone 1/4",7)
  155. add_menu_item($presets," Silbermann",8)
  156. add_menu_item($presets," Werckmeister III",9)
  157. add_menu_item($presets," Kirnberger III",10)
  158. add_menu_item($presets," Neidhardt I",11)
  159. add_menu_item($presets," Valotti",12)
  160. add_menu_item($presets," Young 1/6 pC",13)
  161. set_control_help ($presets,"Preset tuning adjustmens for uneven tempered instruments and other ways of tuning")
  162.  
  163. {Layout}
  164. move_control ($key, 1,3)
  165. move_control ($presets, 1,6)
  166. move_control ($start_note1, 2,1)
  167. move_control ($start_note2, 4,1)
  168. move_control (%tuning_semi, 2,1)
  169. move_control (%tuning_cent, 4,1)
  170. move_control ($table_guide, 2,8)
  171.  
  172. set_control_par (get_ui_id($table_guide),$CONTROL_PAR_TEXT_ALIGNMENT,1)
  173.  
  174. end on
  175.  
  176. {Functionality and Controling the Interface}
  177.  
  178. function Key
  179. set_text ($start_note1,!notes[(0+$key) mod 12]&""&...
  180. !notes[(1+$key) mod 12]&""&...
  181. !notes[(2+$key) mod 12]&""&...
  182. !notes[(3+$key) mod 12]&""&...
  183. !notes[(4+$key) mod 12]&""&...
  184. !notes[(5+$key) mod 12]&""&...
  185. !notes[(6+$key) mod 12]&""&...
  186. !notes[(7+$key) mod 12]&""&...
  187. !notes[(8+$key) mod 12]&""&...
  188. !notes[(9+$key) mod 12]&""&...
  189. !notes[(10+$key) mod 12]&""&...
  190. !notes[(11+$key) mod 12])
  191. set_text ($start_note2,!notes[(0+$key) mod 12]&""&...
  192. !notes[(1+$key) mod 12]&""&...
  193. !notes[(2+$key) mod 12]&""&...
  194. !notes[(3+$key) mod 12]&""&...
  195. !notes[(4+$key) mod 12]&""&...
  196. !notes[(5+$key) mod 12]&""&...
  197. !notes[(6+$key) mod 12]&""&...
  198. !notes[(7+$key) mod 12]&""&...
  199. !notes[(8+$key) mod 12]&""&...
  200. !notes[(9+$key) mod 12]&""&...
  201. !notes[(10+$key) mod 12]&""&...
  202. !notes[(11+$key) mod 12])
  203. set_knob_label($key,!notes[(0+$key) mod 12])
  204. end function
  205.  
  206. on ui_control ($key)
  207. call Key
  208. end on
  209.  
  210. on note
  211. $retune := (%tuning_semi[($EVENT_NOTE + 12 - $key) mod 12]*100000) ...
  212. + (%tuning_cent[($EVENT_NOTE + 12 - $key) mod 12]*1000)
  213. change_tune($EVENT_ID,$retune, 0)
  214. end on
  215.  
  216. on ui_control ($presets)
  217. if ($presets < 98)
  218. select($presets)
  219. case 1
  220. $a := 0
  221. while ($a < 12)
  222. $key := (%preset_key[($presets-1)+$a])
  223. %tuning_semi[$a] := %preset_semi[($presets-1)*12+$a]
  224. %tuning_cent[$a] := %preset_cent[($presets-1)*12+$a]
  225. inc($a)
  226. end while
  227. case 2 to 13
  228. $a := 0
  229. while ($a < 12)
  230. %tuning_semi[$a] := %preset_semi[($presets-1)*12+$a]
  231. %tuning_cent[$a] := %preset_cent[($presets-1)*12+$a]
  232. inc($a)
  233. end while
  234. end select
  235. end if
  236. $presets := 100
  237.  
  238. call Key
  239. end on
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement