示例#1
0
 def __init__(self, sequence, amp=1, pan=0.5):
     BaseSynth.__init__(self, sequence, amp, pan)
     self.env = pyo.CosTable([(0,0.0000),(953,1.0000),(5737,0.7254),(8192,0.0000)])
     self.env_reader = pyo.TrigEnv(self.trig, self.env, dur=pyo.Max(self.dur, comp=0.3125))
     self.osc = pyo.LFO(type=2, freq=pyo.Noise(add=1, mul=0.3*self.freq), mul=0.5*self.env_reader)
     self.pre_filter = pyo.Biquad(self.osc, freq=191)
     self.disto_env = pyo.CosTable([(0,0.0000),(2118,0.2694),(8192,0.0000)])
     self.disto_env_reader = pyo.TrigEnv(self.trig, self.disto_env, dur=self.dur, add=0.7)
     self.disto = pyo.Disto(self.pre_filter, drive=self.disto_env_reader, mul=0.3)
     self.freq_env = pyo.CosTable([(0,0.0000),(1553,0.4767),(8192,0.0000)])
     self.freq_env_reader = pyo.TrigEnv(self.trig, self.freq_env, dur=self.dur, add=1000, mul=200)
     self.res_filter = pyo.Biquad(pyo.BrownNoise(mul=self.env_reader), q=6, freq=self.freq_env_reader, mul=0.9, type=2)
     self.panner = pyo.Pan(self.disto+self.res_filter, mul=self.master_amp, pan=self.master_pan)
     self.last_audio_object = self.panner
示例#2
0
 def __init__(self, sequence, amp=1, pan=0.5):
     BaseSynth.__init__(self, sequence, amp, pan)
     self.formant = [235,459,1105,2735,4115]
     self.env = pyo.CosTable([(0,0.0000),(1200,0.9793),(7062,0.7772),(8000,0.0000)])
     self.env_reader = pyo.TrigEnv(self.trig, self.env, dur=self.dur)
     self.source = pyo.LFO(freq=self.freq,mul=self.env_reader)
     self.eq = pyo.EQ(self.source ,freq=[self.freq], boost=20)
     self.ffilter = pyo.SVF(self.eq, type=0.5, freq=self.formant, q=10, mul=0.1)
     self.trans_env = pyo.CosTable([(0,0.0000),(388,0.3731),(2630,0.0518),(7821,0.0000),(8000,0.0000)])
     self.trans_env_reader = pyo.TrigEnv(self.trig, self.trans_env, dur=0.25)
     self.trans = pyo.Noise(mul=self.trans_env_reader)
     self.trans_filter = pyo.Biquad(self.trans, freq=400)
     self.trans_resonator = pyo.Biquad(self.trans_filter, q=31, freq=self.freq*2, mul=0.2)
     self.panner = pyo.Pan(pyo.Compress((self.ffilter+self.trans_resonator).mix(0), mul=self.master_amp,), pan=self.master_pan)
     self.last_audio_object = self.panner
示例#3
0
 def __init__(self, son):
     super().__init__()
     self.file = son
     self.son = pyo.SndTable(self.file)
     self.synth = pyo.TableRead(self.son, 1 / self.son.getDur(), 1).play()
     self.filter = pyo.Biquad(self.synth)
     self.verb = pyo.WGVerb(self.filter).mix(2)
示例#4
0
def filtered_saw(delay, note, amp, dur=1.):
    t = pyo.SawTable(order=15).normalize()

    dur *= 2.

    env = pyo.Fader(fadein=.02, fadeout=0.02, dur=dur * 0.9,
                    mul=amp).play(dur=2.5 * dur, delay=delay)

    adsr = pyo.Adsr(attack=dur * 0.05,
                    decay=0.05 * dur,
                    sustain=0.3,
                    release=dur * 0.7,
                    dur=dur * 0.9,
                    mul=amp).play(dur=2.5 * dur, delay=delay)
    osc = pyo.Osc(t, freq=pyo.midiToHz(note), mul=adsr).mix(1)

    rev = pyo.Freeverb(osc, size=1., damp=0.5, bal=1.,
                       mul=env).play(dur=2.5 * dur, delay=delay)
    # rev.out(delay=delay, dur=dur)

    eq = pyo.Biquad(rev, freq=800, q=1., type=0).play(dur=2.5 * dur,
                                                      delay=delay)
    eq.out(delay=delay, dur=dur)
    # eq = None

    return osc, env, rev, eq
示例#5
0
def filtered_square(delay, note, amp, dur=1.):

    a = np.sqrt(np.linspace(1., 0., 15))
    t = pyo.HarmTable(a.tolist())

    dur *= 2.

    env = pyo.Fader(fadein=.02, fadeout=0.02, dur=dur * 0.9,
                    mul=amp).play(dur=2.5 * dur, delay=delay)

    adsr = pyo.Adsr(attack=dur * 0.05,
                    sustain=0.707,
                    decay=0.1 * dur,
                    release=dur * 0.7,
                    dur=dur * 0.9,
                    mul=amp).play(dur=2.5 * dur, delay=delay)
    osc = pyo.Osc(t, freq=pyo.midiToHz(note), mul=adsr).mix(1)

    rev = pyo.Freeverb(osc, size=1., damp=0.5, bal=1.,
                       mul=env).play(dur=2.5 * dur, delay=delay)
    # rev.out(delay=delay, dur=dur)

    eq = pyo.Biquad(rev, freq=500, q=1., type=2).play(dur=2.5 * dur,
                                                      delay=delay)
    eq.out(delay=delay, dur=dur)
    # eq = None

    return osc, env, rev, eq
示例#6
0
    def __init__(self, sequence, amp=1, pan=0.5):
        BaseSynth.__init__(self, sequence, amp, pan)
        self.env = pyo.CosTable([(0,0.0000),(353,1.0000),(4166,0.6528),(8000,0.0000)])
        self.env_reader = pyo.TrigEnv(self.trig, self.env, dur=pyo.Max(self.dur, comp=0.3125))
        self.sine_freqs = []
        for i in range(-1,1):
            self.sine_freqs.extend([self.freq*(1+0.001*i), self.freq*2*(1+0.002*i), self.freq*3*(1+0.002*i),self.freq*5*(1+0.002*i)])

        self.osc = pyo.Sine(freq=self.sine_freqs, mul=[self.env_reader, self.env_reader*0.2, self.env_reader*0.2, self.env_reader*0.1]*3)

        self.trans_env = pyo.CosTable([(0,0.0000),(123,0.0777),(812,0.0570),(2083,0.0052),(8000,0.0000)])
        self.trans_env_reader = pyo.TrigEnv(self.trig, self.trans_env, dur=0.25)
        self.trans = pyo.Noise(mul=self.trans_env_reader)
        self.trans_filter = pyo.Biquad(self.trans, freq=1690)
        self.trans_resonator = pyo.Biquad(self.trans_filter, q=31, freq=self.freq*4)
        self.panner = pyo.Pan((self.trans_resonator+self.osc).mix(0), mul=(0.1)*self.master_amp, pan=self.master_pan)
        self.last_audio_object = self.panner
示例#7
0
 def __init__(self):
    self.trig = pyo.Trig()
    decaytable = pyo.LinTable(list=[(0,0), (100, 1.0), (8191, 0.0)])
    self.env = pyo.TrigEnv(self.trig, table=decaytable, dur=0.6, mul=[0,0])
    self.spectrum = [1.]+[0.]*15  # 16 total
    self.waveform = pyo.HarmTable(self.spectrum)
    self.osc = pyo.Osc(self.waveform, freq=[0.,0.], mul=self.env)
    self.filter = pyo.Biquad(self.osc, freq=[300.,300.], type=2, q=2.)
    self.output = self.filter.out()
示例#8
0
    def __init__(self, sequence, amp=1, pan=0.5):
        BaseSynth.__init__(self, sequence, amp, pan)
        self.env = pyo.CosTable([(0,0.0000),(123,0.9896),(2701,0.4870),(6479,0.2746),(8192,0.0000)])
        self.env_reader = pyo.TrigEnv(self.trig, self.env, dur=pyo.Max(self.dur, comp=0.3125))
        sine_freqs = []
        for i in range(-1,1):
            freqs = [self.freq*j*(1+0.008*i) for j in range(1,8)]
            sine_freqs.extend(freqs)
        harm_amps = [1,0.3,0.4,0.2,0.1,0.04,0.04,0.03,0.02]
        self.osc = pyo.Sine(freq=sine_freqs, mul=[self.env_reader*harm_amps[i] for i in range(8)])

        self.trans_env = pyo.ExpTable([(0,0.3938),(8192,0.0000)])
        self.trans_env_reader = pyo.TrigEnv(self.trig, self.trans_env, dur=0.25)
        self.trans = pyo.Noise(mul=self.trans_env_reader)
        self.trans_filter = pyo.Biquad(self.trans, freq=1690)
        self.trans_resonator = pyo.Delay(pyo.Denorm(self.trans_filter), feedback=0.90, delay=(self.freq**-1))
        self.chorus = pyo.Chorus(self.trans_resonator, depth=0.13, feedback=0.84)
        self.master_filter = pyo.Biquad((self.chorus+self.osc).mix(0), freq=3900)
        self.panner = pyo.Pan(self.master_filter, mul=(0.1)*self.master_amp, pan=self.master_pan)
        self.last_audio_object = self.panner
示例#9
0
    def build(self):
        self.input = self.pheno.filterIns.get(self.data.input_id)
        self.mul = self.data.mul
        #self.freq_mod=(1.0+self.pheno.envelopes.get(self.data.freq_input).envelope)*self.data.freq
        self.filt = pyo.Biquad(
            self.input.src,
            freq=self.data.freq,  #_mod,
            type=self.data.type,
            q=self.data.q,
            mul=self.mul)

        self.out = pyo.SPan(self.filt).out()
示例#10
0
    def __init__(self):
        super().__init__()

        self.sine = pyo.CosTable([(0, 0), (100, 1), (1000, .25), (8191, 0)])
        self.square = pyo.SquareTable()
        self.saw = pyo.SawTable()
        self.synth = pyo.NewTable(8192 / 44100)

        self.pointer = pyo.Sig(0)
        self.morph = pyo.TableMorph(self.pointer, self.synth,
                                    [self.sine, self.square, self.saw])
        self.osc = pyo.Osc(self.synth, 440)
        self.filter = pyo.Biquad(self.osc)
        self.verb = pyo.WGVerb(self.filter).mix(2)
示例#11
0
    def __init__(self):
        super().__init__()

        self.wv1 = pyo.CosTable([(0, 0), (4060, 1), (8191, 0)])
        self.wv2 = pyo.CosTable([(0, 0.00), (2074, 0.59), (4060, 1.00),
                                 (8191, 0.00)])
        self.wv3 = pyo.CosTable([(0, 0.00), (2074, 0.59), (4060, 1.00),
                                 (6117, 0.60), (8191, 0.00)])
        self.wv4 = pyo.CosTable([(0, 0.00), (2039, 0.29), (2039, 0.60),
                                 (4060, 1.00), (6117, 0.60), (6117, 0.30),
                                 (8191, 0.00)])
        self.wv5 = pyo.CosTable([(0, 0.00), (2039, 0.29), (2039, 0.60),
                                 (3255, 0.29), (4060, 1.00), (4900, 0.30),
                                 (6117, 0.60), (6117, 0.30), (8191, 0.00)])
        self.wv6 = pyo.CosTable([(0, 0.00), (769, 1.00), (2039, 0.29),
                                 (2039, 0.60), (3255, 0.29), (4060, 1.00),
                                 (4900, 0.30), (6117, 0.60), (6117, 0.30),
                                 (7333, 1.00), (8191, 0.00)])
        self.wv7 = pyo.CosTable([(0, 0.00), (769, 0.00), (769, 1.00),
                                 (2039, 0.29), (2039, 0.60), (3255, 0.29),
                                 (4060, 1.00), (4900, 0.30), (6117, 0.60),
                                 (6117, 0.30), (7333, 1.00), (7333, 0.00),
                                 (8191, 0.00)])
        self.wv8 = pyo.CosTable([(0, 0.00), (769, 0.00), (769, 1.00),
                                 (2039, 0.29), (2039, 0.60), (3255, 0.29),
                                 (3255, 1.00), (4900, 1.00), (4900, 0.30),
                                 (6117, 0.60), (6117, 0.30), (7333, 1.00),
                                 (7333, 0.00), (8191, 0.00)])
        self.synth = pyo.NewTable(8192 / 44100)

        self.pointer = pyo.Sig(0)
        self.morph = pyo.TableMorph(self.pointer, self.synth, [
            self.wv1, self.wv2, self.wv3, self.wv4, self.wv5, self.wv6,
            self.wv7, self.wv8
        ])
        self.osc = pyo.Osc(self.synth, 440)
        self.filter = pyo.Biquad(self.osc)
        self.verb = pyo.WGVerb(self.filter).mix(2)
示例#12
0
 def __init__(self):
     self.synth = pyo.Sine(440)
     self.filter = pyo.Biquad(self.synth)
     self.verb = pyo.WGVerb(self.synth).mix(2)
示例#13
0
import pyo

s = pyo.Server(audio='portaudio', nchnls=1).boot()
s.start()

a = pyo.Input(chnl=0)
fol = pyo.Follower(a, freq=30, mul=4000, add=40)
f = pyo.Biquad(a, freq=fol, q=5, type=2).out()

s.gui()
示例#14
0
        for k in np.arange(0, 20, 1):
            freq_new = (2 * k + j) * f0
            freq_ar.append(freq_new)
            for Q in np.arange(1, 11, 1):
                for filter_f in np.arange(1, 11, 1):
                    # Set sound parameters
                    sound = 'set1_' + str(int(j * 10)) +  '_' \
                        + str(int(k)) + '_' \
                        + str(int(Q)) + '_' \
                        + str(int(filter_f)) + '_' \
                        + '.wav'

                    s.recordOptions(dur=dur,
                                    filename=os.path.join(folder_path + sound),
                                    fileformat=fformat,
                                    sampletype=samptype)

                    # Create sound
                    sin_sig = pyo.Sine(freq=freq_ar, mul=1)
                    sig_filtered = pyo.Biquad(sin_sig,
                                              freq=float(filter_f * sr /
                                                         (2 * 100)),
                                              q=float(Q),
                                              type=2).out()

                    # start the render
                    s.start()
                    # cleanup
                    s.recstop()
        #            s.shutdown()
示例#15
0
trigs = []
trigs.append(pyo.Metro(dur))
trigs.append(pyo.SDelay(trigs[0], delay=delay1))

trigFuncs = []
for i in range(len(trigs)):
    trigFuncs.append(pyo.TrigFunc(trigs[i], trighandler, arg=i))

freq = pyo.Sig(400)

on = pyo.Sig(0)

e = pyo.MidiAdsr(on, attack=0.001, decay=0.005, sustain=0.70, release=0.010)

hifreq = srate

b1 = pyo.LFO(freq=freq, mul=e)

v = pyo.Biquad(input=b1, freq=1000, q=2, type=2).out()

#
#f1.ctrl()
#f2.ctrl()
#f3.ctrl()
b1.ctrl()

e.ctrl()
v.ctrl()
trigs[0].play()

s.gui(locals())
示例#16
0
 def __init__(self):
     super().__init__()
     self.son = pyo.Input(1)
     self.synth = pyo.Harmonizer(self.son, 1)
     self.filter = pyo.Biquad(self.synth)
     self.verb = pyo.WGVerb(self.filter).mix(2)
示例#17
0
 def __init__(self):
     super().__init__()
     self.noi = pyo.Noise()
     self.synth = pyo.Waveguide(self.noi, 200, .7)
     self.filter = pyo.Biquad(self.synth)
     self.verb = pyo.WGVerb(self.filter).mix(2)