<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF128%3ASuperCollider</id>
		<title>LXF128:SuperCollider - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF128%3ASuperCollider"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF128:SuperCollider&amp;action=history"/>
		<updated>2026-05-13T15:34:38Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF128:SuperCollider&amp;diff=11568&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Запускаем двигатель */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF128:SuperCollider&amp;diff=11568&amp;oldid=prev"/>
				<updated>2011-03-24T10:59:24Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Запускаем двигатель&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 10:59, 24 марта 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; )&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Теперь, при курсоре внутри скобок, нажмите '''F5''' в вашем редакторе ''Vim'' для запуска блока кода ('''F6''' выполняет отдельную строку, '''F5''' – целый кусок внутри скобок). Вы должны получить результа ты в окне отчета; надеюсь, их связь с набранным кодом ясна. Теперь мы можем рассмотреть, как структурирован объектно-ориентированный язык ''SuperCollider&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/del&gt;''. В первой строке, '''«Math lesson»''' задает объект '''String''' (строка), и мы выполняем его метод '''postln'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Теперь, при курсоре внутри скобок, нажмите '''F5''' в вашем редакторе ''Vim'' для запуска блока кода ('''F6''' выполняет отдельную строку, '''F5''' – целый кусок внутри скобок). Вы должны получить результа ты в окне отчета; надеюсь, их связь с набранным кодом ясна. Теперь мы можем рассмотреть, как структурирован объектно-ориентированный язык ''SuperCollider''. В первой строке, '''«Math lesson»''' задает объект '''String''' (строка), и мы выполняем его метод '''postln'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Все объекты знают, что делать с методом '''postln''' – они выводят свое представление, а также символ перевода строки. Примерно то же произойдет и в следующей строке, но здесь есть один нюанс. Когда мы пишем '''3+5''', то создаем два целых числа, затем метод '''+''' возвращает другой целочисленный объект, являющийся результатом их сложения. Сумма распечатывается методом''' postln'''. (Скобки поставлены просто чтобы применить '''.postln''' к результату, а не к слагаемому 5). Результат на самом деле выводится дважды, но не бойтесь! Первый раз он печатается по нашему запросу с '''postln''', а второй – потому что язык всегда выдает результат последнего выражения.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Все объекты знают, что делать с методом '''postln''' – они выводят свое представление, а также символ перевода строки. Примерно то же произойдет и в следующей строке, но здесь есть один нюанс. Когда мы пишем '''3+5''', то создаем два целых числа, затем метод '''+''' возвращает другой целочисленный объект, являющийся результатом их сложения. Сумма распечатывается методом''' postln'''. (Скобки поставлены просто чтобы применить '''.postln''' к результату, а не к слагаемому 5). Результат на самом деле выводится дважды, но не бойтесь! Первый раз он печатается по нашему запросу с '''postln''', а второй – потому что язык всегда выдает результат последнего выражения.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF128:SuperCollider&amp;diff=11566&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Запускаем двигатель */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF128:SuperCollider&amp;diff=11566&amp;oldid=prev"/>
				<updated>2011-03-24T10:30:25Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Запускаем двигатель&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 10:30, 24 марта 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Запускаем двигатель===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Запускаем двигатель===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Содержание=''SuperCollider'' можно вызы вать из скриптов, но предлагаемый нами метод позволяет легко править код.|Ширина=300px}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Содержание=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Изображение:LXF128_38_1.jpg|300px]]&lt;/ins&gt;''SuperCollider'' можно вызы вать из скриптов, но предлагаемый нами метод позволяет легко править код.|Ширина=300px}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;После установки ''SuperCollider'' у вас появятся два исполняемых файла: ''scsynth'' (суперэффективный аудиодвижок) и ''SCLang'' (язык). Их можно вызывать напрямую, но удобнее работать в любимом текстовом редакторе. Сам я предпочитаю ''Vim''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;После установки ''SuperCollider'' у вас появятся два исполняемых файла: ''scsynth'' (суперэффективный аудиодвижок) и ''SCLang'' (язык). Их можно вызывать напрямую, но удобнее работать в любимом текстовом редакторе. Сам я предпочитаю ''Vim''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF128:SuperCollider&amp;diff=11565&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF128:SuperCollider&amp;diff=11565&amp;oldid=prev"/>
				<updated>2011-03-24T10:26:40Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: ''SuperCollider''&lt;br /&gt;
&lt;br /&gt;
==Рингтоны в ваш телефон. ''SuperCollider''==&lt;br /&gt;
&lt;br /&gt;
: Создайте звуки и музыку с нуля при помощи языка сценариев. От '''Дэна Стоуэлла''' у вас в ушах зазвенит...&lt;br /&gt;
&lt;br /&gt;
Случалось ежиться от звуков отвратительной мелодии для звонка? Мы это исправим. Собственные аудио-эффекты и мелодии позволит создать ''SuperCollider'', простой язык программирования сценариев. Вам предоставляются ноты и сэмплы, и вы можете применить их для того, чтобы удивить окружающих уникальной мелодией звонка, созданной лично вами.&lt;br /&gt;
&lt;br /&gt;
Чтобы установить ''SuperCollider'' из исходных текстов, скачай те и разархивируйте код с сайта http://supercollider.sourceforge.net/downloads. Имеется несколько зависимостей, которые вам предоставит менеджер пакетов (''SCons'' для компиляции и ''fftw3, jackd'' и ''libsndfile'' для работы со звуком). Затем скомпилируйте и установите ''SuperCollider'', а также его модули расширения для ''Vim'' и ''Emacs'':&lt;br /&gt;
&lt;br /&gt;
 scons &amp;amp;&amp;amp; sudo scons install &amp;amp;&amp;amp; cd editors/scvim &amp;amp;&amp;amp; sudo scons install-all&lt;br /&gt;
&lt;br /&gt;
Конечно, если ваш дистрибутив уже содержит последнюю версию ''SuperCollider'', ее незачем собирать вручную. Пакеты для Ubuntu доступны на https://launchpad.net/~supercollider.&lt;br /&gt;
&lt;br /&gt;
===Запускаем двигатель===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=''SuperCollider'' можно вызы вать из скриптов, но предлагаемый нами метод позволяет легко править код.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
После установки ''SuperCollider'' у вас появятся два исполняемых файла: ''scsynth'' (суперэффективный аудиодвижок) и ''SCLang'' (язык). Их можно вызывать напрямую, но удобнее работать в любимом текстовом редакторе. Сам я предпочитаю ''Vim''.&lt;br /&gt;
&lt;br /&gt;
''SuperCollider'' использует ''Jack'' – продвинутый способ общения со звуковой картой под Linux (в качестве альтернативы, во время сборки можно выбрать ''Portaudio''). Для управления ''Jack'' я рекомендую на редкость удобный графический интерфейс ''QjackCtl''. Установите его из вашего менеджера пакетов, запустите из менюи нажмите '''Start'''.&lt;br /&gt;
&lt;br /&gt;
Пакет ''SuperCollider'' для Ubuntu включает графические иконки для меню приложений, но в любой системе вы сможете выполнить программу через окно терминала, или вызвать ''scvim'' для запуска ''Vim'' в режиме ''SuperCollider''. При этом появится сам ''Vim'' плюс окно, где будут отражаться результаты работы кода. Наберите в вашем редакторе ''Vim'' следующее:&lt;br /&gt;
&lt;br /&gt;
 “Hello world!”;&lt;br /&gt;
&lt;br /&gt;
Для выполнения этого простого кода убедитесь, что ваш курсор находится на той же строке, что и код, и нажмите '''F6''' (это в ''scvim''; в ''Emacs'' используйте '''Ctrl+C Ctrl+C'''). Вы определили '''String''' [Строку] и попросили ''SuperCollider'' обработать ее – результат (та самая строка) появится в окне отчета. Но вы не ограничены одной строчкой кода. Наберите&lt;br /&gt;
&lt;br /&gt;
 (&lt;br /&gt;
 “Maths lesson”.postln;&lt;br /&gt;
 (3+5).postln;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
Теперь, при курсоре внутри скобок, нажмите '''F5''' в вашем редакторе ''Vim'' для запуска блока кода ('''F6''' выполняет отдельную строку, '''F5''' – целый кусок внутри скобок). Вы должны получить результа ты в окне отчета; надеюсь, их связь с набранным кодом ясна. Теперь мы можем рассмотреть, как структурирован объектно-ориентированный язык ''SuperCollider'''. В первой строке, '''«Math lesson»''' задает объект '''String''' (строка), и мы выполняем его метод '''postln'''.&lt;br /&gt;
&lt;br /&gt;
Все объекты знают, что делать с методом '''postln''' – они выводят свое представление, а также символ перевода строки. Примерно то же произойдет и в следующей строке, но здесь есть один нюанс. Когда мы пишем '''3+5''', то создаем два целых числа, затем метод '''+''' возвращает другой целочисленный объект, являющийся результатом их сложения. Сумма распечатывается методом''' postln'''. (Скобки поставлены просто чтобы применить '''.postln''' к результату, а не к слагаемому 5). Результат на самом деле выводится дважды, но не бойтесь! Первый раз он печатается по нашему запросу с '''postln''', а второй – потому что язык всегда выдает результат последнего выражения.&lt;br /&gt;
&lt;br /&gt;
Хватит приветствий и математики: давайте, наконец, издадим какой-нибудь звук. До сих пор мы использовали только язык ''SuperCollider''; на сей раз привлечем и аудиодвижок:&lt;br /&gt;
&lt;br /&gt;
 s.boot;&lt;br /&gt;
&lt;br /&gt;
По умолчанию, переменная '''s''' означает аудиосервер. Вы увидите ряд сообщений в окне отчета во время загрузки сервера, соединения с ''Jack'', и т. д., а итоговым сообщением будет&lt;br /&gt;
&lt;br /&gt;
 SuperCollider 3 server ready..&lt;br /&gt;
 notification is on&lt;br /&gt;
&lt;br /&gt;
Сначала мы сохраним '''SynthDef''' – определение синтезатора. Затем воспользуемся им для создания нот. Вот строка, создающая '''SynthDef''':&lt;br /&gt;
&lt;br /&gt;
 SynthDef(‘sinesound’, { Out.ar(0, SinOsc.ar(440) * 0.1) }).&lt;br /&gt;
 store;&lt;br /&gt;
&lt;br /&gt;
Мы сохраняем объект типа '''SynthDef''' и сообщаем в скобках две вещи. Первая – его имя, «'''sinesound»'''. Вторая – функция, определяющая звук, который мы хотим воспроизвести. Мы скоро перейдемк ней, но покамест отметим, что все находящееся внутри круглых скобок является частью функции.&lt;br /&gt;
&lt;br /&gt;
Ну вот, теперь послушаем! В следующей строке заметьте, что мы на сей раз не создаем объект '''SynthDef''', а вызываем '''Synth''' – это немного напоминает разницу между формочкой для печенья и самим печеньем:&lt;br /&gt;
&lt;br /&gt;
 x = Synth(‘sinesound’);&lt;br /&gt;
&lt;br /&gt;
Вы должны услышать чистый звук (синусоидальную волну), исходящий из левого динамика. Поскольку мы сохранили '''Synth''' в переменной '''x''', мы можем остановить его командой&lt;br /&gt;
&lt;br /&gt;
 x.free;&lt;br /&gt;
&lt;br /&gt;
(или нажмите '''F12''', чтобы прекратить все звуки разом) &lt;br /&gt;
&lt;br /&gt;
Теперь разберемся с функцией, выполняемой нашим '''Synth'''. Мы определили ее так:&lt;br /&gt;
&lt;br /&gt;
 { Out.ar(0, SinOsc.ar(440) * 0.1) }&lt;br /&gt;
&lt;br /&gt;
Вы видите два новых типа объектов: '''SinOsc''' и '''Out. SinOsc''' может генерировать синусоидальные волны, а '''Out''' передает все это на вашу звуковую карту. Мы определяем генератор звука '''SinOsc''', вызвав его метод ar (от «audio rate», частота звука) с одним аргументом, представляющим частоту в герцах. Таким образом, этот внутренний кусочек говорит о том, что нам нужна синусоида с частотой 440 Гц.&lt;br /&gt;
&lt;br /&gt;
Затем мы умножаем ее на 0,1, чтобы приглушить громкость. Тут демонстрируется элегантная штука насчет создания музыки при помощи языка программирования: все стандартные математические операторы можно применить и к аудиосигналам. В данном случае умножение изменяет амплитуду звука.&lt;br /&gt;
&lt;br /&gt;
'''Out''' используется схожим образом, но аргументов здесь два. Первый, где стоит число 0, отвечает за то, какой канал выводить: 0 – левый, 1 – правый. Второй – то, что мы хотим получить на выходе, а именно нашу не-слишком-громкую синусоиду.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда вы знаете, как все это работает, пора поиграть с '''SynthDef''' и что-нибудь изменить. Как насчет того, чтобы издать вместо '''SinOsc''' блеющий или визжащий звук? Или – что получит ся, если умножить нашу синусоиду на другую?&lt;br /&gt;
&lt;br /&gt;
===Порезвимся===&lt;br /&gt;
&lt;br /&gt;
Прекрасно, ноту мы создали, теперь создадим мелодию из нескольких нот. Но сперва немного видоизменим '''SynthDef''':&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Скорая помощь|Содержание=Окно отчета пока зывает сообщения, выводимые кодом и аудиосервером. Когда вы запускаете кусок кода, результат отображается здесь –&lt;br /&gt;
как и сообщения об ошибках.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
 (&lt;br /&gt;
 SynthDef(‘ringer’, {&lt;br /&gt;
 arg freq=440, amp=0.1, gate=1;&lt;br /&gt;
 Out.ar(0, SinOsc.ar(freq) * amp);&lt;br /&gt;
 FreeSelf.kr(1-gate);&lt;br /&gt;
 }).store;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
Звук будет тот же, что и в бывшем '''SynthDef''', но добавилась пара синтаксических конструкций. Во-первых, мы задали для нашей функции аргументы, используя ключевое слово arg — объявив вещи, контролируемые извне. Мы превратили частоту нашей синусоиды, а также множитель ее амплитуды, в параметры под названиями '''freq''' и '''amp'''. Третий аргумент, '''gate''' [вентиль], используется в музыкальных отрывках – они устанавливают вентиль в 0, когда нужно, чтобы '''Synth''' перестал издавать звуки. Именно это делает '''FreeSelf''': для '''Synth''' это самый простой способ остановиться.&lt;br /&gt;
&lt;br /&gt;
Теперь давайте составим последовательность нот при помощи объекта '''Pbind'''. Укажем, какой инструмент использовать (только что созданный '''SynthDef'''), и серии частот:&lt;br /&gt;
&lt;br /&gt;
 (&lt;br /&gt;
 p = Pbind(&lt;br /&gt;
 ‘instrument’, ‘ringer’,&lt;br /&gt;
 ‘freq’, Pseq([440, 440, \, \, \], inf)&lt;br /&gt;
 ).play;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
Для частоты мы создаем '''Pseq''' (очередность паттернов), содержащий набор из пяти элементов: две ноты по 440 Гц и три паузы (косая черта обозначает музыкальную паузу). Очередность повторяется вечно ('''inf''' означает infinity, бесконечность), но при желании можно остановить ее с помощью&lt;br /&gt;
&lt;br /&gt;
 p.stop;&lt;br /&gt;
&lt;br /&gt;
Вы можете также поиграть с настройками '''Pbind'''. Измените очередность нот и пауз в '''Pseq''' и создайте мелодию на свой вкус. Или даже воспользуйтесь '''Prand''' или '''Pshuf''' вместо Pseq, для выбора нот случайным образом. Длительность нот контролируется так же, как частота.&lt;br /&gt;
&lt;br /&gt;
Немного помучившись, вы непременно создадите гениальный шедевр – и, естественно, захотите сохранить его для потомства. Запустите запись на сервере следующими двумя строками:&lt;br /&gt;
&lt;br /&gt;
 s.prepareForRecord(“/sc3test.aiff”);&lt;br /&gt;
 s.record;&lt;br /&gt;
&lt;br /&gt;
А по окончании – остановите:&lt;br /&gt;
&lt;br /&gt;
 s.stopRecording;&lt;br /&gt;
&lt;br /&gt;
Мы рассмотрели здесь только самые основы. Вы можете создавать в ''SuperCollider'' полноценные музыкальные произведения, даже интерактивные, которые реагируют на ввод от пользователя, или генерирующие, которые звучат каждый раз по-разному. Так же можно взаимодействовать с оборудованием и создавать графические интерфейсы. За вдохновением обратитесь к богатой коллекции справочных документов или на сайт http://supercollider.sf.net/videos.&lt;br /&gt;
&lt;br /&gt;
===Интересный рингтон===&lt;br /&gt;
&lt;br /&gt;
Убедитесь, что аудиосервер загружен ('''s.boot'''), затем запустите следующий код:&lt;br /&gt;
&lt;br /&gt;
 (&lt;br /&gt;
 TempoClock.tempo = 1.5;&lt;br /&gt;
 p = Pbind(&lt;br /&gt;
 ‘midinote’, Pseq([76,74,66,68,73,71,62,64, 71,69,61,64, 69]),&lt;br /&gt;
 ‘dur’, Pseq([1, 1, 2, 2] / 4, inf)&lt;br /&gt;
 ).play;&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
Возможно, вам покажется, что он исполняет слишком знакомую мелодию. Теперь можно поиграть с кодом и испортить его – попробуйте воспользоваться нецелыми числами для полутонов, или заменить '''Pseq''' на '''Prand'' для проигрывания нот в случайном порядке.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>