2015-03-10
This release introduces the foundational Additive Engine, laying the groundwork for future synthesizer development. While there is no user interface or real-time audio playback yet, core functionality is implemented and validated through test programs in the form of unit tests.
- Operators: Manages how data or signals are processed within the synthesizer, enabling various operations for sound generation.
- Curves: Modulation curves that evolve over time, shaping sound dynamically.
- Samples: Supports audio samples for playback and manipulation of pre-recorded sounds.
- Audio File Output: Generates and exports synthesized sound as files.
- WAV Header: Adds the file header needed to make audio output playable in standard media players.
- WAV Header Detection: Detects whether input files are standard WAV format before attempting to read them.
This version of the engine supports various types of synthesis and signal manipulation, including:
- Sines (pure tone waveforms, the simplest sound wave)
- Samples / Audio Files (pre-recorded sound manipulation)
- Additive Synthesis (combines multiple sine waves or samples to create complex sounds)
- Oscillators (periodic waveforms, modulating pitch, volume, and other sound aspects)
- Delays (time-shifting effects for echo and delay)
- Detune (slight pitch adjustments for sound enrichment)
- Speed Control (altering playback speed, affecting pitch and duration)
- Curves/Envelopes (modulating and shapes sound over time)
- Volume & Pitch Control (including envelopes for dynamic adjustments)
- Basic Arithmetic (mathematical operations for sound manipulation)
- FM Synthesis (theoretical support for frequency modulation synthesis, not fully tested)
Note: Due to a limitation in this version, pitch envelopes do not work with freely drawn curves. However, pitch envelopes might work by using continuous math functions.
The engine supports two interpolation methods for Curves, Samples, and Audio Files:
- Blocky (step-wise interpolation)
- Linear (smooth transition between data points)
Supports the following sample formats:
- 8-bit and 16-bit audio
- Mono and Stereo channels
- WAV and RAW file formats
The engine also automatically detects and parses WAV headers when loading samples, simplifying the handling of audio files.