def plucked_glass(length,freq): sig=mix( sf.Pcnt50(stretched_bass(length,freq,z=3.5,s=1.005,d=1.00,at=3000)), sf.Pcnt50(stretched_bass(length,freq,z=3.5,s=1.005, d=1.00,at=1500)) ) sig=sf.Multiply( sig, sf.NumericShape((0,0.5),(16,1),(length,1)) ) sig=sf.BesselLowPass(sig,freq*5,1) sig=sf.Multiply( sig, sf.DirectMix(1,sf.Pcnt5(sf.SineWave(length,16+random.random()*8.0))) ) sig=sf.RBJPeaking(sig,freq*5,0.5,5) start=sf.Multiply( mix( sf.FixSize(sf.MakeSawTooth(sf.SineWave(length,120))), sf.FixSize(sf.MakeSawTooth(sf.SineWave(length,freq*0.75))), sf.FixSize(sf.MakeSawTooth(sf.SineWave(length,freq**0.5))) ), sf.SimpleShape((0,1.0),(16,-30),(32,-60),(length,-99)) ) start=sf.Multiply( start, sf.NumericShape((0,0),(16,1),(length,0),(length*0.5,0)) ) start=sf.Clean(start) conv =clean_noise(64,32) conv =sf.Multiply( sf.SimpleShape((0,-12),(60,-60),(66,-60)), conv ) conv=sf.Multiply( conv, sf.NumericShape((0,0),(60,1),(66,0)) ) conv=reverberate(start,conv) conv=sf.Multiply( conv, sf.SimpleShape((0,1.0),(16,-30),(32,-60),(length,-99)) ) sig=mix(sf.FixSize(sig),sf.Pcnt50(sf.FixSize(conv))) sig=sf.Cut(0,length,sig) return sf.FixSize(polish(sig,64))
sig=sf.Mix( sf.Pcnt10(sf.FixSize(sf.WaveShaper(-0.03*q,0.2*q,0,-1.0*q,0.2*q,2.0*q,+sig))), sig ) sig=sf.RBJPeaking(sig,64,2,2) damp=sf.BesselLowPass(+sig,2000,1) sig=sf.FixSize(sf.Mix(damp,sig)) low=sf.BesselLowPass(+sig,256,4) m1=sf.Magnitude(+low) low=sf.FixSize(low) low=sf.Saturate(low) m2=sf.Magnitude(+low) low=sf.NumericVolume(low,m1/m2) sig=sf.BesselHighPass(sig,256,4) sig=sf.Mix(low,sig) sig=highDamp(sig,5000,0.66) return sf.FixSize(sf.Clean(sig)) (left,right)=sf.ReadFile("temp/a.wav") left,right = (lowBoost(left),lowBoost(right)) left,right = (sf.Finalise(left),sf.Finalise(right)) left =excite(left ,0.5,1.05,1.5,1.0) right=excite(right,0.5,1.05,1.5,1.0) #left,right = (highDamp(left,8000,0.5),highDamp(right,8000,0.5)) con=sf.ReadFile("temp/RCA_44BX_2.wav")[0] left =reverberate(left, +con) right=reverberate(right,+con) left = sf.Finalise(left) right = sf.Finalise(right) sf.WriteFile32((left,right),"temp/c.wav")
def play_string_clean(a, length, pitch, whiteAmount): def rsd(): return raw_string(length, pitch) signal = 0 if (pitch > 500): signal = sf.FixSize(sf.Mix(sf_do(rsd), sf_do(rsd), sf_do(rsd))) else: signal = sf.FixSize(sf.Mix(sf_do(rsd), sf_do(rsd))) if not bright: if (pitch > 440): signal = sf.ButterworthHighPass(signal, pitch * 0.5, 6) signal = sf.ButterworthHighPass(signal, 2000, 1) signal = sf.ButterworthLowPass(signal, 8000, 1) if (pitch < 128): signal = sf.ButterworthHighPass(signal, pitch * 0.5, 1) signal = sf.ButterworthHighPass(signal, 500, 1) signal = sf.ButterworthLowPass(signal, 2000, 1) else: signal = sf.ButterworthHighPass(signal, pitch * 0.5, 3) signal = sf.ButterworthHighPass(signal, 1500, 1) signal = sf.ButterworthLowPass(signal, 4000, 1) signal = sf.ButterworthLowPass(signal, pitch * 10.0, 1) signal = sf.Mix(sf.Pcnt25(+signal), sf.Pcnt75(sf.RBJNotch(signal, pitch, 0.5))) white = sf.WhiteNoise(length) white = sf.ButterworthHighPass(white, pitch * 2.0, 2) white = sf.ButterworthLowPass(white, pitch * 6.0, 1) white = sf.FixSize(white) white = sf.Multiply(white, +signal) white = sf.LinearVolume(white, whiteAmount) signal = sf.LinearVolume(signal, 1.0 - whiteAmount) signal = sf.FixSize(sf.Mix(signal, white)) sq = sf.Mix(sf.PhasedSineWave(length, pitch * 0.95, random.random()), sf.PhasedSineWave(length, pitch * 1.05, random.random())) envb = sf.LinearShape((0, 0.25), (a, 0), (length, 0)) sq = sf.Multiply(envb, sf.FixSize(sq)) enva = sf.LinearShape((0, 0.75), (a, 1), (length, 1)) signal = sf.Multiply(enva, signal) signal = sf.Mix(sq, sf.FixSize(signal)) env = sf.LinearShape((0, 0), (16, 1), (length - 16, 1), (length, 0)) signal = sf.Multiply(env, signal) sigs = [] bodies = [] if (pitch < 128): bodies = bassIRs elif (pitch < 440): bodies = celloIRs else: bodies = violinIRs if bright: bs = [] for b in bodies: bs.append(sf.Power(b, 1.25)) bodies = bs signal = sf.Power(signal, 1.5) for body in bodies: sigs.append(reverberate(+signal, +body)) -signal signal = sf.FixSize(sf.Mix(sigs)) return signal
def play_string_clean(a,length,pitch,whiteAmount): def rsd(): return raw_string(length,pitch) signal=0 if(pitch>500): signal=sf.FixSize(sf.Mix(sf_do(rsd),sf_do(rsd),sf_do(rsd))) else: signal=sf.FixSize(sf.Mix(sf_do(rsd),sf_do(rsd))) if not bright: if(pitch>440): signal=sf.ButterworthHighPass(signal,pitch*0.5,6) signal=sf.ButterworthHighPass(signal,2000,1) signal=sf.ButterworthLowPass(signal,8000,1) if(pitch<128): signal=sf.ButterworthHighPass(signal,pitch*0.5,1) signal=sf.ButterworthHighPass(signal,500,1) signal=sf.ButterworthLowPass(signal,2000,1) else: signal=sf.ButterworthHighPass(signal,pitch*0.5,3) signal=sf.ButterworthHighPass(signal,1500,1) signal=sf.ButterworthLowPass(signal,4000,1) signal=sf.ButterworthLowPass(signal,pitch*10.0,1) signal=sf.Mix( sf.Pcnt25(+signal), sf.Pcnt75(sf.RBJNotch(signal,pitch,0.5)) ) white=sf.WhiteNoise(length) white=sf.ButterworthHighPass(white,pitch*2.0,2) white=sf.ButterworthLowPass(white,pitch*6.0,1) white=sf.FixSize(white) white=sf.Multiply(white,+signal) white=sf.LinearVolume(white,whiteAmount) signal=sf.LinearVolume(signal,1.0-whiteAmount) signal=sf.FixSize(sf.Mix(signal,white)) sq=sf.Mix( sf.PhasedSineWave(length,pitch*0.95,random.random()), sf.PhasedSineWave(length,pitch*1.05,random.random()) ) envb=sf.LinearShape((0,0.25),(a,0),(length,0)) sq=sf.Multiply(envb,sf.FixSize(sq)) enva=sf.LinearShape((0,0.75),(a,1),(length,1)) signal=sf.Multiply(enva,signal) signal=sf.Mix(sq,sf.FixSize(signal)) env=sf.LinearShape((0,0),(16,1),(length-16,1),(length,0)) signal=sf.Multiply(env,signal) sigs=[] bodies=[] if(pitch<128): bodies=bassIRs elif(pitch<440): bodies=celloIRs else: bodies=violinIRs if bright: bs=[] for b in bodies: bs.append(sf.Power(b,1.25)) bodies=bs signal=sf.Power(signal,1.5) for body in bodies: sigs.append(reverberate(+signal,+body)) -signal signal=sf.FixSize(sf.Mix(sigs)) return signal
sf.FixSize( sf.WaveShaper(-0.03 * q, 0.2 * q, 0, -1.0 * q, 0.2 * q, 2.0 * q, +sig))), sig) sig = sf.RBJPeaking(sig, 64, 2, 2) damp = sf.BesselLowPass(+sig, 2000, 1) sig = sf.FixSize(sf.Mix(damp, sig)) low = sf.BesselLowPass(+sig, 256, 4) m1 = sf.Magnitude(+low) low = sf.FixSize(low) low = sf.Saturate(low) m2 = sf.Magnitude(+low) low = sf.LinearVolume(low, m1 / m2) sig = sf.BesselHighPass(sig, 256, 4) sig = sf.Mix(low, sig) sig = highDamp(sig, 5000, 0.66) return sf.FixSize(sf.Clean(sig)) (left, right) = sf.ReadFile("temp/a.wav") left, right = (lowBoost(left), lowBoost(right)) left, right = (sf.Finalise(left), sf.Finalise(right)) left = excite(left, 0.5, 1.05, 1.5, 1.0) right = excite(right, 0.5, 1.05, 1.5, 1.0) #left,right = (highDamp(left,8000,0.5),highDamp(right,8000,0.5)) con = sf.ReadFile("temp/RCA_44BX_2.wav")[0] left = reverberate(left, +con) right = reverberate(right, +con) left = sf.Finalise(left) right = sf.Finalise(right) sf.WriteFile32((left, right), "temp/c.wav")