SIGN IN SIGN UP

Add pedalboard.io.AudioStream support for Linux (#368)

* pedalboard.io: Add Linux support for AudioStream class

Problem

AudioStream is currently not supported on Linux due to macro definitions
in the build script that disable AudioStream functionalities

Solution

Add the JUCE_MODULE_AVAILABLE_juce_audio_devices macro to ALL_CPPFLAGS,
add link flag with the alsa-lib JUCE dependency for interacting with sound
devices in Linux, fix audioDeviceIOCallback to support the live audio playback
feature

Result

AudioStream is now supported on Linux as well as Windows and MacOS

* Fix reverb example to use len instead of .frames for SoundFile class

* Add example for audio monitoring with Pedalboard effects

* Fix formatting

* Add alsa-lib package in wheel builder for static linking

* Add libasound2-dev dependency for the pre-build on ubuntu-20.04

* Add libasound2-dev dependency to Linux actions

* Comment out "delete existing cache" step.

* Include Linux in AudioStream tests, remove create_stream_fails_on_linux test

* Update test_audio_stream.py

* Update test_audio_stream.py

* Update test_audio_stream.py

* Add step to remove libasound before running tests.

* Update all.yml

* Add empty string handling in AudioStream constructor

* Add snd-dummy kernel module for testing AudioStream on linux

* Remove uninstallation of libasound

* Handle None audio devices.

* Is the default device name empty?

* Return None for an audio device name if the device name is the empty string.

---------

Co-authored-by: Peter Sobot <psobot@gmail.com>
Co-authored-by: Peter Sobot <psobot@spotify.com>
P
Pedro Lins committed
0ba5f9e278c21a67896b38fcb4b7227c6d6c7912
Parent: 372741b
Committed by GitHub <noreply@github.com> on 8/23/2024, 12:17:42 PM