def makeOnsets(length, wobble, div, num_beats, offset=False): if offset: offset = dsp.randint(0, 3) else: offset = 0 pattern = dsp.eu(num_beats, dsp.randint(1, num_beats/div), offset) dsp.log(pattern) if wobble: points = [ dsp.mstf(100, 500) for _ in range(dsp.randint(2, 8)) ] plength = sum(points) mult = length / float(plength) onsets = curves.bezier(points, num_beats) onsets = [ int(o * mult) for o in onsets ] else: beat = float(length) / num_beats num_beats = length / beat beat = int(round(beat)) onsets = [ beat * i for i in range(int(round(num_beats))) ] return onsets
def makeOnsets(length, wobble, div, num_beats, offset=False): if offset: offset = dsp.randint(0, 3) else: offset = 0 pattern = dsp.eu(num_beats, dsp.randint(1, num_beats / div), offset) dsp.log(pattern) if wobble: points = [dsp.mstf(100, 500) for _ in range(dsp.randint(2, 8))] plength = sum(points) mult = length / float(plength) onsets = curves.bezier(points, num_beats) onsets = [int(o * mult) for o in onsets] else: beat = float(length) / num_beats num_beats = length / beat beat = int(round(beat)) onsets = [beat * i for i in range(int(round(num_beats)))] return onsets
# snares pattern = parseBeat(snarep) subseg = splitSeg(seg, 2) snares = makeBeat(pattern, subseg, makeSnare) # hats pattern = parseBeat(hatp) subseg = splitSeg(seg, 4) hats = makeBeat(pattern, subseg, makeHat) # stabs bar_length = dsp.randint(4, 13) num_pulses = dsp.randint(1, bar_length) pattern = dsp.eu(bar_length, num_pulses) pattern = dsp.rotate(pattern, vary=True) subseg = splitSeg(seg, 3) stabs = makeBeat(pattern, subseg, makeStab) # pulses pattern = parseBeat(pulsep) pulses = makeBeat(pattern, seg, makePulse) section = dsp.mix([ kicks, snares, stabs, hats, pulses ]) chord = [ dsp.randint(1, 9) for _ in range(dsp.randint(2,4)) ] long_chord = rhodesChord(sum(seg), tune.fromdegrees(chord, octave=dsp.randint(2,4), root=key), dsp.rand(0.6, 0.75)) long_chord = dsp.fill(long_chord, sum(seg))
layer += p layers += [layer] freqs = tune.fromdegrees([dsp.randint(1, 9) for _ in range(nlayers)], octave=1, root='a') for i, freq in enumerate(freqs): layers[i] = dsp.pine(layer, dsp.flen(layer) * 10, freq) section = dsp.fill(dsp.mix(layers), sectionlength) plen = dsp.randint(16, 32) pattern = dsp.eu(plen, dsp.randint(4, plen)) pattern = ['x' if h == 1 else '.' for h in pattern] beat = dsp.flen(section) / plen kicks = ctl.makeBeat(pattern, [beat for _ in range(plen)], makeKick) pattern = 'x..' rimshots = ctl.makeBeat(pattern, [dsp.flen(section) / 16 for _ in range(16)], makeRimshot) pattern = ctl.parseBeat('xxxx') pdiv = dsp.randint(32, 64) hats = ctl.makeBeat(pattern, [dsp.flen(section) / pdiv for _ in range(pdiv)], orc.hat.make)
p = dsp.amp(p, amp) p = dsp.pan(p, pan) layer += p layers += [ layer ] freqs = tune.fromdegrees([dsp.randint(1, 9) for _ in range(nlayers)], octave=1, root='a') for i, freq in enumerate(freqs): layers[i] = dsp.pine(layer, dsp.flen(layer) * 10, freq) section = dsp.fill(dsp.mix(layers), sectionlength) plen = dsp.randint(16, 32) pattern = dsp.eu(plen, dsp.randint(4, plen)) pattern = [ 'x' if h == 1 else '.' for h in pattern ] beat = dsp.flen(section) / plen kicks = ctl.makeBeat(pattern, [ beat for _ in range(plen) ], makeKick) pattern = 'x..' rimshots = ctl.makeBeat(pattern, [ dsp.flen(section) / 16 for _ in range(16) ], makeRimshot) pattern = ctl.parseBeat('xxxx') pdiv = dsp.randint(32, 64) hats = ctl.makeBeat(pattern, [ dsp.flen(section) / pdiv for _ in range(pdiv) ], orc.hat.make) out += dsp.mix([ hats, rimshots, kicks, section ]) dsp.write(out, '04-bumps_i')
hats = ctl.makeBeat(pattern, subseg, orc.hat.make) layers += [hats] if dsp.rand() < suiteguitarprob[segi]: pattern = ctl.parseBeat('x x') orc.suiteguitar.scale = orc.suiteguitar.makeScale() guitars = ctl.makeBeat(pattern, seg, orc.suiteguitar.make) layers += [guitars] if dsp.rand() < stabprob[segi]: bar_length = dsp.randint(4, 13) num_pulses = dsp.randint(1, bar_length) orc.rhodes.key = key pattern = dsp.eu(bar_length, num_pulses) pattern = dsp.rotate(pattern, vary=True) subseg = ctl.splitSeg(seg, 3) stabs = ctl.makeBeat(pattern, subseg, orc.rhodes.makeStab) layers += [stabs] if dsp.rand() < pulseprob[segi]: orc.rhodes.key = key pulsep = 'x..' pattern = ctl.parseBeat(pulsep) pulses = ctl.makeBeat(pattern, seg, orc.rhodes.makePulse) layers += [pulses] orc.rhodes.key = key