Source

toysynth-example / Example01.py

# -*- coding: utf-8 -*-
from Components import Config
from Components import SineWaveOscillator
from Components import SquareWaveOscillator
from Components import SawWaveOscillator
from Components import Amplifeir
from Components import Clock
from Components import Renderer
from Components import WaveFileSink


def sine_test():
#    osc = SineWaveOscillator(frequency=220.0)
    osc = SineWaveOscillator(frequency=16000.0)
    amp = Amplifeir(source=osc, gain=Config.MaxGain, attenuate=1.0)
    sink = WaveFileSink(output_file_name="output.wav")

    clock = Clock(end=Config.SampleRate)

    renderer = Renderer(clock=clock, source=amp, sink=sink)
    renderer.do_rendering()

def square_test():
    osc = SquareWaveOscillator(frequency=440.0)
    amp = Amplifeir(source=osc, gain=Config.MaxGain, attenuate=1.0)
    sink = WaveFileSink(output_file_name="output.wav")

    clock = Clock(end=Config.SampleRate)

    renderer = Renderer(clock=clock, source=amp, sink=sink)
    renderer.do_rendering()

def saw_test():
    """ 矩形波 周波数440はラの音。 220にすると1オクターブ下
    """
#    osc = SawWaveOscillator(frequency=440.0)
    osc = SawWaveOscillator(frequency=440.0)
    amp = Amplifeir(source=osc, gain=Config.MaxGain, attenuate=1.0)
    sink = WaveFileSink(output_file_name="output.wav")

    clock = Clock(end=Config.SampleRate * 2)

    renderer = Renderer(clock=clock, source=amp, sink=sink)
    renderer.do_rendering()


if __name__ == "__main__":
    sine_test()
#    square_test()
#    saw_test()