На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование звука"
0) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с записью, обработкой, воспроизведением звука. Перед созданием темы подумайте, не будет ли она уместнее в разделах Разработка и тестирование программ, Наши исходники, а особенно Разовые заказы и подработки
1) На Раздел распространяются все Правила форума.Огромная просьба с ними внимательно ознакомиться.
2) Запрещается давать бессмысленные ответы вроде: "Снеси Мастдай", "ХП рулит", "Поставь Линукс" и т.д.
3) Запрещается создавать темы, в которых Вы намереваетесь получить ссылку на кряки, серийники и т.п. Также запрещено любое обсуждение p2p (peer-to-peer) сетей (BitTorrent, eDonkey и т.д.).
4) Реклама всякого рода пресекается беспощадно.
5) Используйте тэг [CODE] для выделения кода программы (непременно с указанием языка программирования - выбрать из списка. В противном случае бессмысленно!). Уважайте тех, кто будет читать ваш код!
6) Если решение вашей проблемы найдено, то не забываем помечать тему специальной функцией "Вопрос решён". Вам всего лишь требуется при написании последнего ответа поставить одну единственную галочку прямо над формой ответа.
7) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе

8) Если не прикрепляются/не скачиваются файлы, читаем Не прикрепляется / не скачивается файл. Любые обсуждения в данном разделе проблем с приложением файлов считаются оффтопиком! Со всеми вытекающими.

9) NEW! Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно. Попытки накрутки количества тематических сообщений за счёт поднятия древних неактуальных тем ("некрофилия") будут наказываться по велению левой пятки модераторского состава (см. пп.12, 13 Правил)



Нарушение Правил может повлечь наказание со стороны модераторов.



user posted imageFAQ Раздела user posted imageПоиск в Разделе user posted imageMSDN Library Online | Ваше мнение о модераторах: user posted imageBarazuk user posted imageRikkie
  
> Выбор количества блоков в буфере и количества буферов для записи звука
    В теме Как программа записи звука с микрофона прерывает запись? в функции задается количество блоков 128 в буфере и количество буферов 16. Возникли следующие вопросы:
    1. Есть ли какие-то принципы выбора этих параметров? Может быть в зависимости от:
    - объема свободной памяти и предполагаемой длительности записываемого сигнала;
    - разрядности (32 или 64 бит);
    - тактовой частоты процессора;
    - результатов тестирования звуковой карты;
    - частоты дискретизации записываемого сигнала;
    - разрядности отсчета или др.
    2. Как определить минимальный размер блока для звуковой карты? Есть ли программы, которые позволяют это сделать?
      Цитата tumanovalex @
      2. Как определить минимальный размер блока для звуковой карты? Есть ли программы, которые позволяют это сделать?

      Думаю что нет. Окромя скайпа. Благодаря массовости он собрал статистику по всевозможным картам.
      Как определить? Попробовать записать а послее посмотреть есть заикания или нет. Но без человека не представляю как можно определить.

      Цитата tumanovalex @
      Есть ли какие-то принципы выбора этих параметров?

      Если задача не активна, то она может не получать квант времени на исполнения в течение 250 мс. Делал тестирование. В случае зависания может и дольше не получать управления.

      Так что суммарно длина буферов надо от 250 милисекунд до нескольких секунд.
      А вот минимальный размер, буфера зависит от аппаратуры и драйверов.
      Уже как-то выработалась статистика, все программы делают буфер порядка 20-50 мс. Иногда удобно подстраиваться под кодек который требует 20, 25, 30, 40, 60 мс.
      Экспериментально буфер может быть и меньше у меня доходило дело до 10 мс точно. Но не везде.
      На некоторых картах минимальный буфер ограничен 4 кБ. Откуда имеем 16 бит* 8 000 Гц/4096 Байт => ~250 мс. Следовательно стоит увеличить частоту дискретизации до стандартных 44100 Гц, тогда буфер можно будет уменьшить до ~45 мс (тежи 4 кБ).
      Сообщение отредактировано: Pavia -
        Цитата
        На некоторых картах минимальный буфер ограничен 4 кБ.

        Что происходит, если буфер < 4 кБ? На каком этапе winmm начинает ругаться(waveinaddbuffer??) и какими именно словами? :unsure:
        Сообщение отредактировано: Prince -
          По Музыченко, размер блока в байтах вычисляется так:
          ExpandedWrap disabled
             wvFormat.nBlockAlign     = (wvFormat.nChannels*wvFormat.wBitsPerSample + 7)/8;
          что дает для количества каналов 2 и 16 бит на отсчет размер блока в 4 байта. Количество блоков в буфере нужно брать тогда 1024? А сколько брать буферов?
            nBlockAlign (Sample size) не имеет ничего обшего с размером буфера.
            Сообщение отредактировано: MIF -
              Звуковой буффер должен содержать целое число семплов.
                Меня тоже этот вопрос интересует. Я могу задать разное целое число семплов, из чего нужно исходить в выборе этого числа? Как экспериментально определить оптимальный размер буфера и оптимальное число буферов для конкретной аппаратуры (ПК и звуковой карты)? Есть аудио сигнал, который нужно записать. Я выбираю, допустим, наивысшую частоту дискретизации, 44100. Как определить оптимальный размер буфера и количество буферов? Может быть с генератора моделировать исходный сигнал, менять количество буферов и их размер, записать сигнал, восстановить аналоговый сигнал и сравнить с исходным? По результатам сравнения выбрать те параметры, которые дают максимальное приближение к исходному сигналу по какому-либо критерию.
                Сообщение отредактировано: tuchin -
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0305 ]   [ 16 queries used ]   [ Generated: 19.03.24, 05:36 GMT ]