TR123e - EMCT Computing Final Project Version 1.0
Research Project Translation from gen~ to embedded Moog synth
Loading...
Searching...
No Matches
MoogFilterEnvelope.h File Reference

Specialized envelope generator for filter frequency modulation in Moog-style synthesis. More...

#include "ADSR.h"

Go to the source code of this file.

Classes

class  MoogFilterEnvelope
 Specialized filter envelope generator with velocity sensitivity and depth control. More...

Detailed Description

Specialized envelope generator for filter frequency modulation in Moog-style synthesis.

This module implements a dedicated envelope generator optimized for filter cutoff frequency modulation in classic analog synthesizer architectures. The system combines ADSR envelope generation with velocity sensitivity, envelope depth control, and keyboard tracking integration to provide musically expressive filter frequency sweeps characteristic of vintage Moog synthesizers.

@historical_context The Moog filter envelope represents a fundamental component of the classic analog synthesizer architecture pioneered by Robert Moog in the 1960s. This design pattern became the template for virtually all subsequent subtractive synthesizers, establishing the paradigm of separate amplitude and filter envelopes for independent control of loudness and timbre evolution.

@synthesis_theory Filter envelope modulation serves multiple musical functions:

  1. Timbral Animation: Time-varying filter sweeps create evolving harmonic content
  2. Articulation Control: Attack and decay phases shape note beginnings and transitions
  3. Velocity Response: Dynamic filter opening provides expressive velocity sensitivity
  4. Musical Phrasing: Sustained filter levels maintain consistent timbre during note holds

@technical_architecture The implementation employs a wrapper pattern around a generic ADSR envelope generator, adding filter-specific functionality:

  • Envelope Depth Scaling: Configurable modulation intensity for artistic control
  • Additive Frequency Mapping: Linear frequency addition for predictable filter behavior
  • Keyboard Tracking Integration: Seamless combination with key-follow algorithms
  • Velocity Sensitivity: Optional velocity-to-envelope-intensity mapping

@mathematical_model Filter frequency calculation: f_filter = f_base + f_keytrack + (envelope × depth)

Where:

  • f_base: Base cutoff frequency setting
  • f_keytrack: Keyboard tracking contribution
  • envelope: ADSR envelope output [0.0-1.0]
  • depth: Envelope depth parameter (typically in semitones or Hz)

@performance_characteristics

  • Computational complexity: O(1) per sample (delegates to ADSR implementation)
  • Memory footprint: ~40 bytes (ADSR envelope plus scalar parameters)
  • Real-time safety: Inherits real-time properties from underlying ADSR
  • Numerical precision: IEEE 754 single precision floating-point
Author
Timothy Paul Read
Date
2025/03/10 @organization AABSTRKT at play via gaialive.com
Version
1.0

@license This source code is provided as is, without warranty. You may copy and distribute verbatim copies of this document. You may modify and use this source code to create binary code for your own purposes, free or commercial.

@references

  • "Analog Days: The Invention and Impact of the Moog Synthesizer" by Trevor Pinch & Frank Trocco
  • "The Moog Book" by Andy Mackay
  • "Sound Synthesis and Sampling" by Martin Russ
  • "Computer Music: Synthesis, Composition, and Performance" by Dodge & Jerse