80-ые - Хаос

В Csound'е чудесно то, что он преподносит синтез с различных точек зрения и обеспечивает широкий диапазон стилей изучения – позволяя Вам представлять себе инструмент и работать с ним на разных уровнях – от "уровня опкодов " до "уровня исходного кода". Например, представьте себе, что после того как Вы поэкспериментировали с новым опкодом lorenz Ханса Микельсона (Hans Mikelson) и получили несколько замечательных звуков, настраивая параметры в реальном времени, Вы копнули немного глубже. Как выглядит аттрактор Лоренца и какие звуковые паттерны он будет генерировать? На рисунках 17a и b представлены две иллюстрации аттрактора Лоренца.


 
Навигация

[индекс] [предыдущая] [следующая]


cSounds.com

[+] На главную
[+] Тъюториалы

 
Рисунок 17a: Аттрактор Лоренца.

Рисунок 17b: Аттрактор Лоренца.


 
Опкод lorenz является реализацией системы уравнений Лоренца – одной из вех в развитии теории хаоса. Система Лоренца – хаотическая динамическая система, использовавшаяся первоначально для моделирования движения частиц в конвекционных потоках и упрощенных системах моделирования погоды. Лоренц обнаружил, что небольшие различия в начальных условиях очень быстро приводят к значительной разнице в результатах. Уравнения Лоренца приближаются следующим образом:


  x = x + h*(s*(y - x))  y = y + h*(-x*z + r*x - y)  z = z + h*(x*y - b*z)
На рисунке 18 мы видим вариант инструмента Лоренца, построенный из примитивов Csound'а. Фактически, этот Csound-инструмент используется в качестве "калькулятора" для решения уравнений и возврата результата. После того, как вычислено значение переменной axnew (и двух других переменных), оно присваивается переменной ax и это новое значение используется снова в правой части уравнения, двумя строками выше, для вычисления следующего блока сэмплов. Помните, что инструмент в Csound'е является программным циклом, в котором i-переменные вычисляются только один раз, k-переменные вычисляются с управляющей частотой (по умолчанию 4100 раз в секунду) и a-переменные вычисляются с аудиочастотой (обычно 44100 раз в секунду). Таким образом, на каждом проходе через инструмент вычисляется и записывается на диск блок сэмплов (sr/kr сэмплов), причем на одну секунду приходится k таких блоков (т. е. можно сказать, что блоки вычисляются с k-частотой).


 
Рисунок 18: Csound-оркестр для вычисления аттрактора Лоренца.


 
Раз мы поняли этот инструмент, мы могли бы решить взглянуть на сам исходный код и сравнить наш, составленный из опкодов-примитивов вариант, с действительным кодом на C (см. рисунок 19). В Csound'е, Вы всегда можете читать и изучать исходный код. Фактически, Вы также можете компилировать свои собственные опкоды и, таким способом, расширять язык.


 
Рисунок 19: Исходный код Csound-опкода Лоренца на языке C.


 
Хотя этот код хорошо комментирован и очень читабелен и я счастлив, что имею доступ к нему, я также счастлив знать, что для изучения Csound'а не нужно учить язык C и что-либо на нем программировать. Таким образом, даже до того, как опкод lorenz появился в Csound'е, Вы могли бы использовать Csound для изучения и исследования звучания аттрактора Лоренца. Но, когда было установлено, что аттрактор имеет определенное количество применений в музыке и дает интересные и уникальные звуки, появился смысл добавить такой генератор в сам язык в форме опкода, синтаксис которого следующий:


 
ax, ay, az  lorenz  ks, kr, kb, kh, ix, iy, iz, iskip
 
Обращаясь к мануалу, мы можем сравнить инструмент на основе этого опкода, показанный на рисунке 20 с вариантом, составленным из базовых опкодов Csound'а, показанным на рисунке 18.


 
Рисунок 20: Файл хаотического оркестра, представляющий опкод lorenz.


 
Хотя этот инструмент выдает интересный "шум", все же он довольно хаотичен. Фактически, одно из наиболее важных свойств хаотических систем – их "чувствительность к начальным условиям". Что сделало бы наше исследование этого нового волнового пространства значительно более эффективным, так это приспособить инструмент к использованию MIDI-контроллеров для изменения параметров в реальном времени.


Для этого мы используем новый объединенный файловый формат Csound'а .csd. Этот структурированный файл данных использует "тэги", как в языках разметки типа HTML для разграничения различных элементов – опций командной строки (CsOptions), оркестрового файла (CsInstruments) и файла партитуры (CsScore). Объединенный файловый формат .csd особенно полезен, если вы хотите внедрить файлы оркестра и партитуры в интернет-страницу так, чтобы иметь доступ к ним обоим одним щелчком. Часто также бывает удобно ассоциировать определенные параметры командной строки с файлами оркестра и партитуры до генерации, что также возможно с данным файловым форматом. На рисунке 21 мы видим .csd-файл с MIDI-оркестром, содержащим FM-инструмент Лоренца.


 
Рисунок 21: Адаптированный для MIDI FM-инструмент Лоренца с использованием
объединенного файлового формата .csd.


 
В нашем MIDI-варианте мы используем выход опкода lorenz, чтобы хаотически изменять частоту (icps+kx) и индекс модуляции (kmod*ky) FM-опкода Csound'а foscil. Элементы управления крайне чувствительны, однако то и дело выскакивают новые классы тембров. Прислушайтесь к жужжанию губ тромбониста в мундштук!


  [дальше] 90-ые – Волноводы