Skip to content

mrk21/wav2midi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

01b7667 · May 11, 2018

History

21 Commits
May 4, 2018
Apr 30, 2018
May 11, 2018
May 5, 2018
May 11, 2018
May 11, 2018
May 11, 2018
May 3, 2018
May 3, 2018
May 3, 2018
Apr 29, 2018
May 11, 2018
May 3, 2018
Apr 28, 2018
May 11, 2018
May 3, 2018
May 4, 2018
Apr 29, 2018
Apr 29, 2018

Repository files navigation

wav2midi

CircleCI

wav2midi is in order to convert sound wave to scale.

Dependencies

Middlewares/Tools

  • C++ Compiler (C++17)
    • AppleClang: N/A
    • Clang: >= 5.0.0
    • GCC: >= 7.0.0
  • CMake: >= 3.10.0
  • gnuplot
  • ffmpeg

Development tools

  • direnv
  • docker: >= 17.x.x
  • docker-compose: >= 1.20.0
  • clang-tidy: >= 5.0.0

Libraries

Setup

Install CMake

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

Install Boost

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

Install libsndfile

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

Install bandit

bandit is C++11 testing framework like RSpec. Its installation works are nothing, because it is executed automatically on build.

Initialize project

$ mkdir gen
$ cd gen
$ cmake -DCMAKE_CXX_COMPILER=clang++ -DBUILD_TEST=ON ..

Build

$ cd gen
$ make

Run

Input from file

$ cd gen
$ ./src/main /path/to/sound.wav

Input from microphone(line in)

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

./test.sh [test_target]

Other

This project coding styles follow C++ Standard Libraries and Boost C++ Libraries basically.

Refer to:

More documentation

About

wav2midi is in order to convert sound wave to scale.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published