Examples
DawDreamer includes several complete examples demonstrating real-world use cases. All examples are available in the examples/ directory on GitHub.
Faust Box API
Location: examples/Box_API/
Demonstrates using Faust’s Box API to programmatically construct DSP graphs in Python. The Box API allows building complex audio processing networks without writing Faust DSP code directly.
Topics covered:
Building Faust processors from Python using the Box API
Creating oscillators, filters, and effects programmatically
Composing complex DSP graphs
Converting Box API code to Faust DSP strings
Format: Jupyter Notebook
Faust to JAX/Flax Transpilation
Location: examples/Faust_to_JAX/
Shows how to transpile Faust DSP code to JAX/Flax for differentiable audio processing and machine learning applications.
Topics covered:
Transpiling Faust code to JAX
Creating differentiable audio processors
Integration with Flax neural networks
Gradient-based optimization of DSP parameters
Format: Jupyter Notebook
Use cases:
Neural audio synthesis
Differentiable audio effects
Machine learning for audio processing
Faust to QDax
Location: examples/Faust_to_QDax/
Demonstrates integration with QDax (Quality Diversity in JAX) for evolutionary audio synthesis.
Topics covered:
Transpiling Faust to QDax-compatible formats
Evolutionary optimization of synthesizer parameters
Quality diversity algorithms for sound design
Fitness functions for audio evaluation
Format: Jupyter Notebook
Use cases:
Automated sound design
Evolutionary synthesis
Parameter space exploration
Mashup Generator
Location: examples/mashup_generator/
Creates audio mashups by beat-matching and mixing multiple songs.
Topics covered:
Beat detection and tempo analysis
Time-stretching for tempo matching
Multi-track mixing and synchronization
Crossfading and transitions
Format: Jupyter Notebook
Use cases:
DJ-style mashups
Automated remixing
Beat-matched playlists
DJ Mixing
Location: examples/dj_mixing/
Demonstrates DJ-style mixing techniques including beatmatching, crossfading, and EQ mixing.
Topics covered:
Tempo synchronization
Crossfader automation
EQ filtering for smooth transitions
Cue point management
Format: Python script + README
Use cases:
Automated DJ sets
Mix generation
Audio analysis and matching
Multiprocessing with Plugins
Location: examples/multiprocessing_plugins/
Shows how to use Python’s multiprocessing to render multiple VST plugin instances in parallel.
Topics covered:
Parallel processing of plugin chains
Batch rendering optimization
Process pool management
Combining results from multiple renders
Format: Python script + README
Use cases:
Batch audio processing
Preset rendering
Dataset generation
Performance optimization
XML Synth Sound Rendering
Location: examples/xml_synth_sound_rendering/
Renders synthesizer presets defined in XML configuration files, useful for creating sound libraries or datasets.
Topics covered:
XML-based preset definition
Batch rendering of synth sounds
Parameter randomization
Dataset creation for machine learning
Format: Jupyter Notebook + Python scripts + README
Use cases:
Sound library creation
ML dataset generation
Preset exploration
Automated sound design
Running the Examples
Prerequisites
Install DawDreamer and common dependencies:
pip install dawdreamer
pip install librosa scipy numpy matplotlib jupyter
Some examples may require additional dependencies:
JAX/Flax examples:
pip install jax flaxQDax examples:
pip install qdaxVST plugin examples: Appropriate VST plugins installed
Jupyter Notebooks
Launch Jupyter and navigate to the examples:
cd examples/
jupyter notebook
Open the desired .ipynb file and run the cells.
Python Scripts
Run standalone examples directly:
cd examples/dj_mixing/
python dj_mixing.py
Check each example’s README for specific instructions.
Additional Resources
Tests Directory
The tests/ directory contains comprehensive unit tests that also serve as usage examples:
test_faust_processor.py- Faust DSP examplestest_plugin_processor.py- VST plugin usagetest_faust_poly*.py- Polyphonic synthesistest_faust_soundfile.py- Sample-based instrumentsAnd many more…
Wiki (Archived)
Previously, the DawDreamer Wiki contained tutorials and guides. This content has been migrated to this documentation.
Community Examples
Check the GitHub issues and discussions for community-contributed examples and use cases.
Contributing Examples
If you’ve created a useful DawDreamer example:
Add it to the examples/ directory
Include a README explaining the example
Add requirements.txt if using additional dependencies
Submit a pull request
Good examples include:
Clear documentation and comments
Self-contained code (minimal dependencies)
Real-world use cases
Educational value
Next Steps
Explore the User Guide for detailed processor documentation
Check the API Reference for complete API details
See the Quick Start Guide for basic usage patterns