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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file synthax-0.2.2.tar.gz.

File metadata

  • Download URL: synthax-0.2.2.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for synthax-0.2.2.tar.gz
Algorithm Hash digest
SHA256 6399c963a0ce2bdcd357ae96fb65a3b1b57a301b0594e41bfe6425ab88f194f6
MD5 4c97faf6f5ec3036521d556b408cda5e
BLAKE2b-256 7b505621076c5105e45974f433f145938e1e024e1a6d7223c00fad3b60378a57

See more details on using hashes here.

File details

Details for the file synthax-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: synthax-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 34.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for synthax-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 77f94ada284069e3dae339cd5d6825fb31851b40ca5ab7f122d0d759715a533b
MD5 29d67e30973666e7123e5f6229dcb50a
BLAKE2b-256 270a4e42b5f9a8210d33ff88ad5cc8a6db6b1eadc1dc2179904c24054a11e756

See more details on using hashes here.

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