def playback5(self, file_path=icq_uh_oh): print('pb5') count = self.count fade = pyo.Fader(fadein=.1, fadeout=0.1, dur=3).play() select = random.random() snd = pyo.SndTable(file_path) env = pyo.HannTable() pos = pyo.Phasor(snd.getRate() * .25, random.random(), snd.getSize()) dur = pyo.Noise(.05, .1) g = pyo.Granulator( snd, env, [self.granulated_pitch, self.granulated_pitch + .001], pos, dur, 24, mul=fade) panner = pyo.Pan(g, outs=2, pan=random.random(), spread=random.random()).out() self.granulated_pitch -= .05 if self.granulated_pitch < .049: self.granulated_pitch = .05 time.sleep(fade.dur + .05) g.stop()
def playback5(self, file_path=icq_uh_oh): print('pb5') select = random.random() snd = pyo.SfPlayer(file_path, speed=1, loop=False, mul=5) panner = pyo.Pan(snd, outs=2, pan=random.random(), spread=random.random()).out() time.sleep(1.5)
def my_overtone_synth(fundemental_freq): ''' plays the decaying overtone series of the fundemental freqeuncy''' num_overtones = 10 amps = [1 / n for n in range(1, num_overtones)] freqs = [fundemental_freq * n for n in range(1, num_overtones)] signal = [] for n in range(num_overtones - 1): b = pyo.Sine([freqs[n]], mul=amps[n]) signal += [pyo.Pan(b, outs=2, pan=.5).out()] # panning to both sides return signal
def render(self): s = pyo.Server(audio="offline") s.boot() sndinfo = pyo.sndinfo(self.path) s.recordOptions(filename=self.complete_output_path, dur=sndinfo[1]) source = pyo.SfPlayer(self.path) source_envelope = pyo.Expseg(list( zip(self.source_envelope.times, self.source_envelope.levels)), exp=5) waveguide_envelope = pyo.Expseg( list( zip(self.waveguide_envelope.times, self.waveguide_envelope.levels)), exp=5, ) filter_envelope = pyo.Expseg( list(zip(self.filter_envelope.times, self.filter_envelope.levels)), exp=5, ) filter_q_envelope = pyo.Linseg( list( zip(self.filter_q_envelope.times, self.filter_q_envelope.levels))) waveguide = pyo.Waveguide( source, freq=self.frequencies, minfreq=self.minfreq, mul=self.waveguide_mul, dur=self.waveguide_dur, ) bandpass = pyo.Resonx( waveguide, self.frequencies, q=filter_q_envelope, stages=4, mul=self.bandpass_mul, ) lfo = pyo.Sine(freq=self.pan_lfo_frequency, mul=0.5, add=0.5) bandpass_pan = pyo.Pan(bandpass, outs=2, pan=lfo) filter_q_envelope.play() filter_envelope.play() source_envelope.play() waveguide_envelope.play() (bandpass_pan * filter_envelope).out() (waveguide * waveguide_envelope).out() (source * source_envelope).out() s.start()
def playback3(self, file_path=imsend_sound_path): snd = pyo.SndTable(file_path) env = pyo.HannTable() pos = pyo.Phasor(snd.getRate() * .25, 0, snd.getSize()) dur = pyo.Noise(.001, .1) g = pyo.Granulator(snd, env, [1, 1.001], pos, dur, 24, mul=self.env) panner = pyo.Pan(g, outs=2, pan=random.random(), spread=random.random()).out() time.sleep(self.env + 0.05) g.stop()
def __init__(self, sequence, amp=1, pan=0.5): BaseSynth.__init__(self, sequence, amp, pan) self.env = pyo.CosTable([(0,0.0000),(335,0.9948),(6920,0.6218),(8192,0.0000)]) self.env_reader = pyo.TrigEnv(self.trig, self.env, dur=self.dur) self.index_env = pyo.CosTable([(0,0.0000),(158,0.7668),(7662,0.0933),(8000,0.0000)]) self.index_env_reader = pyo.TrigEnv(self.trig, self.index_env, dur=self.dur, mul=7) self.trans_env = pyo.CosTable([(0,0.0000),(317,1.0000),(1430,0.1347),(8000,0.0000)]) self.trans_env_reader = pyo.TrigEnv(self.trig, self.trans_env, dur=0.25) self.trans = pyo.Lorenz(mul=self.trans_env_reader, chaos=1, pitch=0.265) self.source = pyo.FM(mul=self.env_reader,index=self.index_env_reader,ratio=2, carrier=self.freq) self.panner = pyo.Pan((self.source + self.trans).mix(0), mul=self.master_amp, pan=self.master_pan) self.last_audio_object = self.panner
def playback6(self): print('pb6') self.time_var = 20 self.fade = pyo.Fader(fadein=0.005, fadeout=10, dur=20).play() self.amp = pyo.SigTo(value=self.fade, time=0, init=0.0) self.freq = pyo.SigTo(2200, time=7, mul=[1, 1.005], init=2200) self.sig = pyo.RCOsc([self.freq, self.freq - 20], sharp=4, mul=self.amp) panner = pyo.Pan(self.sig, outs=2, pan=random.random(), spread=random.random()).out()
def playback1(self): freqs = self.message_translation self.env2 = pyo.Fader(fadein=.1, fadeout=1, dur=10.01).play() rand = pyo.Choice(choice=freqs, freq=[1, self.message_length]) osc = pyo.SuperSaw(freq=[rand, rand / 2, rand / 3], detune=.5, bal=0.8, mul=self.env2).out() d = pyo.Delay(osc, delay=[.2, .5, .75], feedback=.5, mul=self.env2) panner = pyo.Pan(d, outs=2, pan=random.random(), spread=random.random()).out() time.sleep(self.env2.dur + .001)
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
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
def playback4(self, file_path=imsend_sound_path): print('pb4') select = random.random() snd = pyo.SfPlayer(file_path, speed=1, loop=False, mul=5) rev = pyo.STRev(snd, inpos=select, revtime=4, cutoff=5000, bal=1, roomSize=4) panner = pyo.Pan(rev, outs=2, pan=random.random(), spread=random.random()).out() time.sleep(rev.revtime + .01) rev.stop()
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
def out(self, file_path=imsend_sound_path): if self.choice <= 0.33: self.section_one = Section_One(self.count) self.section_one.out() elif self.choice > .33 and self.choice <= .67: self.section_two = Section_Two(self.message, self.count) self.section_two.out() else: snd = pyo.SndTable(file_path) env = pyo.HannTable() pos = pyo.Phasor(snd.getRate() * .25, 0, snd.getSize()) dur = pyo.Noise(.001, .1) g = pyo.Granulator(snd, env, [1, 1.001], pos, dur, 24, mul=1) panner = pyo.Pan(g, outs=2, pan=random.random(), spread=random.random()).out() time.sleep(2) g.stop()
def playback2(self): print('pb2') fade = pyo.Fader(fadein=.1, fadeout=0.1, dur=10).play() glissando = pyo.SigTo(value=200, time=0.1, init=200) sinewave = pyo.SineLoop( freq=[glissando, glissando * 4 / 5, glissando * 4 / 3], feedback=.2, mul=fade) panner = pyo.Pan(sinewave, outs=2, pan=random.random(), spread=random.random()).out() def pick_new_freq(): glissando.value = pyo.Choice(choice=self.message_translation, freq=[1, 3]) pattern = pyo.Pattern(function=pick_new_freq, time=[.25, 1]).play() time.sleep(fade.dur + .05)
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
def playback2(self): print('pb2') fader = pyo.Fader(fadein=0.2, fadeout=0.2, dur=5, mul=.2) table = pyo.HarmTable([1, 2, 2, 5, 9]) glissando = pyo.SigTo(value=self.message_translation[0], time=0.1, init=self.message_translation[0]) osc = pyo.Osc( table=table, freq=[glissando / 2, (glissando - 1) / 2, (glissando + 100) / 2], mul=fader) panner = pyo.Pan(osc, outs=2, pan=random.random(), spread=random.random()).out() def pat(): freq = random.choice(self.message_translation) glissando.value = freq p = pyo.Pattern(pat, [self.message_length, .25, .75]).play() fader.play() time.sleep(fader.dur + .05) osc.stop()
# # https://github.com/belangeo/pyo/blob/master/pyo/lib/server.py # pyo.pa_list_devices() # list all audio devices # sys.exit() s = pyo.Server() s.setInputDevice(4) s.setOutputDevice(4) s.boot() s.start() time.sleep(1) # make sure server is booted # print('s.getNchnls() = %s' % s.getNchnls()) a1 = pyo.Input() p1 = pyo.Pan(a1).out() # d1 = pyo.Disto(p1, drive=0.15).out() # a2 = pyo.Input(chnl=0) # p2 = pyo.Pan(a2).out(chnl=1) # s2 = pyo.Server() # s2.setInputDevice(0) # s2.setOutputDevice(4) # s2.boot() # s2.start() # a2 = pyo.Input() # p2 = pyo.Pan(a2).out() # # print(s1.getStreams()) RECORDING = False
track_mixer_number, settings.PHYSICAL_OUTPUT2CHANNEL_MAPPING[physical_output], 1, ) logging.info("making pianoteq modulation object") PTEQ_MODULATOR = pianoteq.Modulator(MIDI_SYNTH.pianoteq_trigger, SERVER) logging.info("sending everything from the mixer to physical outputs") if CHANNELS == "multichannel": [MIXER[i][0].out(i) for i in settings.PHYSICAL_OUTPUT2CHANNEL_MAPPING.values()] elif CHANNELS == "quadraphonic": [MIXER[i][0].play() for i in settings.PHYSICAL_OUTPUT2CHANNEL_MAPPING.values()] PANNER = [ pyo.Pan(signal[0], outs=4, pan=[0, 0.35, 0.65, 1][i]).out() for signal, i in zip( MIXER, settings.PHYSICAL_OUTPUT2QUADRAPHONIC_PANNING.values() ) ] elif CHANNELS == "stereo": [MIXER[i][0].play() for i in settings.PHYSICAL_OUTPUT2CHANNEL_MAPPING.values()] PANNER = [ pyo.Pan(MIXER[data[0]][0], outs=2, pan=data[1]).out() for data in settings.PHYSICAL_OUTPUT2STEREO_PANNING.values() ] elif CHANNELS == "mono": [MIXER[i][0].out(0) for i in settings.PHYSICAL_OUTPUT2CHANNEL_MAPPING.values()]
# # https://github.com/belangeo/pyo/blob/master/pyo/lib/server.py # pyo.pa_list_devices() # list all audio devices # sys.exit() s = pyo.Server() s.setInputDevice(4) s.setOutputDevice(4) s.boot() s.start() time.sleep(1) # make sure server is booted # print('s.getNchnls() = %s' % s.getNchnls()) a1 = pyo.Input() p1 = pyo.Pan(a1) #.out() d1 = pyo.Disto(p1, drive=0.25).out() # a2 = pyo.Input(chnl=0) # p2 = pyo.Pan(a2).out(chnl=1) # s2 = pyo.Server() # s2.setInputDevice(0) # s2.setOutputDevice(4) # s2.boot() # s2.start() # a2 = pyo.Input() # p2 = pyo.Pan(a2).out() # # print(s1.getStreams()) RECORDING = False