Главная » Программирование звука

Файлы проектов

Добавлено Дата: 17 May, 2012 категория: Программирование звука

Каталог Source также содержит один подкаталог на каждую платформу. Проектные   и   компоновочные   файлы   используют   исходный   код,   расположенный в каталоге Common.

Windows

Файлы  проектов  для Visual C++  4.2  и Visual C++ 5.0.  Для того чтобы откомпилировать  проект,  вам  необходимо  скопировать  весь  каталог  Source (включая все  подкаталоги)  на  ваш  жесткий  диск.  Если  вы  измените  относительное  положение  файлов  проектов  и  исходных  текстов,  вам  придется  удалить  все  файлы  из проекта и заново добавить их.

Читать »

Воспроизведение звука в Windows

Добавлено Дата: 17 May, 2012 категория: Программирование звука

B то время, когда я пишу эти строки, Microsoft предлагает использовать новый интерфейс собственной разработки, называемый DirectSound. K сожалению, этот интерфейс появился совсем недавно и еще не получил широкой поддержки. Поэтому в этой книге я расскажу только о более старом интерфейсе wave. Основное различие между этими двумя интерфейсами заключается в длительности задержки: при использовании  DirectSound  непроизводительные  задержки  ниже,  что  позволяет очень быстро начинать воспроизведение звука. Хотя эта возможность необходима для разработки игр, для других приложений она не является столь важной.

Читать »

Компрессия ?-Law для телефонных систем

Добавлено Дата: 17 May, 2012 категория: Программирование звука

По  своей  концепции  кодирование  А-типа  аналогично.  Как  и  мю-компрессия, первоначально  этот  метод  разрабатывался  для  телефонных  систем.  Мю-кодировка  используется  в  Северной  Америке  и  Японии,  А-компрессия   в  Европе.  Подобно   мю-компрессии,  этот   метод   кодирования   описывается   как  непрерывной функцией, так и цифровой аппроксимацией.
Читать »

Побочные эффекты дискретизации

Добавлено Дата: 15 May, 2012 категория: Программирование звука

Системы   дискретизации   звука   обычно   характеризуются   частотой   дискретизации,   то   есть   количеством   отсчетов,   которые   используются   для   представления звука  длительностью  в  1  секунду.  На  аудиокомпакт-дисках,  например,  для  представления   одной   секунды   монозвука   используется   44100   значений.   Для   сравнения  скажем,  что  в  большинстве  телефонных  систем  для  этих  же  целей  используется всего 8000 значений.

Читать »

Дифференциальная ИКМ

Добавлено Дата: 14 May, 2012 категория: Программирование звука

Дифференциальная   ИКМ   (ДИКМ,   иногда   еще   называемая   дельта-кодированием)   это  простой  способ  добиться  умеренной  компрессии.  При  использовании ДИКМ  вместо  записи  самих  выборок  хранят  только  разницу  между  последовательными  выборками.  Если  используемая  частота  дискретизации  будет  достаточно высока, то эти приращения, скорее всего, будут небольшими. B результате, для хранения одного отсчета вам понадобится меньше битов.

Читать »

Чтение файлов AIFF

Добавлено Дата: 13 May, 2012 категория: Программирование звука

B  оригинальной  спецификации  IFF  авторы  обращают  особое  внимание  на  то, что блоки данных различных типов могут следовать в любом порядке. Поэтому не исключено, что в некоторых файлах AIFF, например, блок звуковых данных будет расположен перед форматным блоком, определющим способ хранения данных.

Читать »

Реализация КИХ-фильтров

Добавлено Дата: 13 May, 2012 категория: Программирование звука

Описанный   выше   основной   метод   проектирования   достаточно   прост.   Однако   непосредственная   реализация   получившихся   фильтров   гораздо   сложнее,   чем можно  подумать.  B  листинге  25.1  показан  очевидный  способ  реализации  такого фильтра.

Читать »

Пример приложения Windows

Добавлено Дата: 13 May, 2012 категория: Программирование звука

Предлагаемый  ниже  пример  специально  сделан  простым.  Я  не  стал  заниматься разработкой изощренного графического интерфейса, вместо этого я подготовил простое консольное приложение. Его можно запускать из окна MS DOS и использовать  для  воспроизведения  произвольного  числа  файлов  (в  пакетном  режиме) или запустить из-под Windows (в интерактивном режиме).

Читать »

Аудио MPEG как способ компрессии видеопоследовательностей

Добавлено Дата: 12 May, 2012 категория: Программирование звука

Первое заседание Группы экспертов по движущимся изображениям (Motion Pictures Experts Group, MPEG) состоялось в мае 1988 года. Эта группа была создана решением  Международной  организации  по  стандартизации  (International  Organization for  Standardization,  ISO)  с целью  разработки стандартного  способа компрессии  видеопоследовательностей. K концу 1992 года ISO был официально одобрен первый стандарт из целой группы стандартов, известной также под названием MPEG. Несмотря на то что стандарты из группы MPEG больше всего известны в области компрессии видео, они распространяются и на высококачественную компрессию звука. B   разработке   стандартов   MPEG   принимало   участие   большое   количество   компаний,  исследовательских  организаций  и  групп  по  разработке  стандартов.  Частично это стало следствием того, что интересы различных отраслей промышленности совпали. Коммерческие станции вещания были заинтересованы в передаче высококачественного видео по спутниковым, кабельным и обычным каналам. Производители   бытовой   радиоэлектроники   хотели   получить   возможность   распространять фильмы  на  компактных  цифровых  носителях.  Производителям  компьютеров  была нужна  возможность  использования  аудио и  видеоинформации  в  разнообразных программных продуктах. Ключевым условием для всех этих областей является наличие стандарта на высококачественную цифровую компрессию.

Читать »

Классы декомпрессоров

Добавлено Дата: 11 May, 2012 категория: Программирование звука

B  этой  главе  мы  познакомимся  с  основными  свойствами  семейства  объектовдекомпрессоров  и  построим  четыре  очень  простых  модуля  восстановления  сжатых звуков.

Основная   задача,   решаемая   всеми   декомпрессорами   звуковой   информации, заключается  в  преобразовании  байтов  в  выборки  звуковых  сигналов.  Чтобы  осуществить  данное  преобразование,  разработанные  мной  классы  получают  запросы на  выборки  с помощью  метода GetSamples и  получают  от  других  объектов байты с помощью метода ReadBytes.

Читать »

Заголовок фрейма MPEG

Добавлено Дата: 10 May, 2012 категория: Программирование звука

Заголовок фрейма всегда имеет длину 32 бита и выровнен по границе целого байта.  B  первых  12  битах  записаны  единицы   для  синхронизации,  а  значения остальных указаны в табл. 14.2.

12 бит, занятых единицами, называются синхрогруппой. Если в процессе работы  декодер  где-то  потеряет  нить,  можно  будет  найти  ближайшую  синхрогруппу и перезапустить декомпрессор с этого места.

Читать »

Преобразования Фурье

Добавлено Дата: 10 May, 2012 категория: Программирование звука

Теперь мы знаем, что основой работы со звуком является представление его в виде последовательности  отсчетов  или  набора  частот.  Есть  ряд  манипуляций,  которые легко  выполняются  при одном  подходе и крайне  затруднены  при другом,  поэтому важно уметь преобразовывать одно представление в другое.

Читать »

Запись файлов AU

Добавлено Дата: 9 May, 2012 категория: Программирование звука

Запись   файлов   AU   производится   аналогичным   образом.   Процедура   записи файлов  AU   это,  по  существу,  объект  проигрывателя,  поэтому  он  наследует  от AbstractPlayer и  реализует  метод  Play  для  записи  данных.  Конструктор  принимает и сохраняет выходной поток.

Читать »

Выбор устройства

Добавлено Дата: 8 May, 2012 категория: Программирование звука

Windows  поддерживает  произвольное  количество  устройств  воспроизведения звука, и выбор нужного может оказаться непростой задачей. Существуют два способа,  позволяющих  выяснить  возможности  этого  устройства.  Один  из  них  заключается  в  запросе  характеристик  устройства  (waveOutGetDevCaps)  и  применении битовой  матрицы  для  подбора  наиболее  подходящего  формата.  Подобный  подход ограничивает  нас  всего  лишь  тремя  возможными  значениями  частоты  дискретизации,  что  может  оказаться  затруднительным.  Кроме  того,  уместно  использовать специальную  форму  вызова  waveOutOpen для  того,  чтобы  проверить,  поддерживает ли какое-нибудь из устройств предпочитаемый вами формат.

Читать »

Восприятие звука человеком

Добавлено Дата: 7 May, 2012 категория: Программирование звука

При  тщательном  выборе  формата  записи  звуковой  информации  и  метода  обработки  звука  приходится  учитывать  множество  критериев,  в  том  числе  объем  данных и скорость процессора. Один из самых важных вопросов насколько хорошо будет это звучать.

Читать »