Несколько Midi-сообщений для создания полифонического синтезатора
Я создаю полифонический синтезатор, с помощью которого можно одновременно играть 4 ноты. В функции входящего сообщения Midi я пытаюсь настроить ее так, чтобы при получении сообщения noteOn 1 добавлялся в мою переменную numOfNotesPlaying.
В настоящее время у меня есть двумерный массив осцилляторов, потому что я хочу, чтобы 4 управлялись индивидуально с помощью ползунков амплитуды, но я также мог играть аккорд.
У меня 4 начальных генератора работали нормально, я изо всех сил пытаюсь реализовать второй массив генераторов. Я думаю, что способ обработки миди-сообщений должен измениться.
for(int i = 0; i < 4; i++) { if(message.isNoteOn()) { numOfNotesPlaying += 1; } if(message.isNoteOff()) { numOfNotesPlaying -= 1; DBG("Off"); } oscillatorBasePtr[i][numOfNotesPlaying].get()->setFrequency(message.getMidiNoteInHertz(message.getNoteNumber())); oscillatorBasePtr[i][numOfNotesPlaying].get()->setAmplitude(message.getVelocity() * 0.1); }
Любой совет будет высоко ценится, спасибо заранее.
- Если этот вопрос задан неправильно, пожалуйста, дайте мне знать, как я могу задать лучшие вопросы в будущем.