About this project

dexed-py provides Python bindings for the Dexed DX7 synthesizer. It offers a comprehensive suite of tools for sound design and synthesis, ranging from high-level human-friendly patch editing to low-level parameter arrays suitable for machine learning workflows. Key capabilities include: - Patch Management: High-level API for editing DX7 parameters, including support for importing and exporting sysex files and bank files. - ML Integration: A `Preset` class that represents synth state as a normalized float32 vector, designed for compatibility with JAX PyTrees and `jax.pure_callback` to avoid JIT recompilation during parameter changes. - Synthesis Rendering: Ability to render audio based on MIDI notes, velocity, and duration, with options to output individual operator signals. - Custom Topologies: An `OperatorGraph` API that allows users to build arbitrary FM topologies beyond the standard 32 DX7 algorithms, including support for custom operator counts and modulation matrices. - Visualization: Tools to export operator graphs as ASCII art or Mermaid diagrams. - Algorithm Metadata: Access to carrier/modulator lists and modulation matrices for all standard DX7 algorithms.