SynthAX: A Fast Modular Synthesizer in JAX
Project description
SynthAX: A Fast Modular Synthesizer in JAX ⚡️
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
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6399c963a0ce2bdcd357ae96fb65a3b1b57a301b0594e41bfe6425ab88f194f6 |
|
MD5 | 4c97faf6f5ec3036521d556b408cda5e |
|
BLAKE2b-256 | 7b505621076c5105e45974f433f145938e1e024e1a6d7223c00fad3b60378a57 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77f94ada284069e3dae339cd5d6825fb31851b40ca5ab7f122d0d759715a533b |
|
MD5 | 29d67e30973666e7123e5f6229dcb50a |
|
BLAKE2b-256 | 270a4e42b5f9a8210d33ff88ad5cc8a6db6b1eadc1dc2179904c24054a11e756 |