Синтез звуков
Синтез звуков
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 с дискретностью г раз в секунду;
-
SampleRate — опция для звуковых примитивов, устанавливающая частоту дискретизации звука в герцах;
-
Sound [primitives] — представляет звук;
-
$SoundDisplayFunction — возвращает значение по умолчанию для опции Display Function в звуковых функциях.
Некоторые из указанных функций напоминают графические функции, и это не случайно. Идеология применения этих функций та же, что при использовании функций графики. Звуковые объекты имеют много схожего с графическими объектами, их можно наряду с последними включать в различные функции-директивы. Таким образом, единство работы со звуком и графикой обеспечено специально.
Рисунок 8.45 показывает использование функции Sound для создания звукового объекта. Графически этот объект представляет собой сдвоенную «осциллограмму» звука. Слово «осциллограмма» не случайно взято в кавычки — на самом деле речь идет лишь о некотором графическом представлении звуковых сигналов, отдаленно напоминающем осциллограмму. К тому же вид этого отображения сильно зависит от компьютерной платформы, на которой установлена система Mathe-matica и даже от применяемых в компьютере видеосредств.
Содержание раздела