This small demo project illustrates the utilisation of Akka Streams for audio processing.
It's a multi-project sbt build that builds:
- An echo generator using a Finite Impulse Response (FIR) filter
- An echo generator using an Infinite Impulse Response (IIR) Filter approach
- We show that, when an appropriately configured filter is added, echo's introduced by a preceding filter can be eliminated completely
- A Voltage Controlled Oscillator
- Demonstrates merging two streams that have different flow rates
Both the IIR and FIR utilise filters with a low number of tap points and large delays (in the order of several 100ms)
The goal is come up with generic filters that can be chained and, if the filter elements are chosen with care, to be able to remove echoes that are generated by a first filter with a second filter.
For more info, have a look at my talk on this at: https://youtu.be/n_q7sDTANFg
-
IntelliJ: Import
build.sbt
-
Running the code:
- run
sbt
- use the
listExercises
command to list all demos - use the
nstep
andpstep
command to move around between demos
- run