Plotting waveforms

I am currently working on a new softsynth project and wanted to get some more immediate feedback of code changes to waveforms shapes, since most of the synthesis used in rogue are related to phase/waveform shaping.

Instead of plotting the waveforms via scripting tools like python or ruby, I decided to use Javascript for it. I set up a minimal table structure in the HTML document and plotted the waveforms via jquery, Flot and various phase to wave functions.

The HTML file is available here and it looks like this


The waveforms are categorized by synthesis types: VA for virtual analog, PD for Casio CZ style phase distortion, EL for various electronic waveforms and AS for additive synthesis.

The width controls the pulse width or distortion of the waveform and the tone field controls the brightness for additive synthesis. This combination gives me the possibility to try out new waveforms easily.

The functions used in the plot are referenced in the HTML document and take three arguments, the phase, the width and the tone. All parameters are from 0 to 1. The waveform plots are for 1.5 cycles.