Синтез звуков
Mathematica, в отличие от других систем компьютерной математики, имеет средства для синтеза звука. Сопровождение звуком описания некоторых математических закономерностей (например, биений, развития взрывных процессов и т. д.) делает это описание более понятным и естественным. Особенно удобна эта возможность в теоретической акустике и в технике аналоговой и цифровой обработки акустических сигналов. Таким образом, при более серьезном рассмотрении можно найти немало прикладных задач, где звуковое сопровождение их решения полезно и является важной составляющей общего описания результатов решения.
Возможности синтеза звука становятся доступными, если компьютер оборудован звуковой картой класса Sound Blaster фирмы Creative Labs или совместимой с ней. К карте должна быть подключена стереофоническая акустическая система для воспроизведения звуков. Возможен синтез как монофонических, так и стереофонических звуков.
С синтезируемым звуком связан некоторый графический образ – ячейка. Этот графический образ имеет вид осциллограмм звуковых сигналов по обоим стереоканалам. Если такая ячейка выделена, то возможен запуск воспроизведения звука с помощью главного меню, как описывалось в уроке 2.
Для синтеза звуков в системе Mathematica используются следующие функции:
- ListPlay [ {a1l, a2,…}] – проигрывает звук с амплитудой, заданной последовательностью уровней ai;
- Play[f, {t, tmin, tmax}] – воспроизводит звук с амплитудой, заданной f как функцией от времени t в секундах между значениями tmin и tmax;
- PlayRange – опция для Play и родственных функций, указывающая, какой диапазон уровней звуковых амплитуд должен использоваться;
- SampleDepth – опция для звуковых примитивов, устанавливающая количество бит для кодирования уровней амплитуды звуковых сигналов;
- SampledSoundFunction [f, n, r] – звуковой примитив; воспроизводит звук с частотой дискретизации г герц; значения дискретных отсчетов генерируются применением функции f к последовательным целым от 1 до π;
- SampledSoundList [ {al, а2,…},r] – звуковой примитив, воспроизводящий звук, амплитуда которого имеет уровни ai с дискретностью r раз в секунду;
- SampleRate – опция для звуковых примитивов, устанавливающая частоту дискретизации звука в герцах;
- Sound [primitives] – представляет звук;
- $SoundDisplayFunction – возвращает значение по умолчанию для опции Display Function в звуковых функциях.
Некоторые из указанных функций напоминают графические функции, и это не случайно. Идеология применения этих функций та же, что при использовании функций графики. Звуковые объекты имеют много схожего с графическими объектами, их можно наряду с последними включать в различные функции-директивы. Таким образом, единство работы со звуком и графикой обеспечено специально.
Рисунок 8.45 показывает использование функции Sound для создания звукового объекта. Графически этот объект представляет собой сдвоенную "осциллограмму" звука. Слово "осциллограмма" не случайно взято в кавычки – на самом деле речь идет лишь о некотором графическом представлении звуковых сигналов, отдаленно напоминающем осциллограмму. К тому же вид этого отображения сильно зависит от компьютерной платформы, на которой установлена система Mathematica и даже от применяемых в компьютере видеосредств.
Рис. 8.45. Создание звукового объекта
Принятый в системе способ синтеза звуков имеет определенные недостатки. Звуковые средства слишком привязаны к математике – для задания звука надо описать звуковые колебания математической формулой. Наконец, надо отметить, что графическая интерпретация звукового объекта не всегда понятна – например, неясно, что нового дает нижняя осциллограмма при синтезе монофонического звука.
Примечание:
Использование звуковых объектов сильно увеличивает объем файлов документов. Да и скорость синтеза звуков даже по простым выражениям оставляет желать лучшего.
Что нового мы узнали?
В этом уроке мы научились:
- Строить двумерные и трехмерные графики различного вида.
- Использовать опции графических функций для форматирования графиков.
- Применять графические директивы.
- Строить графики по точкам.
- Использовать графические примитивы.
- Вставлять в документы графические и иные объекты.
- Осуществлять синтез звуков.