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.
Release files for synthax 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| synthax-0.2.2.tar.gz | 19.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| synthax-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.4 kB
Release files / synthax-0.2.2.tar.gz
| Download URL | synthax-0.2.2.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6399c963a0ce2bdcd357ae96fb65a3b1b57a301b0594e41bfe6425ab88f194f6
|
|
BLAKE2b-256 checksum How to use checksums |
7b505621076c5105e45974f433f145938e1e024e1a6d7223c00fad3b60378a57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / synthax-0.2.2-py3-none-any.whl
| Download URL | synthax-0.2.2-py3-none-any.whl |
|---|---|
| Size | 34.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
77f94ada284069e3dae339cd5d6825fb31851b40ca5ab7f122d0d759715a533b
|
|
BLAKE2b-256 checksum How to use checksums |
270a4e42b5f9a8210d33ff88ad5cc8a6db6b1eadc1dc2179904c24054a11e756
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|