Как отправить MIDI-сообщения из программы на C++ и заставить их воспроизводить звук из банка General MIDI?Воспроизведение MIDI в OS X, C++
Я осмотрелся и, кажется, не было простого ответа, и мой мозг начинает таять после прочтения длинных руководств о CoreMIDI и подобных вещах.
У меня есть простой проект C++ для игры/синтезатора, и все, что я хочу сделать, это, например, когда этот мяч попадает в пол, вызывать C4 из банка Grand Piano. Я отлично справляюсь с большинством программ, но интегральная MIDI-часть до сих пор была для меня совершенно непрозрачной.
Я хотел бы использовать CoreMIDI, потому что кажется, что это может быть проще, но что-то многоплатформенное будет бонусом.
Благодарим за помощь!
rtmidi выглядит идеально, но он не скомпилируется. Я получаю сообщение об ошибке vtables. Я не вырыл очень глубоко, но это похоже на флагов компилятора, так что спасибо вам в любом случае. – BonzaiRob
http://www.music.mcgill.ca/~gary/rtmidi/index.html#compiling должен объяснить все, что вам нужно, я попробовал пример кода midiprobe на win32 и скомпилирован без проблем. Если вам нужна помощь от его разработчика, вы можете попробовать список рассылки набора инструментов для синтеза (https://ccrma.stanford.edu/software/stk/), который включает в себя этот класс rtmidi и множество других функций. Он также построен тем же разработчиком. –
Я использовал флаги, и он скомпилировался отлично, но потом не связывался. Если я включил rtmidi.h в свой основной файл, я вернулся к ошибке vtables. Итак, я закончил # ifndef'ing более или менее целых два файла, которые теперь компилируются. Я уверен, что есть много причин, что это плохая идея. – BonzaiRob