Dahlia
Waveshaping Polyphonic Synthesis for the Heavy Compiler Collection
Install / Use
/learn @vulcu/DahliaREADME

Dahlia - Waveshaping Synthesis for HVCC
Dahlia is an implementation of the Waveshape-Synth polyphonic synthesizer written in PureData and intended for use with the Heavy Compiler Collection. Possible applications include the Daisy Audio Platform (using pd2dsy), the Distrho Plugin Framework, and Javascript (using WebAudio).
Table of Contents
- General Info
- Features
- User Interface
- Installation (Dahlia)
- Installation (Daisy)
- Installation (DPF)
- Installation (Javascript)
- Algorithms
- References
General Info
The original Waveshape-Synth is an 8-voice polyphonic audio synthesizer with per-voice oscillator waveshaping created as a collection of Pure Data subpatches. It was inspired by wavedist and uses the same waveshaping algorithms. Dahlia is an evolution of this concept, refactored to work with HVCC and capable of a simplified control scheme accomodating the limited Daisy Pod UI. Dahlia can also be used directly from within Pure Data, see main_puredata.pd for an example.
The synthesizer itself relies on a handful of waveshaping algorithms to produce differing kinds of overdrive and distortion from the oscillators of each synthesizer voice, and then applies an ADS-envelope low-pass filter to each voice on an individual basis. The harmonic ratios and the balance between even and odd harmonics varies by algorithm, with some sounding better than others for certain oscillator and envelope combinations. There's no hard-and-fast rules here, so just use your ears.
The goal of this project is to provide a quick and simple way for a user to dial in rich, complex synth sounds without needing to know much about synthesizers. Unlike the wavedist plugin, all the waveshapers are active at once here, allowing for some truly wild harmonic ratios.
Features
- Monophonic (1 Voice) and Polyphonic (8-voices)
- Polyphonic version easily adaptable to N number of voices based on system resources
- Monophonic version has midi-adjustable portamento control
- Lightweight
|miniphonic|monophonic voice for resource-constrained applications
- 7 Oscillators, 1 ADSR, and 2 ADS envelopes per-voice
- Oscillators selectable between Sine, Saw, and a PWM with a 5%-50% automatable duty-cycle
- 6 different waveshaping algorithms and a Gain control
- Unison control (oscillator de-tune)
- Bit depth control/crush range of 1-12 bits
To Do
- ~~Pre-development planning~~
- General
- ~~Refactor PD source for HVCC compatibility~~
- ~~Update docs with details of UI functions/feedback~~
- ~~Include separate install/build documentation for each Dahlia target~~
- Daisy
- ~~Refactor
main_daisy.pdto target Daisy build~~ - ~~Redesign UI for Daisy Pod~~
- ~~Daisy Pod UI simulator~~
- ~~Build scripts targeting Daisy (HVCC and pd2dsy)~~
- ~~Design a new voice for the Daisy platform with lower complexity~~
- ~~Refactor
- Distrho Plugin Framework
- ~~Refactor
main_dpf.pdto target a DPF build~~ - ~~Build script targeting DPF (HVCC)~~
- ~~Refactor
- Javascript
- ~~Refactor
main_js.pdto target a Javascript/WebAudio build~~ - ~~Build script targeting Javascript/WebAudio (HVCC)~~
- ~~Refactor
Status: Project feature development is on hiatus, but it is actively maintained.
<br> (C) 2021-2023, Winry R. Litwa-VulcuRelated Skills
node-connect
352.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
