Kotlin project reference implementation
Table of Contents
Overview
This is an implementation of tasks of Audio Signal Processing course on Coursera using the WaveBeans framework. That implementation cannot replace whatever is done for the sake of completing course, however gives an idea of another implementation of provided tasks using different approach.
Prerequisites
You need to have JDK 8+ installed on your machine.
Usage
To run these example you need to clone the repository:
git clone https://github.com/WaveBeans/wave-blog.git
Go to project directory:
cd wave-blog/audio-signal-processing-course/project
And run the following task via gradle (it’s better to use gradle wrapper) specifying the main class parameter from one of the supported:
./gradlew run -PmainClass="week1.DownsamplingKt"
Supported main classes:
- Week 1
week1.ReadingWavFileKt
– reads wav-file and stores part of it as CSV.week1.UsingSequenceApiKt
– reads wav-fileweek1.DownsamplingKt
– reads wav-file, downsamples it and stores to CSV.
- Week 2
week2.GenerateSineKt
– generates the sinusoid and stores it to CSV.week2.GenerateComplexSineKt
– generates the complex sinusoid and stores it to CSV.week2.DftKt
– calculates the Digital Fourier Transform over provided signal and stores results into CSV.week2.IdftKt
– calculates the Inverse Digital Fourier Transform over provided signal and stores results into CSV.week2.MagnitudeKt
– calculates the magnitude based on previous DFT implementation.
How it works
Each output has an extension function defined in Helpers
file with the name evaluate()
. It runs the specified output on Local Overseer using WaveBeans framework, everything else is up to documentation