Exemple #1
0
 def test_substitute_reversed(self):
     sound = SoundBuffer(filename='tests/sounds/linux.wav')
     waveset = Waveset(sound)
     rev = waveset.reversed()
     out = waveset.replace(rev)
     out = fx.norm(out, 1)
     out.write('tests/renders/waveset_substitute_reversed.wav')
Exemple #2
0
 def test_create_tukey(self):
     length = 10
     shape = dsp.win(shapes.win('sine', length=3), 0, 0.5)
     chord = tune.chord('i9', octave=2)
     out = dsp.buffer(length=length)
     for freq in chord:
         freq = dsp.wt('sinc', freq, freq * 4)
         l = Tukey(freq=freq, shape=shape).play(length)
         l = l.pan(dsp.rand())
         out.dub(l)
     out = fx.norm(out, 0.8)
     out.write('tests/renders/osc_tukey.wav')
Exemple #3
0
    def test_fft_process(self):
        snd = dsp.read('tests/sounds/guitar1s.wav')
        length = 2

        def cb(pos, real, imag):
            mag, arg = fft.to_polar(real, imag)
            mag = fx.lpf(mag, pos * 5000 + 100)
            return fft.to_xy(mag, arg)

        bs = dsp.win(shapes.win('sine'), 0.05, 0.3)
        out = fft.process(snd, bs, length, callback=cb)
        out = fx.norm(out, 1)
        out.write('tests/renders/fft_process.wav')
Exemple #4
0
    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')
Exemple #5
0
    def test_fft_transform(self):
        snd = dsp.read('tests/sounds/guitar1s.wav')
        snd2 = dsp.read('tests/sounds/LittleTikes-B1.wav').cut(0, 1)
        mod = dsp.buffer(dsp.win('sine', wtsize=len(snd))).remix(1).remix(2)

        # Transform
        real1, imag1 = fft.transform(snd)
        real2, imag2 = fft.transform(snd2)

        # Do stuff
        imag = real1 * real2
        real = imag1 * imag2

        mag, arg = fft.to_polar(real, imag)

        #mag = fx.lpf(mag, 100)
        real, imag = fft.to_xy(mag, arg)

        # Inverse Transform
        out = fft.itransform(real, imag)
        out = fx.norm(out, 1)
        out.write('tests/renders/fft_transform.wav')
Exemple #6
0
    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')
Exemple #7
0
    def test_onsets(self):
        snd = dsp.read('tests/sounds/rain.wav')

        onsets = mir.onsets(snd, 'specflux')
        self.assertEqual(len(onsets), 7)

        onsets = mir.onsets(snd, 'specflux', seconds=False)
        print(onsets)
        self.assertEqual(len(onsets), 7)

        segments = mir.segments(snd, 'specflux')
        self.assertEqual(len(segments), 7)

        out = dsp.buffer(length=7)
        pos = 0
        count = 1
        for segment in segments:
            segment = fx.norm(segment.env('pluckout').taper(0.05), 1)
            segment.write('tests/renders/mir_segment%02d.wav' % count)
            out.dub(segment, pos)
            pos += 1
            count += 1
        out.write('tests/renders/mir_segments.wav')
Exemple #8
0
 def test_delay(self):
     snd = dsp.read('tests/sounds/guitar10s.wav')
     snd = fx.delay(snd, 1, 0.5)
     snd = fx.norm(snd, 1)
     snd.write('tests/renders/fx_delay.wav')
Exemple #9
0
bars = dsp.win('sinc', 3, 40, 50)
total_length = sum(bars)

stems = {}
for stem, cb in ORC.items():
    stems[stem] = dsp.buffer(length=total_length)
    pos = 0
    print('STEM', stem)
    for i, l in enumerate(bars):
        l = 3 if l <= 0 else l
        bar = cb(l, pos, total_length)
        stems[stem].dub(bar, pos)
        pos += l      

    print('      %s normalize' % stem)
    stems[stem] = fx.norm(stems[stem], 1)
    print('      %s write' % stem)
    stems[stem].write('stem-%s.wav' % stem)

print()

print('MIXING', total_length)
out = dsp.buffer(length=total_length)
for stem, layer in stems.items():
    out.dub(layer)

print('COMPRESSING/WRITING', total_length)
out *= 10
out = fx.compressor(out, -10, 10)
out = fx.norm(out, 1)
out.write('amber-bars.wav')
Exemple #10
0
 def test_fold_osc(self):
     out = Fold('sine', freq=200, amp=[1, 10]).play(1)
     out = fx.norm(out, 1)
     out.write('tests/renders/osc_fold.wav')
Exemple #11
0
 def test_mdelay(self):
     snd = dsp.read('tests/sounds/guitar10s.wav')
     ndelays = 20
     snd = fx.mdelay(snd, [ random.triangular(0, 8) for _ in range(ndelays) ], 0.7)
     snd = fx.norm(snd, 1)
     snd.write('tests/renders/fx_mdelay.wav')