DBraun/DawDreamer

Digital Audio Workstation with Python; VST instruments/effects, parameter automation, FAUST, JAX, Warp Markers, and JUCE processors

What it solves

DawDreamer provides a Python-based framework for audio processing, allowing users to programmatically control a Digital Audio Workstation (DAW) environment. It bridges the gap between professional audio software (like VST plugins) and Python, enabling the automation of audio rendering, composition, and machine learning experiments with sound.

How it works

Built on the JUCE framework and using nanobind for Python integration, DawDreamer allows users to create graphs of audio processors. Users can load VST instruments and effects, write Faust code for custom signal processing, and manage MIDI playback and parameter automation. It can render audio to files or play it back in real-time, with support for time-stretching and pitch-warping.

Who it’s for

It is designed for audio engineers, researchers in music technology, and developers who want to integrate professional audio plugins and signal processing into Python workflows, particularly for those conducting machine learning experiments with audio.

Highlights

  • VST Support: Load and control VST instruments and effects with UI editing and state management.
  • Faust Integration: Support for Faust effects and polyphonic instruments, including the ability to transpile Faust code to JAX/Flax.
  • Advanced Automation: Parameter automation at audio-rate and pulses-per-quarter-note (PPQN).
  • Flexible Rendering: Ability to render and save multiple processors simultaneously.
  • Warping: Support for time-stretching and pitch-warping, including Ableton Live warp markers.
  • Cross-Platform: Full support for macOS, Windows, and Linux.

Related

  • Project
  • Project
  • Project
  • Project
  • Project