fs2-pedalboard is a small audio processing app that was created as an idea for a talk. It's currently nowhere near as polished as it should be...
It currently provides implementations of tremolo, overdrive, delay and reverb effects.
The project is compiled using scala native. See here for instructions on how to set up a working environment.
The project also uses portaudio for input and output. On Mac, brew install portaudio
should take care of this dependency. On other operating systems, you will need to install portaudio and then edit this line to point to portaudio.h
on your system.
This is a normal sbt project. You can compile code with sbt compile
, run it with sbt run
, and sbt console
will start a Scala 3 REPL.
For more information on the sbt-dotty plugin, see the scala3-example-project.
The reverb algorithm in this project is based on the JCRev Schroeder reverberator (signposted by this blog post - early implementations of decoding the input stream from the java sound api were also adapted from this post, although explicit decoding is no longer necessary due to switching to portaudio and scala native).