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')
Esempio n. 2
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')
Esempio n. 3
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')