Главная > Mathematica 8 > Синтез музыкальных звуков — Music


Синтез музыкальных звуков — Music

Синтез музыкальных звуков — Music
Подпакет Music как бы продолжает рассмотренный ранее подпакет поддержки звуковых возможностей системы Mathematica. Он задает функцию последовательного воспроизведения списка, содержащего отдельные звуки:

  • Scale [ilist, freq, dur] — генерирует звуковой объект, представленный данными списка ilist музыкальных интервалов, с частотой freq и длительностью dur.

Пример воспроизведения мажорной гаммы (поставляемая с системой мелодия JustMajor) представлен на. Помимо фрагмента JustMajor имеется еще 11 фрагментов, которые поставляются с системой Mathematica (QuarterTone, Mean-Major, MeanMinor, SixthTone, JustMinor и т. д.). Все они могут воспроизводиться функцией Scale.
Кроме того, есть ряд функций преобразования:

  • 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). Так что они годятся только для создания простейших музыкальных звуков, которыми можно сопровождать некоторые учебные программы.
Функции времени и дат — Calendar
В пакете расширений Miscellaneous есть ряд подпакетов, содержащих функции времени и даты. Так, в подпакете Calendar сосредоточены вычисления, относящиеся к календарным датам:

  • DayOfWeek [ {year, month, day} ] — вычисляет день недели по заданным году, месяцу и числу;
  • DaysBetween[{yearl,monthl,dayl},{year2, month2, day2} — вычисляет число суток между двумя датами:
  • DaysPlus [ {year, month, day}, n] — дает дату и-го дня после заданной даты.

Во всех этих функциях возможна опция Calendar->cal. Имеется также функция смены календаря:

  • CalendarChange [ {year, month, day}, call, cal2] — преобразует заданную дату из одного календаря в другой.

Примеры вычислений с датами:
<<Miscellaneous` Calendar`
DayOfWeek{[1988, 6, 23}]
DaysBetween[{1900, 1, 1}, {1901, 1,1}]
365
DaysPlus[{1900, 1, 1}, 366]
{1901, 1, 2}
DaysBetween[{1900, 1, 1},{1901, 1, 1},Calendar -> Julian]
366
Calendar-Change[{1992, 2, 29}, Gregorian, Julian]
{1992, 2, 16}
CalendarChange[{1992, 2, 29}, Gregorian, Islamic]
{1412, 8, 25}
CalendarChange[{1,1,1}, Islamic, Julian]
{622, 7, 16}

Статьи по теме

Комментарии запрещены.