не собирается supercollider-svn

А, поскольку это программа звукосинтеза в реальном времени – начну с того, как настроить систему для вменяемой работы с ней (ага, в этом месте все достают заготовленные напильники и бубны, заседание умелых ручек можно считать открытым).
Итак, нам потребуется ядро реального времени. Его сборка – тема отдельной статьи (если повезёт, можно даже поставить из AUR). Также не стоит забывать, что под новое ядро, возможно, придётся ставить и новые модули, например, проприетарные драйвера на видиоконтроллер. Разобравшись с ядром, следует поставить ограничения на PAM, вписав нужное в /etc/security/limits.conf (когда-то я уже это делал) и не забыть проверить инициализацию PAM в любимом login manager (раскомментировать в /etc/pam.d/<ваш_любимый_LM> всё нужное).
Теперь ставим аудиосервер jack. Его настройка уже сильно зависит от имеющегося железа, единственное требование – запустить его в режиме реального времени с наименьшей задержкой, но достаточным буффером, чтобы избавиться от рипения. У меня он показывает хороший результат при запуске
jackd -Rv -p512 -d alsa -dhw:0 -r48000 -p4096 -n2
Ну, и, конечно, потребуется редактор. Пожалуй, оптимальным тут будет EMACS 8) .
А теперь – самое интересное :) – ставим SuperCollider. Если повезёт – из AUR, нет – просим у h4rtr3d'а ;)
(как оказалось, для работы программа требует avahi, хотя как зависимость, оно почему-то не тянется, так что будьте осторожны). После установки необходимо настроить – SuperCollider для EMACSа и EMACS для SuperCollider'а ;D
Итак, находим в исходниках linux/examples/{sclang.cfg.in, sclang.sc} и копируем их в ~/{.sclang.cfg, .sclang.sc} соответственно. Далее – правим под свои нужды. Если кому лень рыться в исходниках – выкладываю свои конфиги – на данный момент они должны работать в Arch Linux (хотя бывает всякое).
// =====================================================================
// file:		sclang.sc
// content:		example sclang startup file
// author:		stefan kersten <[email protected]>;
// =====================================================================
// NOTE:		this is just an example not needed for
//				regular operation of sclang!
// =====================================================================
// set up Server to use a different executable
Server.program = "/usr/bin/scsynth";
// same for Score
Score.program = Server.program;
// set some server options for a different setup
#[\internal, \local].do { |s|
	s = Server.perform(s);
	s.options.numInputBusChannels = 2;
	s.options.numOutputBusChannels = 5;
};
// hook up jack ports to audio channels
"SC_JACK_DEFAULT_INPUTS".setenv(
	"system:capture_1,"
	"system:capture_2"
);
"SC_JACK_DEFAULT_OUTPUTS".setenv(
	"system:playback_1,"
	"system:playback_2,"
//	"system:playback_3"
//	"system:playback_4,"
//	"system:playback_5"
);
// EOF
# ======================================================================
# file:		sclang.cfg
# content:	SuperCollider library configuration file
# author:	stefan kersten <[email protected]>;
# ======================================================================
# usage:	install as /etc/sclang.cfg or ~/.sclang.cfg
# ======================================================================
# default class library
+/usr/share/SuperCollider/SCClassLibrary
# system-wide extensions
+/usr/share/SuperCollider/Extensions
# in case you don't want to use add-on libraries, uncomment as necessary
#-/usr/share/SuperCollider/SCClassLibrary/crucial
#-/usr/share/SuperCollider/SCClassLibrary/JITLib
# EOF
Теперь настраиваем EMACS ;D !!!
Достаточно в .emacs вписать
(require 'sclang)
Теперь все открываемые файлы с расширением *.scd будут использовать режим SCLang
Для загрузки режима для любого открытого файла можно использовать M-x sclang-mode (Жмём Alt+x и набираем sclang mode ; не забываем об автодополнении) Если не хочется редактировать конфиг EMACS'а – можно запустить как
emacs -sclang
Впрочем, если EMACS уже загружен без этой библеотеки – её можно догрузить M-x load-library RET sclang RET . На сим и остановлюсь, ибо необьятен EMACS в величии своём :D
Итак, предположим, самые стойкие, преодолев сий тернистый путь, задались вопросом – а как всё это работает, как теперь извлечь хоть какой-нибудь звук. Итак! Загрузившись с rt-ядра, запустив jackd в rt режиме, теперь – запускаем emacs в режиме SCLang.
Теперь – в EMACS – жмём C-c C-l (Ctrl+c и Ctrl+l – правда весело?), после чего sclang загрузит Super Collider, и подключится к jack. Всё! Можно писать код своего музыкального шедевра. Запускается каждая строчка кода сочитанием C-c C-c (Ctrl+c два раза подряд). Код для примера:
Server.default = s = Server.internal.boot;
{SinOsc.ar(LFNoise0.ar([10,15],400,800),0,0.3)}.play;
Первая строчка запускает звуковой сервер, вторая – начинает воспроизведение…довольно странного звука ;)
Тем, кому надоест слушать мой шедевр, подскажу – выключить всё это можно набрав M-x sclang-stop.

Настоянельно рекомендуемая информация для дополнительного ознакомления:
тут, и, особенно, тут: /usr/share/SuperCollider/Help/Linux/EmacsEditor.html
Естественно, для работы с SC требуются элементарные знания звукотехники, но не нужно быть гением, чтобы понимать Преобразование Фурье, например. Тем, кто еще не пробовал себя в звукосинтезе – рекомендую для начала модульные синтезаторы, коих под Linux, конечно, есть. Как-то: gAlan, Spiral Synth, ALSA Modular synth, Ingen (много их) Более продвинутых могут заинтересовать языки визуального алгоритмического звукосинтеза: Pure Date, JMax. Также существуют алгоритмические секвенсоры AlgoScore и KyCE (да-да, есть под Linux и такое). Да и SuperCollider, конечно, не одинок – CSound, Chuck, Q_mus, Faust (и это только самые известные из них)
Для тех, кто, всё-же выберет изучение Super Collider – выложил учебник.
Молодец что выложил :-) если будет время - оформи в статью на wiki, или хотя бы Зевсу на easylinux.ru отпубликуй, коротенький такой обзор для понимания ху из ху.
systemd должен умереть.
 
Зарегистрироваться или войдите чтобы оставить сообщение.