functional waveforms

The FunctionalSine waveform in the base library is a sinusoidal waveform. It is defined as a functional expression: sin(2*pi*(f*t+p+m)). f describes the instantaneous frequency (in Hertz), t is the time in seconds since the beginning of the piece, p is the phase at origin (this factor is required to allow joining smoothly sound segments), and, finally, m is the frequency modulation factor to insert, for those sounds that are modulated in frequency.

To create a new functional waveform, select the FunctionalSine waveform and press "+" in the waveform editor to create an editable waveform. You can edit the text field to define this waveform using any mathematical expression of the f, t, p and m parameters that takes its values in the domain [-1..1]. For the purpose of sound generation, it makes sense to stick only to periodic or quasi-periodic functions of period 1/f...

Some examples to trigger your imagination:

The mathematically inclined will find plenty of more sophisticated ideas to dig on Bill Schottstaedt's CLM page.

You may want to keep the "Messages" window open when editing your formula, to spot potential entry errors.

The functions available to define expressions is available in the Java documentation of the Math class, as well as the common Java operators: +,-,*,/,?:,<,>,<=,>=,==,!=,&&,||,(,) etc...