Additive Synth Legacy Code Jacob Joaquin March 18, 2010 jacobjoaquin@gmail.com csound.noisepages.com Code written in January of 2001 sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 giScale = 32768 instr 1 iDur = p3 iAmp = p4 iPch = cpspch(p5) iHarm = p6 iLP = p7 iLen = ftlen(iHarm) iAmp0 tablei 0.0000 * (iLen-1), iHarm iAmp1 tablei 0.0714 * (iLen-1), iHarm iAmp2 tablei 0.1429 * (iLen-1), iHarm iAmp3 tablei 0.2143 * (iLen-1), iHarm iAmp4 tablei 0.2857 * (iLen-1), iHarm iAmp5 tablei 0.3571 * (iLen-1), iHarm iAmp6 tablei 0.4286 * (iLen-1), iHarm iAmp7 tablei 0.5000 * (iLen-1), iHarm iAmp8 tablei 0.5714 * (iLen-1), iHarm iAmp9 tablei 0.6429 * (iLen-1), iHarm iAmp10 tablei 0.7143 * (iLen-1), iHarm iAmp11 tablei 0.7857 * (iLen-1), iHarm iAmp12 tablei 0.8571 * (iLen-1), iHarm iAmp13 tablei 0.9286 * (iLen-1), iHarm iAmp14 tablei 1.0000 * (iLen-1), iHarm kEnvAmp0 linseg 0, iDur * 0.038, 1, iDur * 0.296, 0.506, iDur * 0.252, 0.506, iDur * 0.414, 0 kEnvAmp1 linseg 0, iDur * 0.011, 1, iDur * 0.261, 0.463, iDur * 0.212, 0.463, iDur * 0.516, 0 kEnvAmp2 linseg 0, iDur * 0.036, 1, iDur * 0.272, 0.563, iDur * 0.228, 0.563, iDur * 0.464, 0 kEnvAmp3 linseg 0, iDur * 0.039, 1, iDur * 0.299, 0.506, iDur * 0.213, 0.506, iDur * 0.449, 0 kEnvAmp4 linseg 0, iDur * 0.033, 1, iDur * 0.219, 0.564, iDur * 0.208, 0.564, iDur * 0.54, 0 kEnvAmp5 linseg 0, iDur * 0.046, 1, iDur * 0.276, 0.434, iDur * 0.269, 0.434, iDur * 0.409, 0 kEnvAmp6 linseg 0, iDur * 0.031, 1, iDur * 0.241, 0.516, iDur * 0.211, 0.516, iDur * 0.517, 0 kEnvAmp7 linseg 0, iDur * 0.049, 1, iDur * 0.269, 0.591, iDur * 0.254, 0.591, iDur * 0.428, 0 kEnvAmp8 linseg 0, iDur * 0.032, 1, iDur * 0.207, 0.586, iDur * 0.234, 0.586, iDur * 0.527, 0 kEnvAmp9 linseg 0, iDur * 0.038, 1, iDur * 0.262, 0.406, iDur * 0.225, 0.406, iDur * 0.475, 0 kEnvAmp10 linseg 0, iDur * 0.045, 1, iDur * 0.276, 0.509, iDur * 0.232, 0.509, iDur * 0.447, 0 kEnvAmp11 linseg 0, iDur * 0.035, 1, iDur * 0.209, 0.416, iDur * 0.293, 0.416, iDur * 0.463, 0 kEnvAmp12 linseg 0, iDur * 0.041, 1, iDur * 0.295, 0.423, iDur * 0.270, 0.423, iDur * 0.394, 0 kEnvAmp13 linseg 0, iDur * 0.040, 1, iDur * 0.258, 0.512, iDur * 0.247, 0.512, iDur * 0.455, 0 kEnvAmp14 linseg 0, iDur * 0.040, 1, iDur * 0.255, 0.529, iDur * 0.229, 0.529, iDur * 0.476, 0 iLPLen = ftlen(iLP) kLPEnv linseg 0, iDur * .5, 1, iDur * .5, 0 kLP0 tablei 0.0000 * kLPEnv * iLPLen, iLP kLP1 tablei 0.0714 * kLPEnv * iLPLen, iLP kLP2 tablei 0.1429 * kLPEnv * iLPLen, iLP kLP3 tablei 0.2143 * kLPEnv * iLPLen, iLP kLP4 tablei 0.2857 * kLPEnv * iLPLen, iLP kLP5 tablei 0.3571 * kLPEnv * iLPLen, iLP kLP6 tablei 0.4286 * kLPEnv * iLPLen, iLP kLP7 tablei 0.5000 * kLPEnv * iLPLen, iLP kLP8 tablei 0.5714 * kLPEnv * iLPLen, iLP kLP9 tablei 0.6429 * kLPEnv * iLPLen, iLP kLP10 tablei 0.7143 * kLPEnv * iLPLen, iLP kLP11 tablei 0.7857 * kLPEnv * iLPLen, iLP kLP12 tablei 0.8571 * kLPEnv * iLPLen, iLP kLP13 tablei 0.9286 * kLPEnv * iLPLen, iLP kLP14 tablei 1.0000 * kLPEnv * iLPLen, iLP a0 oscil iAmp0 * kEnvAmp0 *kLP0, iPch * 1.8069, 1, 0.0897 a1 oscil iAmp1 * kEnvAmp1 *kLP1, iPch * 3.1834, 1, 0.3984 a2 oscil iAmp2 * kEnvAmp2 *kLP2, iPch * 4.2368, 1, 0.0717 a3 oscil iAmp3 * kEnvAmp3 *kLP3, iPch * 6.7191, 1, 0.4753 a4 oscil iAmp4 * kEnvAmp4 *kLP4, iPch * 7.6917, 1, 0.8270 a5 oscil iAmp5 * kEnvAmp5 *kLP5, iPch * 9.872, 1, 0.0841 a6 oscil iAmp6 * kEnvAmp6 *kLP6, iPch * 11.4342, 1, 0.8782 a7 oscil iAmp7 * kEnvAmp7 *kLP7, iPch * 13.424, 1, 0.7958 a8 oscil iAmp8 * kEnvAmp8 *kLP8, iPch * 17.3854, 1, 0.6562 a9 oscil iAmp9 * kEnvAmp9 *kLP9, iPch * 18.3201, 1, 0.1954 a10 oscil iAmp10 * kEnvAmp10 *kLP10, iPch * 22.5298, 1, 0.8352 a11 oscil iAmp11 * kEnvAmp11 *kLP11, iPch * 24.2301, 1, 0.7878 a12 oscil iAmp12 * kEnvAmp12 *kLP12, iPch * 27.6938, 1, 0.8823 a13 oscil iAmp13 * kEnvAmp13 *kLP13, iPch * 27.3866, 1, 0.5386 a14 oscil iAmp14 * kEnvAmp14 *kLP14, iPch * 31.2163, 1, 0.8609 aMix = 0 aMix = aMix+a0+a1+a2+a3+a4+a5+a6+a7 aMix = aMix+a8+a9+a10+a11+a12+a13+a14 aMix = aMix/5 out aMix * iAmp * giScale endin f1 0 8192 10 1 f2 0 8192 -5 .01 1024 1 7168 0.01 ; Harmonic Strength Transfer Function ; ;f10 0 256 -5 1 256 .01 ;f10 0 256 -7 1 64 .25 64 .333 128 .01 ;f10 0 256 -7 1 64 .25 64 .7 128 .01 ;f10 0 256 10 1 ;f10 0 256 -5 0.00001 256 1 ;f10 0 256 -7 0 256 1 ;f10 0 256 -7 1 256 .5 f10 0 256 -5 1 256 .01 f11 0 8 -2 1 .5 1 .35 1 .2 .3 .1 f12 0 8 -2 1 .5 .333 .1 .01 .7 .01 .001 f13 0 8 -2 1 .3 .10 .15 0 .12 .3 .1 f14 0 256 10 1 f15 0 256 -5 0.00001 256 1 f16 0 256 -7 0 256 1 ;f100 0 8192 -7 1 2048 1 2048 0 4096 0 ;f100 0 8192 -7 0 2048 0 2048 1 4096 1 ;f100 0 8192 -7 1 8192 0 f100 0 8192 -7 1 2048 .2 2048 .4 2048 0 2048 .2 f101 0 8192 -7 1 1024 0 7168 0 f102 0 8 -2 1 .5 .333 .1 .01 .7 .01 .001 f103 0 8 -2 1 .5 1 .35 1 .2 .3 .1 t 0 90 i1 0 .25 .6 7.00 10 103 i1 + .5 . . . . i1 + .25 . . . . i1 + . . . 11 . i1 + . . . 10 . i1 + .5 . . . . i1 + .25 . 7.07 10 . i1 + . . . 11 . i1 + . . . 12 . i1 + . . . 13 . i1 + . . . 14 . i1 + . . . 15 . i1 + . . . 16 . i1 + . . . 12 . i1 + .25 . 7.03 . . i1 + .0625 .1 . 10 . i1 + . .2 . . . i1 + . .3 . . . i1 + . .4 . . . i1 + .25 .6 . 14 . i1 + . . . 10 . i1 + . . . . . i1 + . . . . . i1 + . . . 14 . i1 + . . . 10 . i1 + . . 7.05 10 . i1 + . . . 11 . i1 + . . . 12 . i1 + . . . 13 . i1 + . . . 14 . i1 + . . . 15 . i1 + . . . 16 . i1 + . . . 12 . i1 + .25 .6 7.00 10 103 i1 + .5 . . . . i1 + .25 . . . . i1 + . . . 11 . i1 + . . . 10 . i1 + .5 . . . . i1 + .25 . 7.07 10 . i1 + . . . 11 . i1 + . . . 12 . i1 + . . . 13 . i1 + . . . 14 . i1 + . . . 15 . i1 + . . . 16 . i1 + . . . 12 . i1 + .25 . 7.03 . . i1 + .0625 .1 . 10 . i1 + . .2 . . . i1 + . .3 . . . i1 + . .4 . . . i1 + .25 .6 . 14 . i1 + . . . 10 . i1 + . . . . . i1 + . . . . . i1 + . . . 14 . i1 + . . . 10 . i1 + . . 7.05 10 . i1 + . . . 11 . i1 + . . . 12 . i1 + . . . 13 . i1 + . . . 14 . i1 + . . . 15 . i1 + . . . 16 . i1 + . . . 12 . e i1 0 .15 .8 7.00 10 101 i1 + . . 8.00 . . i1 + . . 7.00 . . i1 + . . 8.00 . . i1 + . . 7.00 . . i1 + . . 8.00 . . e t 0 60 i1 0 1 .8 7.00 10 i1 1 1 . 8.00 . i1 2 1 .4 9.00 . i1 2 .25 . 9.02 . i1 2 .5 . 9.04 . i1 2 .75 . 9.05 . i1 3 1 . 6.00 . i1 4 4 .3 6.00 . i1 . . . 7.00 . i1 . . . 8.04 . i1 . . . 7.07 .