Skip to content

simmsb/dsp-stuff

Repository files navigation

DSP Stuff

A node based audio effects thing.

image

Usage

Run with cargo run --release --features gpl_effects (customize the feature flags as you wish)

If you're using pipewire, you can set the PIPEWIRE_LATENCY env var to force pipewire to give us the lowest latency possible, for example:

env PIPEWIRE_LATENCY=128/48000 cargo run --release

Feature flags

  • gpl_effects: Enables building with effects that are gpl licensed. (note: this will make the built binary gpl licensed)
  • windows: Enables building cpal with ASIO support
  • console: Enables the tokio console subscriber

Plumbing

If you're on linux, the JACK interface of cpal seems to work by creating a source/sink pair for the application. You'll want to use something like qjackctl, or pw-viz to manage connecting up these interfaces.

Buffer sizes

Currently the device handling is rather primitive.

The current implementation uses cpal's 'default' buffer size option. I tried opening devices with the buffer size set to the lowest size specified in the config range, but alsa seems to lie or just fail when you try to set the buffer size on some/all devices?

If you're using pipewire you can use the PIPEWIRE_LATENCY env var to lock the buffer sizes.

Notes

  • This currently assumes the sample rate is 48000hz

Releases

No releases published

Packages

No packages published