Как выбрать USB контроллер для датчика удара с низкой задержкой?
Приветствую, уже весь обгуглился, прошу помочь.
Стоит задача - создать прототип недорого устройства для занятий на ударных. Тренировочный пэд, в который будут установлены пьезо датчики и этот сигнал нужно донести до компьютера.
Очень критична - задержка сигнала. Возможно ли из имеющихся DIY решений собрать такой девайс.
Уже смотрел в сторону arduino, raspberry других интерефейсов - это все круто, но дорого - как итоговое решение. Сама хардварная часть настолько примитивна - это просто поймать сигнал с датчика и зарегистрировать его в программе, что для этого ставить мини компьютер неоправданно)))
Буду очень признателен если натолкнете на мысль, куда копать. Спасибо!
arduino - дорого? Да ну. Для прототипа самое то.
Но вообще чтобы была минимальная задержка - лучше смотреть в сторону спец.устройств, реализующих это все по MIDI-протоколу.
GavriKos, так вот с миди как раз проблема с задержкой. Крутые midi-процессоры установленные в дорогих звуковухах и "головах" тех же электронных барабанов - это не дешевое решение.
Даже у самого дома стоит электронный барабан, подключаю как midi-устройство. И в тех программах где его использовал эта задержка очень чувствуется - возможно это чисто софтарная проблема или у меня не настолько крутая установка.
Хотел midi варианты обойти стороной, но похоже не получится))))
То есть на выходе не надо получать музыкальный инструмент, а просто быстро регистрировать удары по пэду в программу))))
Sergey Popyvanov, а вы ASIO включите :-)
У самого миди-клава дешманская (m-audio oxygen) - не слышу задержек. По крайней мере таких чтобы мне мешали. Подключена через USB напрямую в комп, но вывод через ASIO.
Просто плюс миди-протокола будет в том, что вам не надо ничего будет городить со стороны компа - вы автоматически дружитесь с любым софтом.
GavriKos, так дело не в выводе звука, а в его своевременной регистрации. Про ASIO в курсе. Возможно действительно проблема просто софтварная. Вот даже на wiki пишут, что это на уровне самой логики MIDI проблема. С английским не очень, но насколько понял из-за последовательной обработки без задержки никак. Но если только один сигнал по одному каналу, то 1 миллисекунда - вообще не критично, а вот уже когда речь идет о 16ms - это проблема, которую получается дает сама архитектура. Но я могу ошибаться, тут я не шарю)))
MIDI's serial transmission leads to timing problems. A three-byte MIDI message requires nearly 1 millisecond for transmission.[72] Because MIDI is serial, it can only send one event at a time. If an event is sent on two channels at once, the event on the higher-numbered channel cannot transmit until the first one is finished, and so is delayed by 1ms. If an event is sent on all channels at the same time, the highest-numbered channel's transmission is delayed by as much as 16ms. This contributed to the rise of MIDI interfaces with multiple in- and out-ports, because timing improves when events are spread between multiple ports as opposed to multiple channels on the same port.[58] The term "MIDI slop" refers to audible timing errors that result when MIDI transmission is delayed.[73]
Sergey Popyvanov, ты почитай как устроен MIDI-порт, там же тупо напрямую даже кнопки можно подключить (всякие джойстики и геймпады так и подключались). Останется только в регистрации событий софтом разобраться.
Ezhyg, да буду смотреть в сторону MIDI, возможно проблема с задержкой, которая есть на тех девайсах, которые есть у меня, это чисто программная проблема)
Как раз таки на Arduino это и будет самый недорогой вариант. Из железа: Ардуино + пьезодатчик + USB шнур до компа. Скорость передачи по виртуальному COM интерфейсу: 115200 бит/с. Т.е. за секунду можно передать информацию о 115200 ударах!
Самодельное устройство скорей всего окажется непригодным из за слишком больших задержек.
Если для вас ардуина за 300 рублей слишком дорога, лучше отказать от затеи.
Множество народу бьются с проблемой задержек аудио, пытаясь подобрать комбинации софта и железа.
На музыкальных форумах популярны обсуждения разных интерфейсов и драйверов дающих минимальные задержки. Вплоть до того что некоторые переходят на линукс с RT ядрами.
300 рублей не дорого. Можно воспринимать не как работу с аудио, потому что все эти битвы с задержками нужны насколько понял, чтобы минимизировать время от нажатия на кнопки миди устройстве до его воспроизведения в колонках.
А нужна просто регистрация сигнала с минимальной задержкой.
Или как вариант синхронизация с внутренним метрономом на устройстве и передача обработанной информации в устройство для наглядного отражения. Попал ты в нужное место или нет))