wav2midi is in order to convert sound wave to scale.
- C++ Compiler (C++17)
- AppleClang:
N/A - Clang:
>= 5.0.0 - GCC:
>= 7.0.0
- AppleClang:
- CMake:
>= 3.10.0 - gnuplot
- ffmpeg
- direnv
- docker:
>= 17.x.x - docker-compose:
>= 1.20.0 - clang-tidy:
>= 5.0.0
- Boost (BSL-1.0):
>= 1.6.5 - libsndfile (LGPL-2.1):
>= 1.0.0 - bandit (MIT):
>= 2.0.0
CMake is C/C++ build system generator. You can see installation detail to Installing | CMake. Also if you used macOS, then you can install by homebrew:
$ brew install cmakeBoost is C++ pre-standard library. You can see installation detail to Boost Getting Started on Unix Variants - 1.67.0. Also if you used macOS, then you can install by homebrew:
$ brew install boostlibsndfile is a C library for reading and writing sound files containing sampled audio data. You can see instalation detail to libsndfile. Also if you used macOS, then you can install by homebrew:
$ brew install libsndfile
bandit is C++11 testing framework like RSpec. Its installation works are nothing, because it is executed automatically on build.
$ mkdir gen
$ cd gen
$ cmake -DCMAKE_CXX_COMPILER=clang++ -DBUILD_TEST=ON ..$ cd gen
$ make$ cd gen
$ ./src/main /path/to/sound.wavIf you will input from microphone or line in, specify /dev/stdin and use ffmpeg.
If you used macOS, enter the command like listed below:
$ cd gen
$ ffmpeg -f avfoundation -i "none:0" -f wav pipe:1 | ./src/mainRefer to:
./test.sh [test_target]This project coding styles follow C++ Standard Libraries and Boost C++ Libraries basically.
Refer to: