def __init__(self, notes=[], tempo=96): self.notes = [note.frequency for note in notes] self.times = [note.time(tempo) for note in notes] self.amps = [note.amp for note in notes] self.tempo = tempo self._metro = Metro() self.amp = Iter(self._metro, self.amps, init=self.amps[0]) self.time = Iter(self._metro, self.times, init=self.times[0]) self._metro.setTime(self.time) self.signal = Iter(self._metro, self.notes) #triggers are only sent when amp is >0 self.trigger = Ceil(self.amp * self._metro)
self._reson1Env.play(dur, delay) self._reson2Env.play(dur, delay) self._amp1Env.play(dur, delay) self._amp2Env.play(dur, delay) return PyoObject.out(self, chnl, inc, dur, delay) # Run this script to test the Aqueous class. if __name__ == "__main__": from pyo import Delay, Metro, Server, Snap, TrigXnoiseMidi, WGVerb, Pattern s = Server(duplex=0).boot() s.setAmp(1.0) s.start() t = 3.776 metroAqueous = Metro(time=t * 2).play() noteAqeous = TrigXnoiseMidi(metroAqueous, dist=0, mrange=(42, 83)) snapAqueous = Snap(noteAqeous, choice=[0, 2, 4, 5, 7, 9, 11], scale=1) a = Aqueous(snapAqueous, dur=t * 0.75, mul=0.9) def noteOn(): a.play() playAqueous = Pattern(function=noteOn, time=t * 2).play() delay = Delay(a, delay=t * 0.75, feedback=0.6, maxdelay=t * 0.75, mul=0.445) wetdry = delay + a d = WGVerb(wetdry,
ESC = 27 PLUS = 43 MINUS = 45 notes1 = ['a', 'b', 'c'] notes2 = ['d', 'g', 'h'] notes3 = ['e', 'f', 'i', 'j'] screen = pygame.display.set_mode((800, 600)) run = True server = Server().boot() server.start() met = Metro(.125, 12).play() players.append(Player(met, notes1)) players.append(Player(met, notes2)) players.append(Player(met, notes3)) while run: for event in pygame.event.get(): if event.type == pygame.KEYUP: for player in players: player.note_off(chr(event.key)) if event.key == ESC: run = False break if event.key == PLUS:
# <http://code.google.com/p/pyo>. # Latest version always available at <http://gist.github.com/tildebyte>. # Copyright (C) 2014 Ben Alkov <*****@*****.**> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version <http://www.gnu.org/licenses/>. from pyo import Delay, Snap, Metro, TrigXnoiseMidi, WGVerb from ground_state.pyo.instruments.whale import Whale from ground_state.pyo.utils.tempo import Tempo from ground_state.pyo.utils.dbToAmp import dbToAmp from ground_state.pyo.utils.serverSetup import serverSetup t = Tempo(63.5) # OSX s = serverSetup(2, 192, 'coreaudio') metro = Metro(time=t.whole * 4).play() note = TrigXnoiseMidi(metro, dist=0, mrange=(30, 41)) snap = Snap(note, choice=[0, 2, 4, 5, 7, 9, 11], scale=1) w = Whale(snap, metro, dur=t.whole, mul=0.9) delay = Delay(w, delay=t.whole, feedback=0.64, maxdelay=t.whole, mul=dbToAmp(-6)) wetdry = delay + w d = WGVerb(wetdry, feedback=[0.73, 0.76], cutoff=5000, bal=dbToAmp(-12.04), mul=dbToAmp(-10.5)).out() s.gui(locals())
# (at your option) any later version <http://www.gnu.org/licenses/>. from pyo import Delay, Metro, Pattern, Snap, STRev, TrigXnoiseMidi # iPython: %cd \path\to\pyo\files from ground_state.pyo.instruments.aqueous import Aqueous from ground_state.pyo.instruments.whale import Whale from ground_state.pyo.utils.tempo import Tempo from ground_state.pyo.utils.dbToAmp import dbToAmp from ground_state.pyo.utils.serverSetup import serverSetup t = Tempo(63.5) # q=944ms, w=3.776s # Windows # server = serverSetup(10, 700) # OSX server = serverSetup(2, 192, 'coreaudio') metroWhale = Metro(time=t.whole * 4).play() metroAqueous = Metro(time=t.whole).play() noteWhale = TrigXnoiseMidi(metroWhale, dist=0, mrange=(30, 41)) noteAqeous = TrigXnoiseMidi(metroAqueous, dist=0, mrange=(42, 83)) snapWhale = Snap(noteWhale, choice=[0, 2, 4, 5, 7, 9, 11], scale=1) snapAqueous = Snap(noteAqeous, choice=[0, 2, 4, 5, 7, 9, 11], scale=1) whale = Whale(snapWhale, metroWhale, dur=t.whole, mul=dbToAmp(-9.0)) aqueous = Aqueous(snapAqueous, dur=t.whole * 2, mul=dbToAmp(-12.0)) def noteOn(): aqueous.play() playAqueous = Pattern(function=noteOn, time=t.whole * 2).play() delayWhale = Delay(whale,