Skip to content

A software waveshaper for transforming a signal using an arbitrary shaping function.

License

Notifications You must be signed in to change notification settings

jenzy/WaveShaper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WaveShaper

A software waveshaper that can transform a signal using an arbitrary shaping function. The user can specify an arbitrary shaping function, either by intuitively manipulating some Bezier curves representing the shaping function or by specifying the mathematical definition of the shaping function.

Waveshaping

A waveshaper works by changing the amplitude of a signal. The amplitude of the output signal is determined by a shaping (transfer) function in relation to the amplitude of the input signal. Mathematically, the output signal s(t) is calculated as s(t) = f(x(t)), where f is the shaping function, and x(t) is the input signal. As the shaping function can be arbitrary a wide array of different effects can be implemented in this way.

An example of a shaping function. The input signal (left) is transformed by a soft-clipping shaping function (center) into the output signal (right). Piecewise polynomial input

Features

  • Load and play audio files (.wav, .mp3, .aiff, ...).
  • "On the fly" waveshaping.
  • Save waveshaping result to a .wav file.
  • Arbitrary shaping functions. Can be specified by:
    • Bezier curves manipulation,
    • piecewise polynomials, or
    • piecewise functions.
  • Shaping function visualisation.
  • Undo/redo.
  • Oversampling.

Screenshots

The waveshaper and Bezier curves manipulation.
The waveshaper

Piecewise polynomial input.
Piecewise polynomial input

Piecewise function input.
Piecewise polynomial input

Libraries

About

A software waveshaper for transforming a signal using an arbitrary shaping function.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages