BrandonSpendlove

Kontakt - AHDSR Script again

Mar 28th, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.56 KB | None | 0 0
  1. on init
  2.  
  3. make_perfview
  4. set_ui_height (4)
  5.  
  6.  
  7. {here the code for the knobs begins - that control volume on groups eg. mic placements}
  8.  
  9. {groups are indexed, so group one is 0, group two is 1 - and so on. 500000 equals -6dB}
  10.  
  11. message("") { this clears the status line so no error messages will be hidden }
  12. declare const $DefVol := 500000 { default initial volume, you can choose this to be whatever you want }
  13. set_ui_height (4)
  14. declare ui_knob $Volume0(0, 1000000, 1)
  15. make_persistent($Volume0)
  16. set_text($Volume0,"Surround")
  17. $Volume0 := $DefVol
  18. set_knob_defval($Volume0,$DefVol)
  19. move_control_px($volume0,66,2) { you can position this knob wherever you like }
  20. read_persistent_var($Volume0)
  21. set_engine_par($ENGINE_PAR_VOLUME,$Volume0,0,-1,-1)
  22. set_knob_label($Volume0,get_engine_par_disp($ENGINE_PAR_VOLUME,0,-1,-1))
  23. declare ui_knob $Volume1(0, 1000000, 1)
  24. make_persistent($Volume1)
  25. set_text($Volume1,"Out")
  26. $Volume1 := $DefVol
  27. set_knob_defval($Volume1,$DefVol)
  28. move_control_px($Volume1,158,2) { you can position this knob wherever you like }
  29. read_persistent_var($Volume1)
  30. set_engine_par($ENGINE_PAR_VOLUME,$Volume1,1,-1,-1)
  31. set_knob_label($Volume1,get_engine_par_disp($ENGINE_PAR_VOLUME,1,-1,-1))
  32. declare ui_knob $Volume2(0, 1000000, 1)
  33. make_persistent($Volume2)
  34. set_text($Volume2,"Decca")
  35. $Volume2 := $DefVol
  36. set_knob_defval($Volume2,$DefVol)
  37. move_control_px($Volume2,250,2) { you can position this knob wherever you like }
  38. read_persistent_var($Volume2)
  39. set_engine_par($ENGINE_PAR_VOLUME,$Volume2,2,-1,-1)
  40. set_knob_label($Volume2,get_engine_par_disp($ENGINE_PAR_VOLUME,2,-1,-1))
  41. declare ui_knob $Volume3(0, 1000000, 1)
  42. make_persistent($Volume3)
  43. set_text($Volume3,"Close")
  44. $Volume3 := $DefVol
  45. set_knob_defval($Volume3,$DefVol)
  46. move_control_px($Volume3,342,2) { you can position this knob wherever you like }
  47. read_persistent_var($Volume3)
  48. set_engine_par($ENGINE_PAR_VOLUME,$Volume3,3,-1,-1)
  49. set_knob_label($Volume3,get_engine_par_disp($ENGINE_PAR_VOLUME,3,-1,-1))
  50. declare ui_knob $Volume4(0, 1000000, 1)
  51. make_persistent($Volume4)
  52. set_text($Volume4,"Mix S.")
  53. $Volume4 := $DefVol
  54. set_knob_defval($Volume4,$DefVol)
  55. move_control_px($Volume4,433,2) { you can position this knob wherever you like }
  56. read_persistent_var($Volume4)
  57. set_engine_par($ENGINE_PAR_VOLUME,$Volume4,4,-1,-1)
  58. set_knob_label($Volume4,get_engine_par_disp($ENGINE_PAR_VOLUME,4,-1,-1))
  59.  
  60. {Mix buttons}
  61.  
  62. declare ui_button $surroundpower
  63. declare ui_button $outpower
  64. declare ui_button $deccapower
  65. declare ui_button $closepower
  66. declare ui_button $mixpower
  67.  
  68. move_control($surroundpower, 1,3)
  69. move_control($outpower, 2,3)
  70. move_control($deccapower,3,3)
  71. move_control($closepower,4,3)
  72. move_control($mixpower,5,3)
  73.  
  74. set_text($surroundpower, "Surround Off")
  75. set_text($outpower, "Out. Off")
  76. set_text($deccapower, "Decca. Off")
  77. set_text($closepower, "Close. Off")
  78. set_text($mixpower, "Mix. Off")
  79.  
  80. $surroundpower := 0
  81. $outpower := 0
  82. $deccapower := 0
  83. $closepower := 0
  84. $mixpower := 0
  85.  
  86. {AHDSR}
  87.  
  88. declare $count
  89.  
  90. declare ui_knob $Attack (0,1000000,1)
  91. declare ui_knob $Hold (0,1000000,1)
  92. declare ui_knob $Decay (0,1000000,1)
  93. declare ui_knob $Sustain (0,1000000,1)
  94. declare ui_knob $Release (0,1000000,1)
  95.  
  96. set_knob_unit($Attack, $KNOB_UNIT_MS)
  97. set_knob_unit($Hold, $KNOB_UNIT_MS)
  98. set_knob_unit($Decay, $KNOB_UNIT_MS)
  99. set_knob_unit($Sustain, $KNOB_UNIT_DB)
  100. set_knob_unit($Release, $KNOB_UNIT_MS)
  101.  
  102. {AHDSR, Simple and effective Method}
  103.  
  104. declare $ahdsr
  105.  
  106. $ahdsr := 1
  107.  
  108.  
  109. while($ahdsr < $NUM_GROUPS)
  110.  
  111. set_engine_par($ENGINE_PAR_ATTACK,$attack,$ahdsr,0,-1)
  112. set_engine_par($ENGINE_PAR_HOLD,$hold,$ahdsr,0,-1)
  113. set_engine_par($ENGINE_PAR_DECAY,$decay,$ahdsr,0,-1)
  114. set_engine_par($ENGINE_PAR_SUSTAIN,$sustain,$ahdsr,0,-1)
  115. set_engine_par($ENGINE_PAR_RELEASE,$release,$ahdsr,0,-1)
  116.  
  117. inc($ahdsr)
  118.  
  119. end while
  120.  
  121. move_control($Attack, 1,5)
  122. move_control($Hold,2,5)
  123. move_control($Decay,3,5)
  124. move_control($Sustain,4,5)
  125. move_control($Release,5,5)
  126.  
  127. make_persistent($Attack)
  128. make_persistent($Hold)
  129. make_persistent($Decay)
  130. make_persistent($Sustain)
  131. make_persistent($Release)
  132.  
  133. read_persistent_var($Attack)
  134. read_persistent_var($Hold)
  135. read_persistent_var($Decay)
  136. read_persistent_var($Sustain)
  137. read_persistent_var($Release)
  138.  
  139. set_knob_label($Attack, get_engine_par_disp($ENGINE_PAR_ATTACK, 0, find_mod(0,"ENV_AHDSR"), -1))
  140. set_knob_label($Hold, get_engine_par_disp($ENGINE_PAR_HOLD, 0, find_mod(0,"ENV_AHDSR"), -1))
  141. set_knob_label($Decay, get_engine_par_disp($ENGINE_PAR_DECAY, 0, find_mod(0,"ENV_AHDSR"), -1))
  142. set_knob_label($Sustain, get_engine_par_disp($ENGINE_PAR_SUSTAIN, 0, find_mod(0,"ENV_AHDSR"), -1))
  143. set_knob_label($Release, get_engine_par_disp($ENGINE_PAR_RELEASE, 0, find_mod(0,"ENV_AHDSR"), -1))
  144.  
  145. {CONVO REVERB}
  146.  
  147. declare ui_slider $ConvSend (0,795000)
  148. declare ui_slider $ConvRecv (0,500000)
  149.  
  150. set_control_par(get_ui_id($ConvRecv),$CONTROL_PAR_DEFAULT_VALUE,397000)
  151.  
  152. make_persistent($ConvSend)
  153. make_persistent($ConvRecv)
  154.  
  155. move_control($ConvSend, 6,2)
  156. move_control($ConvRecv, 6,3)
  157.  
  158. {You can delete these labels if you want!}
  159.  
  160. declare ui_label $ConvInfo (1,1)
  161. set_text($ConvInfo," Conv Settings")
  162.  
  163. move_control($ConvInfo, 6,1)
  164.  
  165. declare ui_label $ahdsrinfo (5,1)
  166. set_text($ahdsrinfo, "------------------------------------------AHDSR-----------------------------------------")
  167.  
  168. move_control($ahdsrinfo, 1,4)
  169.  
  170. end on
  171.  
  172. on ui_control($Volume0)
  173. set_engine_par($ENGINE_PAR_VOLUME,$Volume0,0,-1,-1)
  174. set_knob_label($Volume0,get_engine_par_disp($ENGINE_PAR_VOLUME,0,-1,-1))
  175. end on
  176.  
  177. on ui_control($Volume1)
  178. set_engine_par($ENGINE_PAR_VOLUME,$Volume1,1,-1,-1)
  179. set_knob_label($Volume1,get_engine_par_disp($ENGINE_PAR_VOLUME,1,-1,-1))
  180. end on
  181.  
  182. on ui_control($Volume2)
  183. set_engine_par($ENGINE_PAR_VOLUME,$Volume2,2,-1,-1)
  184. set_knob_label($Volume2,get_engine_par_disp($ENGINE_PAR_VOLUME,2,-1,-1))
  185. end on
  186.  
  187. on ui_control($Volume3)
  188. set_engine_par($ENGINE_PAR_VOLUME,$Volume3,3,-1,-1)
  189. set_knob_label($Volume3,get_engine_par_disp($ENGINE_PAR_VOLUME,3,-1,-1))
  190. end on
  191.  
  192. on ui_control($Volume4)
  193. set_engine_par($ENGINE_PAR_VOLUME,$Volume4,4,-1,-1)
  194. set_knob_label($Volume4,get_engine_par_disp($ENGINE_PAR_VOLUME,4,-1,-1))
  195. end on
  196.  
  197. {MIX Buttons, Purging etc..}
  198.  
  199. on ui_control ($surroundpower)
  200.  
  201. if ($surroundpower = 0)
  202.  
  203. set_text($surroundpower,"Surround Off") {When the button is off, it will say it's off}
  204.  
  205. purge_group(0,0) {Group Index, Mode - Surround Power being the first group, and unloaded if the button is off}
  206.  
  207. else
  208.  
  209. set_text($surroundpower,"Surround On") {When the button is on, it will say it's on!}
  210.  
  211. purge_group(0,1) {Else (if it is on!) then load the samples in group 1}
  212.  
  213. end if
  214.  
  215. end on
  216.  
  217. on ui_control ($outpower)
  218.  
  219. if ($outpower = 0)
  220.  
  221. set_text($outpower, "Out. Off")
  222.  
  223. purge_group(1,0)
  224.  
  225. else
  226.  
  227. set_text($outpower, "Out. On")
  228.  
  229. purge_group(1,1)
  230.  
  231. end if
  232.  
  233. end on
  234.  
  235. on ui_control ($deccapower)
  236.  
  237. if ($deccapower = 0)
  238.  
  239. set_text($deccapower,"Decca. Off")
  240.  
  241. purge_group(2,0)
  242.  
  243. else
  244.  
  245. set_text($deccapower,"Decca. On")
  246.  
  247. purge_group(2,1)
  248.  
  249. end if
  250.  
  251. end on
  252.  
  253. on ui_control ($closepower)
  254.  
  255. if ($closepower = 0)
  256.  
  257. set_text($closepower, "Out. Off")
  258.  
  259. purge_group(3,0)
  260.  
  261. else
  262.  
  263. set_text($closepower, "Close On")
  264.  
  265. purge_group(3,1)
  266.  
  267. end if
  268.  
  269. end on
  270.  
  271. on ui_control ($mixpower)
  272.  
  273. if ($mixpower = 0)
  274.  
  275. set_text($mixpower, "Mix. Off")
  276.  
  277. purge_group(4,0)
  278.  
  279. else
  280.  
  281. set_text($mixpower, "Mix. On")
  282.  
  283. purge_group(4,1)
  284.  
  285. end if
  286.  
  287. end on
  288.  
  289. {AHDSR Workings}
  290.  
  291.  
  292. on ui_control ($Attack)
  293.  
  294. $ahdsr := 0
  295.  
  296. while($ahdsr < $NUM_GROUPS)
  297.  
  298. _set_engine_par($ENGINE_PAR_ATTACK,$Attack,$ahdsr,0,-1)
  299.  
  300. inc($ahdsr)
  301.  
  302. end while
  303.  
  304. set_knob_label($Attack, get_engine_par_disp($ENGINE_PAR_ATTACK, 0, 0, -1))
  305.  
  306. wait(10)
  307.  
  308. set_knob_label($Attack, get_engine_par_disp($ENGINE_PAR_ATTACK, 0, 0, -1))
  309.  
  310. end on
  311.  
  312.  
  313. on ui_control ($Hold)
  314.  
  315. $ahdsr := 0
  316.  
  317. while($ahdsr < $NUM_GROUPS)
  318.  
  319. _set_engine_par($ENGINE_PAR_HOLD,$Hold,$ahdsr,0,-1)
  320.  
  321. inc($ahdsr)
  322.  
  323. end while
  324.  
  325. set_knob_label($Hold, get_engine_par_disp($ENGINE_PAR_HOLD, 0, 0, -1))
  326.  
  327. wait(10)
  328.  
  329. set_knob_label($Hold, get_engine_par_disp($ENGINE_PAR_HOLD, 0, 0, -1))
  330.  
  331. end on
  332.  
  333. on ui_control ($Decay)
  334.  
  335. $ahdsr := 0
  336.  
  337. while($ahdsr < $NUM_GROUPS)
  338.  
  339. _set_engine_par($ENGINE_PAR_DECAY,$Decay,$ahdsr,0,-1)
  340.  
  341. inc($ahdsr)
  342.  
  343. end while
  344.  
  345. set_knob_label($Decay, get_engine_par_disp($ENGINE_PAR_DECAY, 0, 0, -1))
  346.  
  347. wait(10)
  348.  
  349. set_knob_label($Decay, get_engine_par_disp($ENGINE_PAR_DECAY, 0, 0, -1))
  350.  
  351. end on
  352.  
  353. on ui_control ($Sustain)
  354.  
  355. $ahdsr := 0
  356.  
  357. while($ahdsr < $NUM_GROUPS)
  358.  
  359. _set_engine_par($ENGINE_PAR_SUSTAIN,$Sustain,$ahdsr,0,-1)
  360.  
  361. inc($ahdsr)
  362.  
  363. end while
  364.  
  365. set_knob_label($Sustain, get_engine_par_disp($ENGINE_PAR_SUSTAIN, 0, 0, -1))
  366.  
  367. wait(10)
  368.  
  369. set_knob_label($Sustain, get_engine_par_disp($ENGINE_PAR_SUSTAIN, 0, 0, -1))
  370.  
  371. end on
  372.  
  373. on ui_control ($Release)
  374.  
  375. $ahdsr := 0
  376.  
  377. while($ahdsr < $NUM_GROUPS)
  378.  
  379. _set_engine_par($ENGINE_PAR_RELEASE,$Release,$ahdsr,0,-1)
  380.  
  381. inc($ahdsr)
  382.  
  383. end while
  384.  
  385. set_knob_label($Release, get_engine_par_disp($ENGINE_PAR_RELEASE, 0, 0, -1))
  386.  
  387. wait(10)
  388.  
  389. set_knob_label($Release, get_engine_par_disp($ENGINE_PAR_RELEASE, 0, 0, -1))
  390.  
  391. end on
  392.  
  393.  
  394. {here begins code for the text, that Kontakt displays when certain notes are pressed down}
  395.  
  396. on note
  397.  
  398. select ($EVENT_NOTE)
  399.  
  400. case 63 {this is just the midi number for the key}
  401.  
  402. message ("Dur3 Eb - G (ori.)")
  403.  
  404. case 62
  405.  
  406. message ("Mol3 D - F (ori.)")
  407.  
  408. case 60
  409.  
  410. message ("Mol3 C - Eb (ori.)")
  411.  
  412. case 58
  413.  
  414. message ("Dur3 Bb - D (Ori.)")
  415.  
  416. case 57
  417.  
  418. message ("Mol3 A - C (Ori.)")
  419.  
  420. case 55
  421.  
  422. message ("Mol3 G - Bb (Ori.)")
  423.  
  424. case 53
  425.  
  426. message ("Dur3 F - A (Ori.)")
  427.  
  428. case 51
  429.  
  430. message ("Dur3 Eb - G (Ori.)")
  431.  
  432. case 50
  433.  
  434. message ("Mol3 D - F (Ori.)")
  435.  
  436. case 64
  437.  
  438. message ("Dur3 E - G#")
  439.  
  440. case 65
  441.  
  442. message ("Dur3 F - A")
  443.  
  444. case 59
  445.  
  446. message ("Mol3 B - D")
  447.  
  448. case 61
  449.  
  450. message ("Mol3 Db - E")
  451.  
  452. case 56
  453.  
  454. message ("Mol3 Ab - B")
  455.  
  456. case 54
  457.  
  458. message ("Mol3 Gb - A")
  459.  
  460. case 52
  461.  
  462. message ("Dur3 E - G#")
  463.  
  464. case 49
  465.  
  466. message ("Mol3 Db - E")
  467.  
  468. case 48
  469.  
  470. message ("Mol3 C - Eb")
  471.  
  472. end select
  473.  
  474. end on
  475.  
  476.  
  477. {here begins code for the text, that Kontakt displays when notes are released}
  478.  
  479. on release
  480.  
  481. message ("Play a note")
  482.  
  483. end on
Advertisement
Add Comment
Please, Sign In to add comment