|
Нужно несколько массивов сэмплов (по числу каналов). Каждый, в отличие от МИДИ, хранит не нормальную выборку инструмента, а только одну волну/полуволну (чем и проще). Соответственно, длина равна 1/440 (период на 440 Гц, для немузыкантов) умножить на частоту сэмплинга (44100 нормально будет).
Далее мы, сверяясь каждый такт музыки с мелодией, "перелистываем" все массивы со скоростью, пропорционально большей, меньшей или равной 44100 сэмплов в секунду (в зависимости от ноты) и суммируем выборки в порт на DAC. Быстродействие равняется нулю, т.к. МКУшка занята музыкой вся.
Маньяки могут раскидать все по таймерам и прерываниям %) Тады нужно затактировать их от внутренника с нужными коэффициентами, а одному поручить их перепрограммировать в зависимости от ноты. Тогда один, самый "медленный", будет считать в долях такта и "дирижировать" остальными. Тока не знаю, где водятся микроконтроллеры с ТАКИМ количеством таймеров... :)))
E-mail: info@telesys.ru