Skip to main content

SynthAX: A Fast Modular Synthesizer in JAX

Project description

SynthAX: A Fast Modular Synthesizer in JAX ⚡️

Pyversions PyPI version PyPI - License Paper

Accelerating audio synthesis far beyond realtime speeds has a significant role to play in advancing intelligent audio production techniques. SynthAX is a fast virtual modular synthesizer written in JAX. At its peak, SynthAX generates audio over 90,000 times faster than realtime, and significantly faster than the state-of-the-art in accelerated sound synthesis. It leverages massive vectorization and high-throughput accelerators. You can get started here Colab

Basic synthax API Usage

import jax
from synthax.config import SynthConfig
from synthax.synth import ParametricSynth

# Instantiate config
config = SynthConfig(
    batch_size=16,
    sample_rate=44100,
    buffer_size_seconds=4.0
)

# Instantiate synthesizer
synth = ParametricSynth(
    config=config,
    sine=1,
    square_saw=1,
    fm_sine=1,
    fm_square_saw=0
)

# Initialize and run
key = jax.random.PRNGKey(42)
params = synth.init(key)
audio = jax.jit(synth.apply)(params)

Installation

The latest synthax release can directly be installed from PyPI:

pip install synthax

If you want to get the most recent commit, please install directly from the repository:

pip install git+https://github.com/PapayaResearch/synthax.git@main

In order to use JAX on your accelerators, you can find more details in the JAX documentation.

Acknowledgements & Citing

If you use synthax in your research, please cite the following:

@conference{cherep2023synthax,
    title = {SynthAX: A Fast Modular Synthesizer in JAX},
    author = {Cherep, Manuel and Singh, Nikhil},
    booktitle = {Audio Engineering Society Convention 155},
    month = {May},
    year = {2023},
    url = {http://www.aes.org/e-lib/browse.cfm?elib=22261}
}

This project is based on torchsynth. We acknowledge financial support by Fulbright Spain.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synthax-0.2.2.tar.gz (19.2 kB view hashes)

Uploaded Source

Built Distribution

synthax-0.2.2-py3-none-any.whl (34.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page