def test_principle_tones(self): note = 110 intervals = range(1, 12) #intervals = [5] events = [] pos = 0 voice = 1 for interval in intervals: scale = slonimsky.principle_tones(interval) freqs = [ ((deg+12)//12, tune.JUST[deg % 12]) for deg in scale ] freqs = [ (r[1][0] / r[1][1]) * r[0] * note for r in freqs ] for freq in freqs: print(interval, freq) events += [dict( start=pos, length=0.5, freq=freq, amp=dsp.rand(0.5, 0.55), voice=voice, )] pos += 0.2 out = soundfont.playall("tests/sounds/florestan-gm.sf2", events) out = fx.norm(out, 0.75) out.write('tests/renders/slonimsky_intervals-1-12-principle-scales.wav')
def test_playall(self): events = [] pos = 0 length = 10 while pos < length: events += [ dict(start=pos, length=dsp.rand(0.2, 3), freq=30 * dsp.randint(1, 10), amp=dsp.rand(), voice=dsp.randint(0, 127)) ] pos += dsp.rand(0.01, 0.1) out = soundfont.playall("tests/sounds/florestan-gm.sf2", events) out = fx.norm(out, 0.5) out.write('tests/renders/soundfont_playall.wav')
def test_playall(self): events = [] pos = 0 length = 3 freqs = tune.degrees(list(range(1, 13))) while pos < length: events += [ dsp.event( onset=pos, length=dsp.rand(0.1, 3), freq=dsp.choice(freqs) * 2**dsp.randint(0, 3), amp=dsp.rand(), voice=dsp.randint(0, 127), ) ] pos += 0.25 out = soundfont.playall("tests/sounds/florestan-gm.sf2", events) out = fx.norm(out, 0.5) out.write('tests/renders/soundfont_playall.wav')