Иллюстрированный самоучитель по Mathematica 3/4

Синтез звуков

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 и даже от применяемых в компьютере видеосредств.

Иллюстрированный самоучитель по Mathematica 3/4 › Графика и звук › Синтез звуков
Рис. 8.45. Создание звукового объекта

Принятый в системе способ синтеза звуков имеет определенные недостатки. Звуковые средства слишком привязаны к математике – для задания звука надо описать звуковые колебания математической формулой. Наконец, надо отметить, что графическая интерпретация звукового объекта не всегда понятна – например, неясно, что нового дает нижняя осциллограмма при синтезе монофонического звука.

Примечание:
Использование звуковых объектов сильно увеличивает объем файлов документов. Да и скорость синтеза звуков даже по простым выражениям оставляет желать лучшего
.

Что нового мы узнали?

В этом уроке мы научились:

  • Строить двумерные и трехмерные графики различного вида.
  • Использовать опции графических функций для форматирования графиков.
  • Применять графические директивы.
  • Строить графики по точкам.
  • Использовать графические примитивы.
  • Вставлять в документы графические и иные объекты.
  • Осуществлять синтез звуков.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.