• Stars
    star
    204
  • Rank 192,063 (Top 4 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 8 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Decent jack bindings for rust

JACK

https://img.shields.io/badge/License-MIT-yellow.svg
https://github.com/RustAudio/rust-jack/workflows/Rust/badge.svg
https://img.shields.io/crates/v/jack.svg
https://docs.rs/jack/badge.svg

Overview

Rust bindings for the [JACK Audio Connection Kit](https://jackaudio.org). These bindings work on every operating system that JACK does.

The JACK server is usually started by the user or system. Clients can request that the JACK server is started on demand when they connect, but this can be disabled by the user and is the recommended configuration.

  • Linux and BSD users may install JACK1, JACK2, or Pipewire JACK from their system package

manager.

  • Windows users may install JACK from the

[official website](http://jackaudio.org/downloads/) or [Chocolatey](https://community.chocolatey.org/packages/jack).

[Homebrew](https://formulae.brew.sh/formula/jack).

[โค๏ธ Sponsor](https://github.com/sponsors/wmedrano)

Refer to the [documentation](https://docs.rs/jack/) for details about the API, building, and packaging. Also take a look at the examples directory for usage.

Testing

Testing requires setting up a dummy server and running the tests using a single thread.

# Set up a dummy server for tests. The script is included in this repository.
./dummy_jack_server.sh &
# Run tests with limited concurrency.
RUST_TEST_THREADS=1 cargo test

**Note:** We use a single thread for tests since too many client instantiations in short periods of time cause the JACK server to become flaky.

Possible Issues

If the tests are failing, a possible gotcha may be timing issues.

  1. Increase the value used by sleep_on_test in client/common.rs.

Another case is that libjack may be broken on your setup. Try switching between libjack and libjack2 (they have the same API and libjack2 isnโ€™t necessarily newer than libjack), or using a different version.

More Repositories

1

cpal

Cross-platform audio I/O library in pure Rust
Rust
2,614
star
2

rodio

Rust audio playback library
Rust
1,690
star
3

vst-rs

VST 2.4 API implementation in rust. Create plugins or hosts. Previously rust-vst on the RustDSP group.
Rust
973
star
4

dasp

The fundamentals for Digital Audio Signal Processing. Formerly `sample`.
Rust
720
star
5

rust-portaudio

PortAudio bindings and wrappers for Rust.
Rust
373
star
6

deepspeech-rs

Rust bindings for the deepspeech library
Rust
295
star
7

dsp-chain

A library for chaining together multiple audio dsp processors/generators, written in Rust!
Rust
287
star
8

lewton

Rust vorbis decoder
Rust
250
star
9

vst3-sys

Raw Bindings to the VST3 API
Rust
210
star
10

baseview

low-level window system interface for audio plugin UIs
Rust
184
star
11

synth

A polyphonic Synth type whose multiple oscillators generate sound via amplitude and frequency envelopes, implemented in Rust. DEPRECATED: This is a very old crate with very old design patterns and is no longer maintained. You might be interested in checking out `dasp` for composing your own synth instead.
Rust
172
star
12

coreaudio-rs

A friendly rust interface to Apple's Core Audio API.
Rust
169
star
13

rust-lv2

A safe, fast, and modular framework to create LV2 plugins, written in Rust
Rust
150
star
14

audrey

A crate to simplify reading, writing and converting between a variety of audio formats.
Rust
114
star
15

ogg

Ogg container decoder and encoder written in pure Rust
Rust
97
star
16

rimd

Library for handling Midi and Standard Midi Files in Rust
Rust
77
star
17

wmidi

Rust midi encoding and decoding library.
Rust
63
star
18

pitch_calc

A library for musical pitch conversions! Provides functions and methods for converting between frequency (hz), midi-step, letter-octave and mels.
Rust
60
star
19

coreaudio-sys

Raw bindings to the OSX CoreAudio framework generated by bindgen (see coreaudio-rs for a more rust-esque wrapper).
Rust
59
star
20

sound_stream

A Rust audio IO stream in the style of an "Event Iterator" driven by PortAudio.
Rust
57
star
21

time_calc

A library for music/DSP time conversions! Provides functions and methods for converting between ticks, ms, samples, bars, beats and measures.
Rust
49
star
22

musical_keyboard

A small lib for converting keyboard input into musical notes.
Rust
26
star
23

mp3

Rust MP3 decoder project
Rust
23
star
24

sampler

A polyphonic sampler instrument that supports unique sample mappings across both frequency and velocity ranges. DEPRECATED: This is a very old crate with very old design patterns and is no longer maintained. You might be interested in checking out `dasp` for composing your own sampler instead.
Rust
23
star
25

areweaudioyet

Are We Audio Yet?
CSS
18
star
26

simplemad

A Rust interface for the MPEG audio (MP1, MP2, MP3) decoding library libmad
Shell
17
star
27

caf

Rust decoder for Apple's Core Audio Format (CAF)
Rust
14
star
28

envelope

An interpolatable Envelope type along with a generic 2D Point, useful for controlling parameters over time.
Rust
13
star
29

website

Website for all things audio in the Rust programming language
HTML
10
star
30

vst2-sys

Bindings for the VST 2.4 API.
Rust
9
star
31

instrument

Converts discrete note events to a continuous signal of amplitude and frequency frames over N number of voices.
Rust
8
star
32

rnnoise-c

Rust bindings to Xiph's rnnoise denoising library
Rust
7
star
33

rms

A simple type for calculating and storing the RMS given some buffer of interleaved audio samples.
Rust
7
star
34

volume

A simple dsp-chain node for multiplying the amplitude of the output buffer by some volume.
Rust
6
star
35

panning

A variety of utilities related to audio panning in Rust.
Rust
5
star
36

lyra

Feature extraction POC
Rust
4
star