Я пытаюсь создать часть программного обеспечения с использованием C ++, которая воспроизводит аудиофайл с расширением .wav при нажатии определенной клавиши MIDI. Лучший способ, которым я думал об этом, — это использовать if
утверждение (если есть более простой способ, я был бы очень признателен, но я довольно новичок в программировании, поэтому, пожалуйста, будьте проще).
Посмотрев онлайн, я обнаружил, что разные MIDI-клавиши соответствуют разным сообщениям NOTE ON (например, NOTE ON 60 будет соответствовать средней C), поэтому в основном я просто ищу, как сказать «когда NOTE ON 60 получил, воспроизведите файл X.wav «. Я также узнал, что статус NOTE ON 9n
, значит ли это, что компьютер получит 9x60
(используя пример 60 = Middle C)?
После этого мне просто нужно выяснить, как воспроизвести аудиосэмпл, который, я считаю, будет следующим, используя sndfile.h
:
SNDFILE *sndFile = sf_open("Sample1.wav").
Любая помощь будет принята с благодарностью.
ты можешь использовать
Portaudio
в нем есть все, что вы можете работать с MIDI и вашими волновыми файлами
вы можете реализовать потоковую функцию с помощью portAudio и проверить с помощью portMidi, что при нажатии, например, примечания c4, воспроизведите этот файл
посмотрите там документацию