René Nyffenegger's collection of things on the web | |
René Nyffenegger on Oracle - Most wanted - Feedback
|
Metal Acid Bass (Csound instrument) | ||
This instrument is from TeknoBubble (by Hans Mikelson).
Some minor adaptions are mine, but the main and importand work is by Hans.
metal_acid_bass.orc
sr =44100 kr =22050 ksmps = 2 nchnls= 2 instr 1 ilen = p3 iamp = p4 ifrq = cpspch(p5) ifcoenv = p6 i_distortion_table = 2 irezenv = 8 iaccnt1 = 0.7 kenv linseg 0, .004, 1, ilen-.024, 0.5, .02, 0 kfcoo linseg .3, .04, 1, .1, .6, ilen-.14, .3 kacct2 linseg 1/iaccnt1, .04, iaccnt1, .1, 1/iaccnt1, ilen-.14, 1/iaccnt1 kfco = kfcoo*ifcoenv*kacct2 krez = irezenv*kacct2 ifqcadj = .149659863*sr klfo1 oscili .1, 1.0, 1 klfo2 oscili .1, 1.1, 1, .21 abuzz1 buzz 1,ifrq, sr/2/ifrq, 1 abuzz1_delayed vdelay abuzz1, 1000/ifrq/(klfo1+1)/2, 1000/22 abuzz1_diff = abuzz1 - abuzz1_delayed apwmdc1 integ abuzz1_diff abuzz2 buzz 1,ifrq*.995, sr/2/ifrq, 1 ; Avoid aliasing abuzz2_delayed vdelay abuzz2, 1000/ifrq/(klfo2+1)/2*.995, 1000/22 abuzz2_diff = abuzz2 - abuzz2_delayed apwmdc2 integ abuzz2_diff abuzz3 buzz 1,ifrq*.997, sr/2/ifrq, 1 ; Avoid aliasing abuzz3_delayed vdelay abuzz3, 1000/ifrq/(klfo2+1)/2*.997, 1000/22 abuzz3_diff = abuzz3 - abuzz3_delayed apwmdc3 integ abuzz3_diff axn = apwmdc1+apwmdc2+apwmdc3 ; Resonant Lowpass Filter (4 Pole) kc = ifqcadj/kfco krez2 = krez/(1+exp(kfco/11000)) ka1 = kc/krez2-1 kasq = kc*kc kb = 1+ka1+kasq ayn nlfilt axn/kb, (ka1+2*kasq)/kb, -kasq/kb, 0, 0, 1 ayn2 nlfilt ayn/kb, (ka1+2*kasq)/kb, -kasq/kb, 0, 0, 1 ; Resonant Lowpass Filter (4 Pole) kcl = ifqcadj/kfco krez2l = 2.0/(1+exp(kfco/11000)) ka1l = kcl/krez2l-1 kasql = kcl*kcl kbl = 1+ka1l+kasql aynl nlfilt axn/kbl, (ka1l+2*kasql)/kbl, -kasql/kbl, 0, 0, 1 ayn2l nlfilt aynl/kbl, (ka1l+2*kasql)/kbl, -kasql/kbl, 0, 0, 1 arez = (ayn2-ayn2l)*.5 aclip tablei arez, i_distortion_table, 1, .5 aout = aclip*.5+ayn2l outs aout*iamp*kenv, aout*iamp*kenv endin metal_acid_bass.sco
f1 0 8193 10 1 ; Sine f2 0 65537 8 1 8193 .99 8192 .96 8192 .9 4096 -.8 8192 -.8 4096 -.9 8192 -.96 8192 -.99 8192 -1 ;f2 0 65537 7 1 65537 -1 ;f15 0 1025 8 .99 256 0.7 512 0.9 256 1 t0 90 i1 0 0.2 8000 6.04 200 i1 + 0.4 8000 6.04 < i1 + 0.2 8000 6.04 < i1 + 0.4 8000 6.07 < i1 + 0.2 8000 6.09 < i1 + 0.4 8000 7.04 < i1 + 0.2 8000 6.10 < i1 + 0.2 8000 6.04 < i1 + 0.4 8000 6.04 < i1 + 0.2 8000 6.04 < i1 + 0.4 8000 6.07 < i1 + 0.2 8000 6.09 < i1 + 0.4 8000 7.04 < i1 + 0.2 8000 6.10 2000 |