A Minimoog Model D emulation with the DSP portion written in Faust. Moog + Faust = Faug
- Tune Knob: Global detune ranging from [-2.5, 2.5] semi-tones
- Glide Knob : Glide rate/portamento, max time ~6sec
- Modulation Mix Knob: Mixes between modulation sources determined by buttons below
- Osc-3/Filter Eg Button: Determines mod source added by left side of the Modulation Mix knob
- Osc-3: Osc three signal is modulation source
- Filter EG: Filter Envelope Generator is modulation source
- Noise/LFO Button: Determines mod source added by Right side of the Modulation Mix knob
- Noise: Noise is modulation source
- White Noise in mixer section means pink noise for noise modulation source
- Pink Noise in mixer section means red noise for noise modulation source
- LFO: LFO is modulation source
- Noise: Noise is modulation source
- LFO Rate Knob: Frequency of dedicated modulation Low Frequency Oscillator: [0.5Hz,200Hz]
- ToDo: LFO Shape toggle
- Pitch Wheel: Pitch bend for while playing.
- ToDo: Setting to send wheel automatically back to center when released
- Mod Wheel: Modulation Amount to modulation targets
- Glide Button:
- Activates glide/portamento when notes are played with no seperation
- Decay Button:
- Applies an Envelope's decay setting to it's release stage
- Release is ~10ms when turned off
- Oscillator Modulation Button: Turns on modulation source routing to Oscillators 1 and 2
- Oscillator 3 doesn't get modulated b/c it is a modulation source
- Osc-3 Control Button: Connects Oscillator 3's frequency to the keyboard input
- Uses Keyboard center of C3 - Midi Note 48 - 130.81Hz as input frequency when Oscillator 3 disengaged from keyboard
- Range Column:
- Octave for pitch of respective oscillator
- Units are feet - tradition from organ pipes
- Midi Note 93(A6) at 16' plays 440Hz(A4)
- Lo mode uses aliasing oscillators since the pitch is in a range aliasing shouldn't occur
- Frequency column:
- Detune for Oscillators 2 and 3
- Range of [-7.5,7.5] semi-tones
- Oscillator 1 doesn't get detuned as it serves as a reference for the other two
- Waveform column:
- Triangle: Triangle wave
- Triangle+Saw: Oscillators 1 & 2: A triangle and saw wave added together
- Reverse Saw: Oscillator 3: A saw wave that ramps down instead of ramping up
- Saw: Saw Wave, ramps up
- Square: Square Wave
- Rectangle: Rectangle Wave-Pulse train with 0.7 duty cycle
- Narrow Rectangle: Rectangle Wave-Pulse train with 0.85 duty cycle
- Left Column of knobs: Volume knobs for their respective oscillators
- Volume Knob for Oscillator 3 has no impact on it's contribution to modulation signal
- Center Column of buttons: On/Off buttons for their respective noise sources contribution to the sound signal path
- On/Off buttons for Oscillator 3 and Noise have no impact on they're contributions to the modulation signal
- Right Column:
- Load Screw/knob: Increases the output of Oscillators and Noise(not feedback) before being fed into the filter
- ToDo: Include a warm little light that increases in brightness with load
- ToDo: Improve/build upon scaling/saturation algorithms
- Feedback Amount: Amount of the signal's output that gets fed back to the input
- ToDo: Improve and build upon feedback saturation/processing
- Noise Volume: Volume knob for noise signal's contribution to sound signal
- Has no impact on noise's contribution to modulation signal
- Noise-Type Button: Determines noise type for sound and modulation signals
- White Noise for sound signal is Pink Noise for modulation Signal
- Pink Noise for sound signal is Red Noise for modulation Signal
- Load Screw/knob: Increases the output of Oscillators and Noise(not feedback) before being fed into the filter
- Filter Modulation Button: Turns on modulation of filter cutoff by modulation sources
- Keyboard Control:
- Keyboard Control 1: Turns on 1/3 of key tracking for filter cutoff
- Keyboard Control 2: Turns on 2/3 of key tracking for filter cutoff
- Turning on both gives full keyboard tracking eg. Filter cutoff will move 1:1 with change in played pitch
- Cutoff Frequency Knob: Determines base cutoff of filter: range [10Hz,20kHz]
- Emphasis Knob: Controls the amount of filter signal fed back into filter, resulting in a resonance peak at cutoff
- Self-Oscillation occurs at max value
- ToDo: Add scaling to reduce emphasis as cutoff freq goes down so bass notes still have bass frequencies
- Contour Amount Knob: Adjusts the amount that the Filter's envelope generator impacts the filter cutoff
- Max Range of 4 octaves
- ToDo: Add filter direction toggle
- Attack Time Knob: The amount of time it takes for the filter cutoff to go from the base frequency to max or min cutoff frequency.
- Value Range: [1ms, 7s]
- Peak change amount is determined by Contour Amount knob.
- Sustain Level Knob: The percent of difference between filter cutoff and contour peak for the cutoff frequency to stay at after Decay Phase
- Value Range: [0%, 100%]
- 0%: After the Attack phase, the filter cutoff will decay to the base cutoff frequency set by the knob
- 50%: If contour is set to max(4 octaves), the filter cutoff will decay to 2 octaves above base cutoff frequency determined by knob
- 100%: After the Attack phase, the filter cutoff will not decay at all and will sustain at peak value until note is released
- Decay Time Knob: The amount of time it takes for the filter cutoff to go from the max or min cutoff frequency to Sustain level
- Value Range: [4ms, 30s]
- Begins immediately after Attack phase ends
- Release for filter envelope is either 10ms, or Decay Time value if Decay Button in keyboard section is on
- ToDo: Add different cutoff slopes/filter implementations
- Attack Time Knob: The amount of time it takes for the volume to reach it's peak.
- Value Range: [1ms, 10s]
- Peak determined by the Volume Knob in Power Section.
- Sustain Level Knob: Volume level held after decay
- Value Range: [0%, 100%]
- 0%: Volume will decay to nothing
- 100%: No volume decay after attack until note released
- Decay Time Knob: The amount of time it takes for the filter cutoff to go from the max or min cutoff frequency to Sustain level
- Value Range: [4ms, 24s]
- Begins immediately after Attack phase ends
- Release for envelope is either 10ms, or Decay Time value if Decay Button in keyboard section is on
- Volume Knob: Scales overall output
- Power Button: Turns output on/off
- ToDo: Add a warm up process
- UI Labels/knob ticks need some fine-tuning to line up
- Variable key tracking for notes
- Variable detune/drift
- Settings page to allow for these and other adjustments
- Oversampling
- Alternate UI view when no onscreen keyboard is needed
- Different layout, more of a rack/vertical style?
- Add Loudness Meter
- Add Spectrum graph
- Add Waveform graph
- Add to settings page to toggle them on/off
- UI/visual cues to inform user which buttons are flipped on
- Contour generator builds on itself when decay button is on
- Replace various curves and contours with exponential implementations