diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index bf09365..97c3e15 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -39,3 +39,5 @@ add_subdirectory(fft_filter) add_subdirectory(spectrogram) add_subdirectory(mfcc_calculation) add_subdirectory(dtw_path_recovery) + +add_subdirectory(workshop) diff --git a/examples/workshop/CMakeLists.txt b/examples/workshop/CMakeLists.txt new file mode 100644 index 0000000..e257b97 --- /dev/null +++ b/examples/workshop/CMakeLists.txt @@ -0,0 +1,8 @@ +################################################################################ +# +# AM modulation example. +# +################################################################################ + +aquila_example(workshop) +aquila_example(generate_test_wavfile) diff --git a/examples/workshop/generate_test_wavfile.cpp b/examples/workshop/generate_test_wavfile.cpp new file mode 100644 index 0000000..ba9f21b --- /dev/null +++ b/examples/workshop/generate_test_wavfile.cpp @@ -0,0 +1,19 @@ +#include "aquila/source/WaveFile.h" +#include "aquila/source/generator/SineGenerator.h" + +#include + +int main(int argc, char *argv[]) +{ + if (argc < 2) + { + std::cout << "Usage: generate_test_wavfile " << std::endl; + return 1; + } + + const auto sampleRate = 44100; + Aquila::SineGenerator sineGenerator(sampleRate); + sineGenerator.setFrequency(220).setAmplitude(255).generate(sampleRate*12-5); + + Aquila::WaveFile::save(sineGenerator, argv[1]); +} diff --git a/examples/workshop/short-tone.wav b/examples/workshop/short-tone.wav new file mode 100644 index 0000000..63f547c Binary files /dev/null and b/examples/workshop/short-tone.wav differ diff --git a/examples/workshop/tone.wav b/examples/workshop/tone.wav new file mode 100644 index 0000000..c735c31 Binary files /dev/null and b/examples/workshop/tone.wav differ diff --git a/examples/workshop/workshop.cpp b/examples/workshop/workshop.cpp new file mode 100644 index 0000000..9dde6fe --- /dev/null +++ b/examples/workshop/workshop.cpp @@ -0,0 +1,27 @@ +#include "aquila/source/WaveFile.h" +#include "aquila/transform/Mfcc.h" + +#include + +int main(int argc, char *argv[]) +{ + if (argc < 2) + { + std::cout << "Usage: read_wavs " << std::endl; + return 1; + } + + Aquila::WaveFile wav(argv[1]); + + const auto numSamples = wav.getSamplesCount(); + + Aquila::Mfcc mfcc(numSamples); + const auto mfccValues = mfcc.calculate(wav); + + for (const auto val : mfccValues) + { + std::cout << val << " "; + } + + std::cout << std::endl; +}