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

         

Синтез музыкальных звуков — 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). Так что они годятся только для создания простейших музыкальных звуков, которыми можно сопровождать некоторые учебные программы.



Содержание раздела