Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
    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")
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
            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")