CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Как поют пингвины

Сергей ЯРЕМЧУК grinder@ua.fm

Уже больше года я рассказываю на страницах журнала о трудностях и лишениях командной строки, показываю как привлекательные, так и спорные стороны Linux. За это время на мой адрес пришло много писем. Если поначалу были и такие, в которых писалось что-то вроде «все понятно, но я не понял, что такое Linux. Это программа такая, да?», то теперь когда мы в основном уже разобрались с повседневной деятельностью, читателя интересуют вопросы уже более специфического использования этой системы. Например, можно ли создавать музыку под этой операционной системой?

Да, задачка еще та. Я когда-то давно, до моего знакомства с этой осью, юзал SoundForge и CoolEdit, но потихоньку опингвинившись, как-то забросил это дело и увлекся сетями. К тому же в дистрибутивах не было (нет и сейчас) и намека на программы для обработки звука. Да что там говорить — звуковую карту настроить было проблематично!

Но прогресс на месте не стоит, и Linux потихоньку двигается к пользователю. И вот когда мне первый раз задали такой вопрос, честно говоря, застал он меня врасплох. Я начал потихоньку копать в этом направлении. Копал довольно долго (где-то с сентября 2002). Вырисовалась довольно интересная ситуация, которую я сейчас вам и обрисую. Получается, что общей информации по обработке звука кот наплакал, но если начинать раскапывать отдельные приложения, то ее получается даже слишком много. Беда только, она беспорядочна — поэтому, наверное, я и не затрагивал так долго эту тему. Linux первоначально задумывался всего лишь как операционная система, имитирующая Unix, а кто, скажите мне под Unix'ами, музыку создает? Что-то леса рук не видно. Вот именно отсюда и проблемы. Система понравилась программистам-сисадминам, что и сказалось на предлагаемом программном обеспечении. Дошло до того, что количество различных простых редакторов а-ля vi или nano уже давно перевалило за тысячу. Ведь кто пишет программы в этой системе? Сами же пользователи, если понадобилось что-то срочно. Например, захотелось редактор с горячими клавишами, имитирующими любимый MS Word :-) — бах... и появился еще один редактор. Это как раз тот случай, когда свобода пошла не совсем на пользу, налицо явный перекос в приложениях. То есть для того чтобы появилось такое приложение необходимо, чтобы музыкант поставил себе Linux, полюбил его, как я, выучил С и наваял себе пару програмулин. Вы себе можете это представить? Нет. Вот и я с трудом. Таких людей единицы, поэтому прогресс в этом направлении хоть и двигался (прошу заметить, глагол употреблен в прошедшем времени), но очень уж медленно. Но это еще не самое страшное. Первое, что стояло на пути прогресса в этом направлении, — это сама система. Главное для сервера что? Стабильность. Которая никак не вязалась с необходимостью обрабатывать звук в реальном времени. О проблемах ядра и путях их решения я писал в отдельной статье, еще некоторые подробности можно найти по адресу http://www.linuxdj.com/audio/lad/resourceslatency.php3. Так что этот вопрос будем считать уже решенным. При необходимости, использовав один из патчей, можно выжать из ядра честные 2 мс, чего вполне достаточно. А написав приложение под real-time ядро или хотя бы под те, что используют FIFO_SHED, можно получить и меньшие задержки. И кстати, по официальной информации, компания ALTLinux до недавнего времени собирала ядра именно с таким патчем, это сейчас они там что-то такое замышляют и собирают пока ядра без него.

Другая проблема состоит в том, что в настоящее время используется несколько драйверов звуковых карт. По умолчанию Linux работает со свободными аудиодрайверами OSS/Lite aka OSS/Free aka OSS/Kernel от Open Sound Sistem (http://www.opensound.com/), есть и коммерческие версии с большей поддержкой разнообразного оборудования и дополнительными возможностями. Это первые драйвера, которые вообще появились в этой системе, бесплатная версия их включена в ядро и, наверное, наиболее популярна. Но вот latency их — около 150 мс, что, мягко говоря, многовато будет. Другая альтернатива, проект ALSA (Advanced Linux Sound Architecture, http://www.alsa-project.org), выросший из Gravis UltraSound Project. Кто, может, помнит, были когда то такие звуковухи, вот первоначально под них и писались драйвера. Со временем проект расширился, и в настоящее время он предусматривает поддержку большинства карт, а главное, полную совместимость с OSS/Lite (хотя, если честно, глюки бывают (или бывали)). Главное преимущество ALSA — поддержка одновременной работы нескольких звуковых карт, поддержка работы сразу нескольких приложений и возможность real-time режима. Практически во все современные дистрибутивы уже включены ALSA-драйверы. И latency уже получше будет — по утверждению разработчиков, не больше 5—6 мс, что является необходимым минимумом. И главное, что в следующей версии ядер 2.6.* ALSA-драйвера будут встроены в ядро, так что об OSS/Lite в скором времени, скорее всего, все потихоньку позабудут. Есть еще закрытые драйвера от производителей звуковых карт. Яркий пример — Creative Live, которые распространяются исключительно в бинарниках. Ничего не поделаешь, что есть, то есть.

Думаете, это все? А вот и нет. Есть еще такая штука —аудиосервер, позволяющий предоставить доступ к одному устройству /dev/dsp сразу нескольким приложениям. Напомню, OSS разрабатывалась лишь затем, чтобы обеспечить доступ к устройству, не более того, а потому одно приложение захватит его и не будет делиться остальными. За все время существования этой ОС этих серверов наплодилось такое количество! Каждый уважающий себя оконный менеджер обязательно имеет свой звуковой сервер: в KDE рулит aRts, в Gnome —ESD (esound или Enlightenment Sound Daemon), в WindowMaker —WMSound, есть свой звуковой сервер даже в малыше IceWM. Ситуация запутанная. К тому же сейчас вместо ESD, имеющего довольно скудные возможности, потихоньку продвигается 'advanced' sound daemon (http://asd.sourceforge.net). Но мало того, что их наплодилось так много — все они задумывались для чего угодно, кроме как для обработки звука, а посему архитектура их далека от идеала и, как следствие, велики задержки. Обращает внимание разве что aRts; ребята из KDE в третьей версии немного подрихтовали его и теперь утверждают, что не такие уж большие у него эти самые задержки — 1 мс. Не знаю, верить или нет, мне он все равно кажется жутким тормозом, особенно по части потребления системных ресурсов. К тому же слишком много лишнего, как для обработки звука. Загрузите для интереса XMMS и NoAtun, а потом посмотрите при помощи top, как они потребляют ресурсы — второй в два раза тяжелее именно из-за aRts.

Но не все так мрачно. Наверное, решив, что чем что-то переписывать, лучше сделать с нуля, ребята из LAD (Linux Audio Development, http://www.linuxdj.com) создали аудиосервер JACK (Jack Audio Connection Kit, http://jackit.sourceforge.net), направив все усилия на то, чтобы обеспечить синхронное выполнение задач всеми клиентами и низкую латентность. Его можно использовать как с приложениями, написанными под low-latency, так и отдельно. При этом JACK вовсю использует SCHED_FIFO, и для стопроцентного real-time желательно запускать от имени root'a (или же открыть допуск к CAP_RESOURCE), что не всегда безопасно. Можно, конечно, использовать suid, но при этом может понадобиться изменить пару строк в исходниках ядра. А так сервер получился действительно шустрый и ненакладный для системы. Разработчики ясно дают понять, что это не замена для esd или artsd, они, мол, не старались предоставить многопользовательский доступ к устройству, их усилия направлены на создание многоприкладного устройства и разделение данных. И хотя работать с их изделием непросто, без него не откомпилируется ни одна уважающая себя программа, предназначенная для обработки звука, но к сожалению, пока таких единицы. И кстати, JACK работает только с ALSA, а по сути является его собственным звуковым сервером.

И еще одна проблема — мало просто создать приложение, необходимо обеспечить его максимальную функциональность т.е. нашпиговать его различными синтезаторами, эффектами, фильтрами, эквалайзерами и прочей дребеденью. Малыми силами это чересчур хлопотно, поэтому чаще всего эти модули отдают на откуп отдельным разработчикам и подключают потом в виде плагинов. Яркий пример — GIMP и XMMS; без подключаемых модулей это были довольно унылые программулины. Под Windows такого добра пруд пруди (хоть и стоят некоторые хорошую копейку), а вот в Linux маловато будет. Да, что-то из VST-плагинов втихаря уже портировано, но такого разнообразия, увы, пока нет. Чтобы решить проблему, было начато несколько проектов, но пока серьезно можно рассматривать разве только LADSPA (Linux Audio Developer's Simple Plugin API, http://www.ladspa.org) зародившийся в 2000 году (как и многие другие подобные проекты — видать, переломным был год); практически все новые разработки уже поддерживают эту технологию. На ранней стадии проекта LADSPA неутомимые ребята из той же группы LAD вошли в контакт с компанией Steinberg для переговоров относительно переноса VST-архитектуры в Linux; увы, они получили отворот-поворот (правда, там кроме лицензионных проблем была еще проблема портировки интерфейсов, используемых в API Steinberg). А так, прошу заметить, эта архитектура полностью открыта и бесплатна, развивается довольно быстро, сейчас число плагинов в LADSPA уже перевалило за сотню, и в скором времени уже просто не будет необходимости в портировании VST. Подробнее о настройках и возможностях LADSPA можно почитать в статье Dave Phillips'a Linux Audio Plug-Ins: A Look Into LADSPA (http://www.oreillynet.com/pub/a/linux/2001/02/02/ladspa.html), на этом же сайте можно найти еще несколько полезных статей на эту тему. И кстати, имеется ladspa-плагин к XMMS, который можно найти по адресу http://www.ecs.soton.ac.uk/~njl98r/code/ladspa. Еще за плагинами можно заглянуть по адресу http://plugin.org.uk.

Следующая проблема, с которой сталкиваются абсолютно все, — установка программ. Подчас приходится решать довольно нетривиальные задачи. Мало того, что придется весь Интернет излазить в поисках как самих программ, так и недостающих библиотек, но потом все это нужно умело откомпилировать, наложить патчи на ядро и пересобрать его, не говоря уже о постоянном чтении man'ов для постинсталляционной настройки. При некоторые проекты ведут себя так, будто их программа распространяется исключительно в исходниках. И они по-своему правы, ведь только в этом случае достигается максимальная производительность, но не каждому пользователю это под силу, особенно если он только начал знакомиться с этой системой.

Естественно, никто не захочет с этим всем возится и будет пользоваться Windows или Mac'ом. Хотелось, чтобы было как там — вставил диск, откинулся на спинку кресла, в результате через некоторое время получил полностью настроенную систему со всеми необходимыми компонентами, чтобы после перезагрузки мог уже творить. Мне известны по крайней мере три проекта, нацеленных конкретно на то, чтобы обеспечить пользователя полноценной звукообрабатывающей системой, не особо при этом его напрягая. Два проекта находятся еще в стадии развития, а один, скорее всего, немножечко подзахлох. Под номером первым в этом списке — хотя бы потому, что после его объявления на Linux стали смотреть немножко иначе, — я бы поставил проект AGNULA (A GNU/Linux Audio distribution, http://www.agnula.org), стартовавший первого апреля 2002 года (это не шутка) и рассчитанный на два года. Как следует из названия, цель разработчиков — создать дистрибутив, ориентированный конкретно на музыкантов (и наполненный, кроме всего прочего, еще и соответствующей документацией). Сам проект проводится под эгидой Европейской комиссии, при участии множества крупных научных, общественных и коммерческих организаций, включая даже такие организации как французский институт акустических исследований IRCAM (http://www.ircam.fr), Music Technology Group (http://www.iua.upf.es/mtg), Music Acoustics Group (http://www.speech.kth.se/music/performance), Фонд свободного ПО (Free Software Foundation Europe, http://fsfeurope.org), даже французское отделение компании Red Hat тоже засветилось здесь. Как видите, люди собрались серьезные, серьезным обещает быть и результат. В результате планируется создать два варианта дистрибутива: Debian-вариант (DeMuDi Debian Music Distribution, http://www.demudi.org), ориентированный скорее на специалистов, и Red-Hat версия (ReHMuDi Red Hat Music Distribution) — для обычных пользователей. Различия между ними будут заключаться только в дистрибутивах-носителях, а также в особенностях установки и работы с ними, музыкальные же функции будут идентичны. На втором году работы, кроме того, планируется перенести проект также на PowerPC и 64-битную архитектуру. По секрету скажу, что основой ReHMuDi служит RedHat 7.3, у которого убраны все серверы (зачем музыканту Apache?) и прочая ненужная дребедень, а добавлены необходимые пакеты. Поэтому тем, у кого аналогичный дистрибутив (или совместимый), можно, не стесняясь, тягать пакеты по одному и устанавливать, а если будут жалобы на отсутствие чего-то, это что-то брать здесь же. Все нужные пакеты для удобства сложены в одну папку и доступны как в сырцах (scr.rpm), так и уже откомпиленные —i386.rpm. Правда, некоторые версии далеко не последние, но потом поверх можно будет преспокойно установить свежатину. Поверьте, мороки все равно будет меньше.

Следующий проект, о котором мне известно, — это ALT Linux Multimedia, который задумывается как дополнение к Junior и будет включать отдельный диск, на котором найдете:

локализованное ПО для работы с мультимедийными данными;

документацию;

свободный клипарт (3D, SF2, ноты).

Больше и сказать нечего. Очевидно, есть смысл при выборе дистрибутива остановиться на ALT Linux, к тому же в их Сизифе уже имеются некоторые программы для обработки звука, как правило, локализованные и устанавливающиеся с одного тычка. Да, еще один момент. В настоящее время ведутся работы по украинизации многих приложений, в том числе и описываемых. Причем, как вы понимаете, когда есть исходный текст, проблема состоит именно в терминах, а не в необходимости декомпилировать код программы. Если кто может реально помочь в переводе специальных терминов на рiдну мову, заглянiть будь ласка за адресою http://dict.linux.org.uaили в рассылку linux@linux.org.ua, где обитают переводчики. Может, впишете свое имя в историю.

И последний проект, предлагающий комплексное решение означенной проблемы, —Turn-Key Linux Audio от Eastman Computer Music Center (http://lulu.esm.rochester.edu/kevine/turnkey/home.html), который первоначально задумывался как способ обеспечить бедных западных студентов ECMC полноценным студийным арсеналом, для использования на их домашних системах — как вы понимаете, с такой благородной задачей может справиться только linux и программное обеспечение с открытым кодом.

Здесь все просто (во, сказал!) — авторы собрали со всего света любимые утилиты для обработки звука, библиотеки, добавили кое-какую документацию и обеспечили удобство установки — достаточно запустить всего один скрипт, так же можно устанавливать и отдельные приложения. И после того, как все это хозяйство откомпилируется, пользователь, кроме документов и необходимых для работы библиотек, в итоге получает: 6 звуковых редакторов, 6 синтезаторов, около 5 миксеров, 7 анализаторов и еще большую кучу утилит, позволяющих содрать треки с Audio CD, записать их обратно, тьму конвертеров в различные звуковые форматы, утилиты поиска и море различных шаблонов, макрокоманд и программ, всех не перечислить. Единственный недостаток — размер, 116 Мб. Правда, и некоторые утилиты уже не последнего релиза, но при необходимости они довольно легко обновляются. Кстати — поверьте, это правда, — некоторые я смог увидеть работающими только здесь. Есть облегченная версия TKLA, но по сравнению с полной она выглядит чуть не издевательством. Авторы утверждают, что тестировали под Mandrake 8.х и 9.0, Suse, я устанавливал под RedHat 7.3 и потом под CRUX — идет на ура.

Среди коллекций программного обеспечения стоит также отметить PlanetCCRMA (http://ccrma-www.stanford.edu/planetccrma/software), научный центр по компьютерному исследованию в области звука и музыки Стэнфордского университета (CCRMA, Stanford University's Center for Computer Research in Music and Acoustics). У них довольно приличная коллекция собранных в rpm-пакеты low-latency ядер, свежих ALSA-драйверов и библиотек, а также различного музыкального, миди-, аудио-, видео- и 3D-софта с подробными мануалами и краткими инструкциями по установке. Так что если с make не в ладах, вам только сюда. Это, кстати яркий пример того, как можно заработать на открытом ПО, — они обучают пользованию за деньги.

Еще одна примечательная страница от Dave Phillips http://www.bright.net/~dlphilp/linuxsound — этот человек начал собирать здесь различные программы для обработки звука еще с 1995 года. Зайдите, не пожалеете — все ссылки рассортированы, собраны в одном месте, не нужно бегать по всему Интернету в поиске нужного приложения. Прекомпилированные RPM low-latency ядра, но с патчем от Ingo (не знаю, как по батюшке), можно найти на сайте Udo Jocher'a по адресу http://www.gardena.net/benno/linux/lowlatency-rpm.html(сами патчи —http://people.redhat.com/mingo/lowlatency-patches). Правда, первые версии патча сильно поругивали за низкую стабильность и надежность — «уродливые, но эффективные», даже дядюшка Линус покричал, — но сейчас, вроде, все путем. По адресу http://www.djcj.org/LAU/guide/ найдете Linux Audio Users Guide, в котором собраны ссылки на документы в виде HOWTO, которые могут понадобиться при настройке своей music-workstation. И еще один интересный документ —The Mandrake Audio Workstation HowTo (http://www.desktoplinux.com/articles/AT8018846552.html), в котором рассказано, как превратить свой Mandrake в звукообрабатывающую студию в кратчайшие сроки, объяснено, почему Linux, почему Mandrake, даны рекомендации по оборудованию, приложениям и файловой системе (по мнению автора, оптимальна XFS — думаю, он прав, хотя RaiserFS тоже рулез).

Вот такие вот пироги с котятами. Если бы у меня этак годик назад спросили, что я думаю по этому вопросу, послал бы, наверное, куда подальше и попросил более не отрывать от серьезных раздумий. Но сейчас я уверен, что в ближайший год, максимум два, кое-кому придется немного потесниться. Не знаю, как насчет профессиональной студии, но качественную демку уже сейчас можно наваять под Linux без особых проблем. На сегодня все. Но тема не забыта, об отдельных утилитах будем говорить в последующих статьях, которые начну писать, как только поборю природную лень. Лето, однако.

Linux forever!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov