コード例 #1
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
コード例 #2
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
コード例 #3
0
ファイル: pyoglue.py プロジェクト: adrn/GalaxySynth
def simple_sine(delay, note, amp, dur=1.):

    # -- Nice, angelic --
    env = pyo.Adsr(attack=dur*0.1, sustain=0.707, decay=0.1*dur, release=dur*0.5,
                   dur=dur*0.9, mul=amp).play(delay=delay, dur=2.5*dur)
    osc = pyo.Sine(freq=pyo.midiToHz(note), mul=env).mix(1)
    osc.out(delay=delay, dur=dur)

    return osc, env
コード例 #4
0
def simple_sine(delay, note, amp, dur=1.):

    # -- Nice, angelic --
    env = pyo.Adsr(attack=dur * 0.1,
                   sustain=0.707,
                   decay=0.1 * dur,
                   release=dur * 0.5,
                   dur=dur * 0.9,
                   mul=amp).play(delay=delay, dur=2.5 * dur)
    osc = pyo.Sine(freq=pyo.midiToHz(note), mul=env).mix(1)
    osc.out(delay=delay, dur=dur)

    return osc, env
コード例 #5
0
ファイル: ga.py プロジェクト: thanhmaikmt/pjl
    def callback(self,i):
        
#        if i == self.n_beats_bar :
#            self.barCount += 1
#            if self.barCount >= self.data.n_bars:
#                self.barCount = 0
#       
#        print  i         
#        print  self.pitch_seq
#        print  self.pitch_map
#        
        ip=self.pitch_seq[i]
        self.pitch.setValue(pyo.midiToHz(self.pitch_map[ip]))    #(i+self.barCount*self.n_per_bar)%len(self.pitch_seq)]]))

        amp=(self.amp_map[self.amp_seq[i]]-self.data.amp_thresh)/(1.0-self.data.amp_thresh)
        amp=max(0,amp)
        
        self.amp.setValue(amp)  # (i+self.barCount*self.n_per_bar)%len(self.amp_seq)]])
コード例 #6
0
ファイル: pyoglue.py プロジェクト: adrn/GalaxySynth
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
コード例 #7
0
ファイル: ga.py プロジェクト: thanhmaikmt/pjl
 def rand(self):
 
     x=random.random()
  
     if self.scale == 'lin': 
         return self.min*x+self.max*(1.0-x)
        
     elif self.scale == 'log':
         K1=math.log(self.min)
         K2=math.log(self.max)-K1
         return math.exp(K1+K2*x)
     
     elif self.scale == 'int' or self.scale == 'choice':
         
         return random.randrange(self.min,self.max)
     
     elif self.scale == 'miditohertz':
         return pyo.midiToHz(random.randrange(self.min,self.max))
         
     else:
         print " I don't know how to do this "
コード例 #8
0
ファイル: pyoglue.py プロジェクト: adrn/GalaxySynth
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
コード例 #9
0
    def rand(self):

        x = random.random()

        if self.scale == 'lin':
            return self.min * x + self.max * (1.0 - x)

        elif self.scale == 'log':
            K1 = math.log(self.min)
            K2 = math.log(self.max) - K1
            return math.exp(K1 + K2 * x)

        elif self.scale == 'int' or self.scale == 'choice':

            return random.randrange(self.min, self.max)

        elif self.scale == 'miditohertz':
            return pyo.midiToHz(random.randrange(self.min, self.max))

        else:
            print " I don't know how to do this "
コード例 #10
0
 def __init__(self, key, verbose=False):
    fund = pyo.midiToHz(key)
    self.freqs = [i*fund for i in range(1,5)]
    self.ratios = [5,4,2,2]
    self.indices = [0]*4
    self.muls = [0.15, 0.15, 0.30, 0.22]
    self.muls = [mul/2 for mul in self.muls]
    self.dindices = [0]*4
    self.dmuls = [0]*4
    self.homewardBound = [False]*4
    self.voices = []
    for i in range(4):
       j=i+1
       voice=pyo.FM(carrier=[self.freqs[i],self.freqs[i]]).out()
       voice.setRatio(self.ratios[i])
       voice.setIndex(self.indices[i])
       voice.setMul(self.muls[i])
       self.voices.append(voice)
    self.ticker = 0
    self.jspeed=1./50
    self.dspeed=1./100
    self.verbose = verbose
    self.pressed = sortedset()
    self.handlers = {
                      'LJLR' : self.handle_LJLR,
                      'LJUD' : self.handle_LJUD,
                      'RJLR' : self.handle_RJLR,
                      'RJUD' : self.handle_RJUD,
                      'L1' : self.handle_L1,
                      'R1' : self.handle_R1,
                      'L2' : self.handle_L2,
                      'R2' : self.handle_R2,
                      'B1' : self.handle_B1,
                      'B2' : self.handle_B2,
                      'B3' : self.handle_B3,
                      'B4' : self.handle_B4,
                      'DPLR' : self.handle_DPLR,
                      'DPUD' : self.handle_DPUD,
                      }
コード例 #11
0
    def callback(self, i):

        #        if i == self.n_beats_bar :
        #            self.barCount += 1
        #            if self.barCount >= self.data.n_bars:
        #                self.barCount = 0
        #
        #        print  i
        #        print  self.pitch_seq
        #        print  self.pitch_map
        #
        ip = self.pitch_seq[i]
        self.pitch.setValue(
            pyo.midiToHz(self.pitch_map[ip])
        )  #(i+self.barCount*self.n_per_bar)%len(self.pitch_seq)]]))

        amp = (self.amp_map[self.amp_seq[i]] -
               self.data.amp_thresh) / (1.0 - self.data.amp_thresh)
        amp = max(0, amp)

        self.amp.setValue(
            amp)  # (i+self.barCount*self.n_per_bar)%len(self.amp_seq)]])
コード例 #12
0
 def __init__(self, note, duration, amp=1):
     self.note = note
     self.duration = duration
     self.amp = amp
     self.frequency = midiToHz(self.note)
コード例 #13
0
 def _cloud(self):
     self.amp.dur = 0.1
     freq = choice(midiToHz(self.notes))
     self.osc.freq = [freq, freq * 1.003]
     self.amp.play()
コード例 #14
0
 def handle_R2(self, value):
     if debug: print 'Melodizer, handle_R2: ', value
     dmidi = (self.add + value)*2/self.mul
     freq = pyo.midiToHz(self.key+self.scale(self.currentNote)+dmidi)
     self.voices[self.vn].setFreq(freq)
コード例 #15
0
 def play(self, note, amp):
     f = pyo.midiToHz(self.key + self.tonality.request(note))
     self.voices[note].play(f, amp)
コード例 #16
0
 def play(self, note, amp):
    f = pyo.midiToHz(self.key+self.tonality.request(note))
    vn = self.poly.request()
    self.voices[vn].play(f, amp)
コード例 #17
0
scale = [x[0] for x in [c3,d3,e3,g3,a3,c4,d4,e4,g4,a4,c0,c5]]
hexscale = [x[1] for x in [c3,d3,e3,g3,a3,c4,d4,e4,g4,a4,c0,c5]]
strscale = [x[2] for x in [c3,d3,e3,g3,a3,c4,d4,e4,g4,a4,c0,c5]]
notecoords = [x[3] for x in [c3,d3,e3,g3,a3,c4,d4,e4,g4,a4,c0,c5]]
Note = text(height=2,text="Note Played", pos=(0,0,0),align='center', depth=-0.3, color=color.green)
rt = shapes.rectangle(pos=(0,-3), width=11, height=1)
extrusion(shape=rt)
points(pos=[(0,-3,0)], size=35, color=color.red)
notepos = sphere(pos=(0,-3,0), radius=0.5, color=color.blue)
repeat=None
sleep(1)
s.start()
while True:
    r = xzToNote(get_coords())
    #print r
    y=midiToHz(scale[r])
    if repeat !=r:
        a = Sine(freq=y, mul=(1)).out()
        Note.text=strscale[r]
        print(strscale[r])
    repeat = r

    #Note.text=strscale[r]
    #notepos.pos=notecoords[r]
    #print(strscale[r])#,notecoords[r])
    #extrusion(shape=notept)
    #sleep(.25*[1,2,4][randint(0,2)])
s.stop()


コード例 #18
0
 def play(self, note, amp):
    f = pyo.midiToHz(self.key+self.scale(self.chord+triad(note)))
    vn = self.poly.request()
    self.voices[vn].play(f, amp)
コード例 #19
0
ファイル: sequencer.py プロジェクト: adelrune/Composition
 def __init__(self, note, duration, amp=1):
     self.note = note
     self.duration = duration
     self.amp = amp
     self.frequency = midiToHz(self.note)
コード例 #20
0
 def play(self, note, amp):
    f = pyo.midiToHz(self.key+self.tonality.request(note))
    self.voices[note].play(f, amp)
コード例 #21
0
 def play(self, note, amp):
     f = pyo.midiToHz(self.key + self.tonality.request(note))
     vn = self.poly.request()
     print vn
     self.voices[vn].play(f, amp)
コード例 #22
0
 def play(self):
     self.vn = self.poly.request()
     freq = pyo.midiToHz(self.key+self.scale(self.currentNote))
     self.voices[self.vn].play(freq, 0.25)
コード例 #23
0
c3=[48,0x84,"C3"]
d3=[50,0x44,"D3"]
e3=[52,0x24,"E3"]
g3=[55,0x14,"G3"]
a3=[57,0x0c,"A3"]
c4=[60,0x82,"C4"]
d4=[62,0x42,"D4"]
e4=[64,0x22,"E4"]
g4=[67,0x12,"G4"]
a4=[69,0x0A,"A4"]
#c5=72
scale = [x[0] for x in [c3,d3,e3,g3,a3,c4,d4,e4,g4,a4]]#,c5]
s.start()
for x in scale:
    y=midiToHz(x)
    a = Sine(freq=y, mul=(1)).out()
    sleep(2)
s.stop()
"""
#scale_degrees = [midiToHz(m+7) for m in [36,43.01,48,55.01,60]]

#print scale_degrees
#for x in scale_degrees:

while True:
#for x in range(40,500):
    x = int(raw_input("Enter midi number: "))
    x=midiToHz(x)
    a = Sine(freq=x, mul=(1)).out()
    #b = Sine(freq=(x+3), mul=(1)).out()
コード例 #24
0
import matplotlib.pyplot as plt
import numpy as np

from pyo import midiToHz, Choice, Port, Sine, SuperSaw, FM, Delay, STRev  # pylint: disable=E0611

from load_data import fetch_data_iter
from pyo_server import server as s

means = [np.mean(m) for m in fetch_data_iter]
range_ = [(i - np.min(means)) / np.ptp(means) for i in means]
means = [(i * 100) for i in range_]

pitches = [midiToHz(m) for m in means]

# Add more voices here to generate a simple counterpoint
choice = Choice(choice=pitches, freq=1)

# Two simple instruments
lfdetune = Sine(freq=0.1, mul=.07, add=.07)
instrument1 = SuperSaw(freq=choice, detune=lfdetune, mul=.8)
lfind = Sine(freq=0.5, phase=0.5, mul=3, add=3)
instrument2 = FM(carrier=choice, ratio=1.0025, index=lfind, mul=.8)

# Send instruments output to delay
src_sum = instrument1.mix(2) + instrument2.mix(2)
lfdel = Sine(.1, mul=.003, add=.005)
comb = Delay(src_sum, delay=lfdel, feedback=.5)

# Send two resulting signals to reverb and output
out_sum = src_sum + comb
rev = out_sum.out()
コード例 #25
0
def nucleotide_to_hz(nucleo):
    # first make it a midi.  This is cute
    midi_value = nucleotide_midi[nucleo]
    return midiToHz(midi_value)
コード例 #26
0
ファイル: sequencer.py プロジェクト: 316k/BrainSeqs
 def frequency(self):
     return midiToHz(self.note)