Электронные ударные

Пэд на базе динамика и звуковой карты

Пэд был изготовлен из обычного компьютерного динамика диаметром 5 см (5 ом, 0.5 ватт – как эти параметры влияют на качества пэда – пока не изучено). Собственно, изготовление заключалось в простом подключении выходов (в нормальном режиме функционирования - входов) динамика на вход (как использовать эти входы в качестве выходов – пока не изучено) звуковой платы - основным же было написание соответствующего программного обеспечения. Т.к. динамик был использован в качестве ударного инструмента - как есть - без физических модификаций, вскоре он потерял свои замечательные качества, т.к. диффузор начал рваться. При ударе по динамику палкой на входе звуковой карты возникал сигнал следующего вида: резкий переход в отрицательную часть и затем переходный процесс. Таким образом для обнаружения удара необходимо отловить отрицательный переход, а затем подождать немного чтобы прошёл переходный процесс. Упрощённый вариант (он и был реализован) - найти на относительно малом промежутке времени минимальный уровень не выше определённого уровня помех. Длительность импульса удара составляет порядка 100 отсчётов при частоте сэмплирования 44100 отсчётов в секунду. Длина буфера (промежутка времени) была выбрана равной 500 отсчётам (из соображений - не перегружать ОС обработкой сообщений заполнения буфера и обеспечить минимальное отставание по звуку). Для непрерывной записи входного сигнала было выделено два таких буфера - во время того как один буфер заполняется входным сигналом, происходит обработка второго буфера. Обработка, как указано выше, заключалась в простейшем поиске минимума в буфере, ограниченного сверху подобранной экспериментально величиной. Если такой минимум появлялся - на основании его величины вычислялась скорость удара, пересчитывалась в формат предусмотренный в MIDI и посылалась пара MIDI-команд Note Off - для предыдущей ноты и Note On - для новой ноты (такая последовательность необходима чтобы не "подвешивать" синтезатор).
В принципе, даже такой простой алгоритм работы обеспечивал очень даже сносную эмитацию пэда (на мой слух) - теоретически, конечно, такая реализация весьма неточна, т.к. существуют как минимум две проблемы связанные со входным сигналом - переходный процесс с большой амплитудой и попадение сигнала удара на границу буферов (они, правда, легко решаются применением "плавающего окна"). Отрицательным фактором является загрузка операционной системы сообщениями, которые приходят в среднем 44100 / 500 = 90 раз в секунду (кстати, разрешающая способность, т.е. минимальное время между двумя ударами при котором они не будут восприниматся именно как два удара, при таком размере буфера будет составлять как раз 1/90 секунды - частота 90Гц :) и ограничение на количество пэдов - два при использовании стереоканала.

Чайкин Александр (ПО разработано совместно с Кучернюком Ильёй)
2003.03.17


Назад


Hosted by uCoz