def generate_wavetable(self): # Generate a simple sine wave t = np.linspace(0, 1, self.sample_rate, False) if self.wave_type == 'sine': wave = np.sin(2 * np.pi * t) elif self.wave_type == 'sawtooth': wave = 2 * (t - 0.5) return wave

R2R (Revolution to Raster) is a free, open-source alternative to Xfer Serum. It aims to replicate the features and sound quality of Serum.

class Wavetable: def __init__(self, sample_rate, wave_type): self.sample_rate = sample_rate self.wave_type = wave_type self.table = self.generate_wavetable()

import numpy as np