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 cmake
Boost
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 boost
libsndfile
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.wav
If 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/main
Refer to:
./test.sh [test_target]
This project coding styles follow C++ Standard Libraries and Boost C++ Libraries basically.
Refer to: