Чтение волновых файлов для монофонического преобразования (Minix 3)
Я собираюсь начать работу над проектом для Minix 3 (в C).
Моя идея - создать какой-нибудь музыкальный плеер. Я хочу иметь возможность читать файлы (WAV), а затем преобразовывать их в поток частот, отправляемых в Timer 2. Поскольку, насколько мне известно, не существует простого способа чтения реальных музыкальных файлов, я подумал о приближении к реальные частоты в блоке, в простой моно кривой, отправленной на таймер 2. Хорошо, выдает:
Я прочитал и научился читать wav-заголовки, но нигде не могу найти значение данных в блоке данных. Как мне это интерпретировать?
Моя первоначальная идея состояла в том, чтобы сделать настоящий музыкальный проигрыватель, но на моих уроках мы не учились, как работать со звуковой платой в Minix 3. Есть ли какое-нибудь учебное пособие, где я могу его изучить?
Насколько я мог понять, C уже библиотека для управления звуком (BASS). Можно и как установить в Minix 3?
Наконец, это способ сделать все это проще?
1 ответ
Файлы WAV - это не "поток частот". Он содержит серию образцов, отформатированных в соответствии с информацией, записанной в заголовке.
В лучшем из миров вы просто настраиваете свою звуковую карту на обработку формата данных, указанного в заголовке, тогда вам просто нужно продолжать предоставлять необработанные данные в виде фрагментов "DATA" в буферы данных вашей звуковой карты.
То, как это делается в Minix 3, выходит за пределы этого ответа (я просто не знаю, как Minix вообще обрабатывает звук), но я уверен, что он очень поможет понять основы цифрового аудио.