Синтез музыкальных звуков (Music)
Подпакет Music как бы продолжает рассмотренный ранее подпакет поддержки звуковых возможностей системы Mathematica. Он задает функцию последовательного воспроизведения списка, содержащего отдельные звуки:
- Scale [ilist, freq, dur] – генерирует звуковой объект, представленный данными списка ilist музыкальных интервалов, с частотой freq и длительностью dur.
Пример воспроизведения мажорной гаммы (поставляемая с системой мелодия JustMajor) представлен на рис. 13.6. Помимо фрагмента JustMajor имеется еще 11 фрагментов, которые поставляются с системой Mathematica (QuarterTone, Mean-Major, MeanMinor, SixthTone, JustMinor и т. д.). Все они могут воспроизводиться функцией Scale.
Рис. 13.6. Пример воспроизведения музыкального фрагмента
Кроме того, есть ряд функций преобразования:
- HertzToCents [f list] – преобразует список частот (в герцах) в список музыкальных интервалов (в центах);
- CentsToHertz [ilist] – преобразует список музыкальных интервалов (в центах) в список частот (в герцах), начиная с частоты 440 Гц;
- CentsToHertz [ilist, f ] – преобразует список музыкальных интервалов (в центах) в список частот (в герцах), начиная с заданной частоты f.
Примеры преобразования даны ниже:
<
<
Miscellaneous`Music`
HertzToCents[{
400
,
450
,
525
}]
{
203.91
,
266.871
}
alist
=
Tablet N[
440
2
^
(i
/
12
)], {i,
0
,
12
}]
{
440
,.,
466.164
,
493.883
,
523.251
,
554.365
,
587.33
,
622.254
,
659.255
,
698.456
/
739.989
,
783.991
,
830.609
,
880
.}
HertzToCents[alist]
{
100
.,
100
.,
100
.,
100
.,
100
.,
100
.,
100
.,
100
.,
100
.,
100
.,
100
.,
100
.}
CentsToHertz[{
0
,
600
}]
{
440
.,
622.254
}
Описанные возможности синтеза музыки являются скорее данью моде на мультимедиа, чем нужными на практике. Так, время подготовки музыкального объекта довольно значительно (до десятка секунд на компьютере с процессором Pentium II 350). Так что они годятся только для создания простейших музыкальных звуков, которыми можно сопровождать некоторые учебные программы.