Example #1
0
    def makeArps(seg, oct=3, reps=4):
        arp_degrees = [1,2,3,5,8,9,10]
        if dsp.randint(0,1) == 0:
            arp_degrees.reverse()

        arp_degrees = rotate(arp_degrees, vary=True)
        arp_notes = tune.fromdegrees(arp_degrees[:reps], octave=oct, root='e')

        arps = []

        arp_count = 0
        for arp_length in seg:
            arp_length /= 2
            arp_pair = arp_notes[ arp_count % len(arp_notes) ], arp_notes[ (arp_count + 1) % len(arp_notes) ]

            stack = Waveset(rmx, limit=dsp.randint(5, 20), offset=dsp.randint(0, 100))
            stack.normalize()
            arp_one = oscs.Pulsar2d(stack, windows=['tri'], freq=arp_pair[0]*dsp.choice([1,2]), pulsewidth=dsp.win('rnd', 0.1, 1)).play(arp_length).env('hannout').taper(0.01) * dsp.rand(0.02, 0.2)

            arp_two = oscs.Pulsar2d(stack, windows=['tri'], freq=arp_pair[1]*dsp.choice([1,2]), pulsewidth=dsp.win('rnd', 0.1, 1)).play(arp_length).env('hannout').taper(0.01) * dsp.rand(0.02, 0.2)
            arp_one.dub(arp_two)
            arps += [ arp_one ]
            arp_count += 2

        return dsp.join(arps).env('rnd').pan(dsp.rand())
Example #2
0
def make(drum, pat, lengths):
    events = [ [pat[i], lengths[i]] for i in range(len(pat)) ]

    if len(events) > 0:
        out = dsp.join([ drum(event[0] * 0.3, event[1]) for event in events ])
    else: 
        print(lengths, pat)
        out = dsp.buffer(length=sum(lengths))

    return out
Example #3
0
    def makeGrains(snd):
        envs = ['tri', 'phasor', 'rsaw', 'sine', 'hann']
        grains = []
        for g in snd.grains(dsp.MS*20, dsp.MS*90):
            g = g.env('hann').pan(dsp.rand()).taper(dsp.MS*4)
            grains += [ g ]

        rgrains = []
        while len(grains) > 0:
            r = grains.pop(dsp.randint(0, len(grains)-1))
            rgrains += [ r ]

        out = dsp.join(rgrains)
        out = out.env(dsp.choice(envs))

        return out
Example #4
0
def hihat(amp, length):
    if amp == 0:
        return dsp.buffer(length=length)

    def hat(length):
        lowf = dsp.rand(6000, 11000)
        highf = dsp.rand(11000, 17000)

        if dsp.rand() > 0.5:
            length *= 0.05
        
        out = bln(length, lowf, highf)
        out = out.env(dsp.choice(['rsaw', 'phasor', 'hannout']))

        return out

    if dsp.rand() > 0.5:
        out = dsp.join([ hat(length / 2), hat(length / 2) ])
    else:
        out = hat(length)

    return out
Example #5
0
# Add a butterworth lowpass with a 3k cutoff -- multiply output by 0.5 to attenuate signal to 50%
out = fx.lpf(out, 3000) * 0.5
out.write('docs/tutorials/renders/002-hats-slipping-on-ice.flac')


def makekick(length=0.25):
    out = noise.bln('square', length,
                    [dsp.rand(80, 100), dsp.rand(50, 100)],
                    [dsp.rand(150, 200), dsp.rand(50, 70)])
    out = fx.fold(out, amp=dsp.win('saw', 1, dsp.rand(6, 10)))
    out = fx.lpf(out, 200).vspeed([1, 0.5])
    return out.env('pluckout').taper(0.02) * dsp.rand(0.6, 1)


kick = dsp.join([makekick().pad(end=0.2)
                 for _ in range(8)])  # render a few kicks
kick.write('docs/tutorials/renders/002-kick.flac')


def makeclap(length=dsp.MS * 80):
    lowhz = dsp.win('rnd', 3000, 6000)
    highhz = dsp.win('rnd', 2000, 8000)
    return noise.bln('tri', length, lowhz, highhz).env(pluckout)


clap = dsp.join([makeclap().pad(end=0.2)
                 for _ in range(8)])  # render a few claps
clap.write('docs/tutorials/renders/002-clap.flac')

from pippi import shapes
Example #6
0
def stutter(sounds):
    grains = []
    for g in sounds.grains(dsp.MS*1, dsp.MS*200):
        g.taper(dsp.MS*4).pad(end=dsp.MS*dsp.rand(50, 250))
        grains += [ g ]
    return dsp.join(grains)