Teensy 2.0 MIDI: количество нот в аккорде ограничено 6?
Я использую Teensy 2.0 с USBMidi в проекте, который позволяет музыкантам использовать ретро-компьютеры в качестве «инструментов» (https://github. com/fredlcore/midijoy). До сих пор все эти компьютеры имели не более четырех голосов, поэтому проблемы, которую я сейчас решаю, пока не возникало.
Когда я хочу сыграть аккорд, состоящий из более чем шести нот одновременно, принимаются и воспроизводятся только первые шесть нот. Однако, если я отпущу две из, скажем, восьми нот, оставшиеся две ноты будут последовательно воспроизводиться, если эти клавиши все еще удерживаются нажатыми.
Вот сценарий, сокращенный до минимума, когда вы нажимаете восемь клавиш на MIDI-устройстве одну за другой, вы увидите, что он останавливается после шестой клавиши, и когда вы затем последовательно удерживаете все клавиши и отпускаете одну после другого вы увидите, что «оставшиеся» ключи/ноты будут получены тогда:
void setup() {
Serial.begin(38400);
usbMIDI.setHandleNoteOn(doNote);
usbMIDI.setHandleNoteOff(doNoteOff);
}
void loop() {
usbMIDI.read();
}
void doNote(byte channel, byte pitch, byte velocity) {
Serial.println(channel);
Serial.println(pitch);
}
void doNoteOff(byte channel, byte pitch, byte velocity) {
Serial.println(channel);
Serial.println(pitch);
}
Вы должны настроить Teensy как MIDI-устройство, чтобы можно было найти библиотеки USBMidi.
Есть ли в Teensy 2.0 аппаратное ограничение, которое не позволяет ему обрабатывать более шести заметок одновременно? Или это ограничение библиотеки?
@fredlcore, 👍0
Обсуждение1 ответ
Лучший ответ:
@Majenko указал мне на основную причину проблемы: я отправлял MIDI-заметки с помощью функции Ableton по использованию клавиатуры компьютера. Кажется, что ОС (или клавиатура) не может отправлять/принимать более шести одновременных нажатий клавиш.
Можно принять свой собственный ответ как решение проблемы. Возможно, вам придется подождать 48 часов, прежде чем вы сможете его принять., @VE7JRO
Это особенность USB-клавиатур. У них есть «N-key rollover», где N=6. Т.е. в отчете HID есть место для 6 ключей., @Majenko
@Majenko: Да, это имеет смысл. Вы хотите сами написать ответ, чтобы я мог принять его как решение?, @fredlcore
Нет, твоего вполне достаточно. Принимайте свои собственные, когда система позволяет вам., @Majenko
Нормально будет делать...., @fredlcore
- exit status 1 - expected primary-expression before '(' token
- Вибрационный геймпад Arduino с силовой обратной связью
- Последовательная связь между Teensy и Teensy через USB-разъем
- Отправка MIDI CC на несколько миди-каналов
- Получить серийный номер или идентификатор контроллера USB-хоста с помощью Teensy или других HID устройств
- Teensy 2.0 устройство xinput usb
- Почему я не могу использовать Jeelib Sleepy на Teensy 2 вместе с serial
- Arduino Zero не распознается как MIDI-устройство через собственный USB-порт
В MIDI нет понятия аккордов. Скорее всего, то, что вы используете для отправки MIDI-сообщений, не может справиться с более чем 6-нотной полифонией., @Majenko
Подключите клавиатуру к ПК и запустите MIDI-монитор. Я думаю, что вы увидите ту же проблему., @CL.