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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|