Skip to main content

Fast, differentiable audio processors on the CPU or GPU, with a browser client for real-time control

Project description

JAXdsp

Fast, differentiable audio processors on the CPU or GPU, controlled from the browser.

I'm still working on improvements and an interactive browser client, after which I'll write up a blog post. In the meantime, the docs directory has several Jupyter notebooks with plenty of examples. The Differentiable Audio Processors notebook shows many real DSP examples, along with loss/parameter time-series. (All files under docs/scratch are working notes, and can be ignored.) g The goal of this project is to parameterize audio graphs, in real-time, to produce an audio stream resembling incoming audio.

Built with JAX, WebRTC, WebSockets, and React. react-three-fiber provides the WebGL backbone for performant real-time clientside monitoring of the system.

Server

Docker

To build and run the server in a Linux container:

$ docker build . -t jaxdsp_server
$ docker run -p 8080:8080 jaxdsp_server
$ cd server
$ python server.py

Client

Note: For local development of the client within the test /app (see below), the client is included as a local file:../client dependency, and included in the babel transpilation for the /app build ( see app/craco.config.js).

build:dev in the client just symlinks the dist/jaxdsp-client.js target to the root index.js file.

$ cd client
$ npm ci
$ npm run build # or, for a development build: `build:dev`

App

$ cd app
$ npm ci
$ npm start

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

jaxdsp-0.3.1.tar.gz (17.6 kB view hashes)

Uploaded Source

Built Distribution

jaxdsp-0.3.1-py3-none-any.whl (21.9 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