A SuperCollider implementation of a spectral resynthesizer inspired by the Rossum Panharmonium, created for real-time audio analysis and resynthesis using wavetable oscillators.
This code implements a spectral resynthesizer that analyzes incoming audio through a bank of 33 bandpass filters and resynthesizes the sound using detunable wavetable oscillators. The implementation allows for selective frequency band output, real-time parameter control, and both live microphone input and audio file processing.
- Rossum Panharmonium: This code is heavily inspired by the Rossum Panharmonium hardware synthesizer, though it lacks many of the original's advanced features including:
- Notch and additional bandpass filter modes
- Blur/smoothing features for spectral transitions
- Internal feedback systems
- Onset detection for retriggering
- Advanced modulation capabilities
- Nick Collins' SuperCollider Tutorial: Voice synthesis techniques from composerprogrammer.com
- 33-band spectral analysis using bandpass filters
- Wavetable-based resynthesis with multiple waveform options
- Dual input modes: Live microphone and audio file playback
- Selective band output: Choose 1-33 frequency bands centered around band 16
- Real-time parameter control: Adjust analysis rate, pitch and timbre
- Freeze function: Capture and hold current amplitude values
- Detuning effects: 8-voice chorusing for richer sound
| Parameter | Range | Description |
|---|---|---|
\trig |
1-100 Hz | Analysis update rate |
\freq |
-1000 to +1000 | Pitch shift in Hz |
\detune |
0 or 1 | Enable/disable chorusing |
\wt |
0-3 | Wavetable selection/morphing |
\amp |
0-10 | Output volume |
\n_osc |
1-33 | Number of active frequency bands |
\center |
20-2000 | Center frequency in Hz |
\freeze |
0 or 1 | Freeze/unfreeze amplitude analysis |
- Bandpass Filters: 33 filters with controllable Q factor
- Amplitude Tracking: Latched amplitude values updated at trigger rate
- Smoothing: 10ms lag to prevent clicks during updates
Current CPU Usage: ~10% on Mac M1 with 16GB RAM
The high CPU usage is due to:
- 33 parallel bandpass filters
- 33 parallel wavetable oscillators
- Real-time amplitude analysis
- Multiple control rate signals
Planned enhancements:
- Notch filter mode implementation