synthesizer package

Submodules

synthesizer.player module

class synthesizer.player.Player(rate=44100)

Bases: object

enumerate_device()
open_stream(device_name=None, device_index=-1)

open audio output stream

if neither device_name nor device_index is specified, default output device will be opened.

Parameters:
  • device_name (str) – part of device name (ex: hw:0,0)
  • device_index (int) – index of device
play_wave(wave)

play normalized wave

Parameters:wave (numpy.array) – normalized wave

synthesizer.synthesizer module

class synthesizer.synthesizer.Oscillator(waveform, volume, freq_transpose=1.0)

Bases: object

Virtual oscillator object

Parameters:
  • _waveform (Waveform) – waveform of oscillator
  • _volume (float) – amplitude of generated wave (0.1 - 1.0)
  • _freq_transpose (float) – transpose of frequency (for sub oscillator)
static gen_triang(t, width=0.5)
generate_wave(phases)
volume
class synthesizer.synthesizer.Synthesizer(osc1_waveform=<Waveform.sine: 'sine'>, osc1_volume=1.0, use_osc2=False, osc2_waveform=<Waveform.sine: 'sine'>, osc2_volume=0.3, osc2_freq_transpose=2.0, rate=44100)

Bases: object

Virtual analog synthesizer object

Parameters:
  • _osc1 (Oscillator) – main virtual oscillator
  • _osc2 ((Oscillator|None)) – sub virtual oscillator
generate_chord(freqs, length)

generate wave consists of multiple frequencies

Parameters:
  • freqs (list[float]) – list of frequencies or scales
  • length – legnth of wave (seconds)
Return type:

numpy.array

Returns:

normalized wave

generate_constant_wave(frequency, length)

generate wave with constant frequency

Parameters:
  • frequency ((float|str)) – frequency or scale of wave
  • length (float) – length of wave (seconds)
Return type:

numpy.array

Returns:

normalized wave

class synthesizer.synthesizer.Waveform

Bases: enum.Enum

sawtooth = 'sawtooth'
sine = 'sine'
square = 'square'
triangle = 'triangle'

synthesizer.writer module

class synthesizer.writer.Writer(rate=44100)

Bases: object

write_wave(file_path, wave)

write wave to a wav file

Parameters:
  • file_path (str) – relative / absolute path of wave file
  • wave (numpy.array) – normalized wave
write_waves(file_path, *waves)

write waves to a wav file

Parameters:
  • file_path (str) – relative / absolute path of wave file
  • waves (list[numpy.array]) – list of normalized waves

Module contents