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.

250 lines
6.8KB

  1. <Cabbage>
  2. form caption("Vectorial Synth"), size(760, 320), pluginID("vec1")
  3. xypad bounds(5, 0, 250, 205), channel("chanx", "chany"), text("Vectorial mixing"), rangex(0, 1, .5), rangey(0, 1, .5)
  4. groupbox bounds(260, 0, 240, 100), text("ADSR"), plant("adsr"){
  5. rslider bounds(.0, .3, .6, .6), text("A"), colour("orange"), channel("att"), range(0.01,3, .5)
  6. rslider bounds(.25, .3, .6, .6), text("D"), colour("orange"), channel("dec"), range(0,1, .5)
  7. rslider bounds(.5, .3, .6, .6), text("S"), colour("orange"), channel("sus"), range(0,1,.8)
  8. rslider bounds(.75, .3, .6, .6), text("R"), colour("orange"), channel("rel"), range(0.01,3, .2)
  9. }
  10. groupbox bounds(260, 105, 240, 100), text("Tune"), plant("tune"){
  11. rslider bounds(.0, .3, .6, .6), text("Detune1"), colour("dodgerblue"), channel("det1"), range(-24,12,0)
  12. rslider bounds(.25, .3, .6, .6), text("Detune2"), colour("dodgerblue"), channel("det2"), range(-24,12,-5)
  13. rslider bounds(.5, .3, .6, .6), text("Detune3"), colour("dodgerblue"), channel("det3"), range(-24,12,0)
  14. rslider bounds(.75, .3, .6, .6), text("Detune4"), colour("dodgerblue"), channel("det4"), range(-24,12,-12)
  15. }
  16. groupbox bounds(505,0, 240, 100), text("LFO/Stereo chorus"), plant("mod"){
  17. rslider bounds(.0, .3, .6, .6), text("Lfo amp"), colour("dodgerblue"), channel("lfoamp"), range(0,50, 0)
  18. rslider bounds(.25, .3, .6, .6), text("Lfo rate"), colour("dodgerblue"), channel("lforate"), range(0,20, 0)
  19. rslider bounds(.5, .3, .6, .6), text("depth"), colour("dodgerblue"), channel("chdepth"), range(0,10,0)
  20. rslider bounds(.75, .3, .6, .6), text("rate"), colour("dodgerblue"), channel("chrate"), range(0,10,0)
  21. }
  22. groupbox bounds(505,105, 240, 100), text("Reverb"), plant("rev"){
  23. rslider bounds(0, .3, .6, .6), text("level"), colour("dodgerblue"), channel("level"), range(0,1,0)
  24. rslider bounds(0.25, .3, .6, .6), text("size"), colour("dodgerblue"), channel("size"), range(.1,.99,.5)
  25. ;rslider bounds(115, 30, 60, 60), text("depth"), colour("dodgerblue"), channel("chdepth"), range(0,10,0)
  26. ;rslider bounds(165, 30, 60, 60), text("rate"), colour("dodgerblue"), channel("chrate"), range(0,10,0)
  27. checkbox bounds(.55, .40, .60, .30),channel("onoff"), text("On/Off"), value(0), colour("blue")
  28. }
  29. keyboard bounds(5, 220, 750, 70)
  30. </Cabbage>
  31. <CsoundSynthesizer>
  32. <CsOptions>
  33. -n -d -m0d -+rtmidi=NULL -M0
  34. </CsOptions>
  35. <CsInstruments>
  36. sr = 44100
  37. ksmps = 32
  38. nchnls = 2
  39. 0dbfs = 1
  40. ;Author: Giorgio Zucco (2012)
  41. ;turnon don't work!
  42. ;turnon 10 ;chorus
  43. ;turnon 12 ;reverb
  44. ga1 init 0
  45. ga2 init 0
  46. garev1 init 0
  47. garev2 init 0
  48. gifn ftgen 1,0,16384,10,1
  49. gifn ftgen 2,0,16384,10,1,0,1
  50. gifn ftgen 3,0,16384,10,1,0,0,1
  51. gifn ftgen 4,0,16384,10,1,0,0,0,1
  52. gifn ftgen 5,0,16384,10,1,0,0,0,0,1
  53. gifn ftgen 6,0,16384,10,1,0,1,0,0,0,1
  54. gifn ftgen 7,0,16384,10,1,0,0,1,0,0,0,1
  55. gifn ftgen 8,0,16384,10,1,0,0,0,1,0,0,0,1
  56. gifn ftgen 9,0,16384,10,1,0,0,0,0,1,0,0,1,1
  57. gifn ftgen 10,0,16384,10,1,0,0,0,0,0,1,1,0,0,1
  58. gifn ftgen 11,0,16384,10,1,0,0,0,0,1,1,0,0,0,0,1
  59. gifn ftgen 12,0,16384,10,1,0,0,0,1,1,0,0,0,0,0,0,1
  60. gifn ftgen 13,0,16384,10,1,0,0,0,1,1,0,0,0,0,0,0,0,1
  61. gifn ftgen 14,0,16384,10,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1
  62. gifn ftgen 15,0,16384,10,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1
  63. gifn ftgen 16,0,16384,10,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1
  64. gibell ftgen 17,0,16384,9,1,1,0,1.02,.28,0,.98,.14,0,4,.22,0,7,.39,0 ;bell
  65. gichord ftgen 18,0,16384,9, 1,1,0,1.25,.08,0,1.49,.28,0,2,.52,0,2.52,.74,0 ;chord
  66. gitemp ftgen 19 , 0 , 16384, 10 , 1 , 1 , 0 , 5 , 0 , 3, 0 , 1
  67. gitemp ftgen 20, 0, 16384, 10, 1, 1, 0, 0, 1 ,0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1
  68. gitemp ftgen 21, 0 ,16384 ,10, 1, 1, 0, 1, 0, 1, 0 ,1, 0, 1, 0, 1, 0, 1, 0, 1
  69. gitemp ftgen 22 , 0 ,16384, 10 ,1 ,0, .2 ,.2 ,.03, .12, .22, .11 ,.022, .0101, .0167
  70. ;*******************************************
  71. opcode StChorus,aa,aakkkk
  72. asigr,asigl,kdepth,kdepthl,krate,kratel xin ;legge i parametri in entrata
  73. ;ar,al StChorus asigr,asigl,kdepth,kdepthl,krate,kratel
  74. k1ch randi kdepth/2,krate,1
  75. ar1 vdelay asigr,kdepth/2+k1ch,10
  76. k2ch randi kdepth/2,krate*0.9,.2
  77. ar2 vdelay asigr,kdepth/2+k2ch,10
  78. k3ch randi kdepth/2,krate*1.1,.2
  79. ar3 vdelay asigr,kdepth/2+k3ch,10
  80. k4ch randi kdepth/2,krate*1.3,.1
  81. ar4 vdelay asigr,kdepth/2+k4ch,10
  82. k1chl randi kdepthl/2,kratel,1
  83. ar1l vdelay asigl,kdepthl/2+k1chl,10
  84. k2chl randi kdepthl/2,kratel*0.9,.2
  85. ar2l vdelay asigl,kdepthl/2+k2chl,10
  86. k3chl randi kdepthl/2,kratel*1.1,.2
  87. ar3l vdelay asigl,kdepthl/2+k3chl,10
  88. k4chl randi kdepthl/2,kratel*1.3,.1
  89. ar4l vdelay asigl,kdepthl/2+k4chl,10
  90. aL = (ar1+ar2+ar3+ar4)/2
  91. aR = (ar1l+ar2l+ar3l+ar4l)/2
  92. xout aL,aR ; write output
  93. endop
  94. ;***********************************************
  95. instr 1
  96. iatt chnget "att"
  97. idec chnget "dec"
  98. isus chnget "sus"
  99. irel chnget "rel"
  100. kdet1 chnget "det1"
  101. kdet2 chnget "det2"
  102. kdet3 chnget "det3"
  103. kdet4 chnget "det4"
  104. klfoamp chnget "lfoamp"
  105. klforate chnget "lforate"
  106. kindex chnget "fmamp"
  107. kfmrate chnget "fmrate"
  108. kcutoff chnget "cutoff"
  109. kreso chnget "resonance"
  110. kx chnget "chanx"
  111. ky chnget "chany"
  112. ;midi
  113. imidinn notnum
  114. iamp ampmidi 1
  115. kbend pchbend 0,2 ;pitch bend
  116. kfreq1 = cpsmidinn(imidinn+kbend+int(kdet1)) ;controllo midi
  117. kfreq2 = cpsmidinn(imidinn+kbend+int(kdet2))
  118. kfreq3 = cpsmidinn(imidinn+kbend+int(kdet3))
  119. kfreq4 = cpsmidinn(imidinn+kbend+int(kdet4))
  120. ;lfo
  121. klfo poscil klfoamp,klforate,1
  122. kfreq1 = kfreq1+klfo
  123. kfreq2 = kfreq2+klfo
  124. kfreq3 = kfreq3+klfo
  125. kfreq4 = kfreq4+klfo
  126. ifunc1 = rnd(15)
  127. ifunc2 = rnd(15)
  128. ifunc3 = rnd(15)
  129. ifunc4 = rnd(15)
  130. ;4 osc
  131. ain1 poscil iamp,kfreq1,ifunc1+1
  132. ain2 poscil iamp,kfreq2,ifunc2+1
  133. ain3 poscil iamp,kfreq3,ifunc3+1
  134. ain4 poscil iamp,kfreq4,ifunc4+1
  135. ;vectorial mixing
  136. k1 = (1-kx)*(1-ky)
  137. k2 = kx*(1-ky)
  138. k3 = (1-kx)*ky
  139. k4 = kx*ky
  140. k1port portk k1,.01
  141. k2port portk k2,.01
  142. k3port portk k3,.01
  143. k4port portk k4,.01
  144. kadsr mxadsr iatt,idec,isus,irel
  145. aout = (ain1*k1port + ain2*k2port + ain3*k3port + ain4*k4port)*.3 ;global out
  146. ;abulp1 butterlp aout,kcutoff*kadsrfilt
  147. ;aring poscil aout,kcutoff,1
  148. ;amaster balance afilt1,aout
  149. aclip clip aout,0,0dbfs
  150. kpan jspline 1,0,4
  151. al,ar pan2 aclip,kpan
  152. outs (al*kadsr),(ar*kadsr)
  153. vincr ga1,(al*kadsr)
  154. vincr ga2,(ar*kadsr)
  155. vincr garev1,(al*kadsr)
  156. vincr garev2,(ar*kadsr)
  157. endin
  158. ;stereo chorus
  159. instr 10
  160. k1 chnget "chdepth"
  161. k2 chnget "chrate"
  162. kfxdepth portk k1,.01
  163. kfxrate portk k2,.01
  164. acho1,acho2 StChorus ga1,ga2,kfxdepth,kfxdepth*.8,kfxrate,kfxrate*.8
  165. outs acho1,acho2
  166. clear ga1,ga2
  167. endin
  168. instr 12 ;reverb
  169. ktrig chnget "onoff"
  170. klevel chnget "level"
  171. ksize chnget "size"
  172. if ktrig = 1 then
  173. al,ar reverbsc garev1,garev2,ksize,16000,sr,0
  174. adc1 dcblock2 al
  175. adc2 dcblock2 ar
  176. kpan1 randomi 0,1,4
  177. kpan2 randomi 0,1,8
  178. aout1,aout2 pan2 adc1,kpan1
  179. aout3,aout4 pan2 adc2,1-kpan2
  180. asum1 = (aout1+aout2)*klevel
  181. asum2 = (aout3+aout4)*klevel
  182. else
  183. asum1 = 0
  184. asum2 = 0
  185. endif
  186. outs asum1,asum2
  187. clear garev1,garev2
  188. endin
  189. </CsInstruments>
  190. <CsScore>
  191. ;f0 36000
  192. i1 0 36000
  193. i10 0 36000
  194. i12 0 36000
  195. </CsScore>
  196. </CsoundSynthesizer>