воскресенье, 1 ноября 2009 г.

Электрогитара в Linux

Что делать, если у нас есть электрогитара, но нет комбика и каких-либо примочек? Самое простое решение проблемы — это использование компьютера для имитации недостающих элементов. И хотя компьютер вряд ли сможет звучать, как дорогой комбик, но с дешёвыми железками вполне может потягаться и даже превзойти их. Недостатками такого решения являются задержка в 5 миллисекунд (многие музыканты утверждают, что она заметна), а также сравнительно низкая надёжность, ибо компьютер устроен намного сложнее любой примочки и изначально заточен под решение множество самых разных задач, а не конкретно под обработку звука электрогитары.

Нам понадобится компьютер с любой современной звуковой платой, которую поддерживает Linux, установленный дистрибутив Linux со свежим ядром, содержащим rt патчи, а также jack, qjackcontrol, jackrack, caps.

Начать следует с настройки alsa, для этого можно воспользоваться kmix, alsamixer или любой другой программой, позволяющей управлять микшером alsa. Я расскажу о настройке на примере kmix:


1.Если на вкладке «Выход» нет регулятора для Line, то нажимаем правой кнопкой там, где расположены другие ползунки и в появившемся контекстном меню выбираем пункт «Каналы».



2.Включаем Line.

3.Устанавливаем регулятор Line примерно на середину, не забыв при этом включить линейный вход (переключатель под регулятором должен быть зелёного цвета).
4.Подключаем гитару к линейному входу и играем на ней. Если из колонок слышен звук гитары, то выключаем линейный вход и продолжаем настройку дальше. Если нет, то проверяем кабель, переходник, саму гитару, крутим ручки на ней.
5.Переходим на вкладку «Вход».
6.Включаем регуляторы capture, если их нет.
7.Переходим на вкладку «Выключатели» и включаем отображение переключателя InputSource.
8.В InputSource выбираем «Line».

Следующий этап — это настройка звукового сервера jack. Для этого воспользуемся qjackcontrol:

1.Нажимаем кнопку «Setup».
2.В появившемся окне устанавливаем галочки напротив «Realtime» и «Soft Mode»; в «Periods/Buffer» устанавливаем значение 2; «Frames/Period» устанавливаем в такое значение, чтобы «Latency» в нижнем правом углу был менее 10 миллисекунд, но не следует ставить его максимально маленьким, т. к. при этом могут появляться щелчки во время работы jack сервера.

3.Теперь наконец нажимаем кнопку «Start» в главном окне qjackcontror.
4.Если сервер успешно запустился, нажимаем кнопку «Connect»
5.Справа у нас входы устройств и приложений, а слева выходы. Чтобы соединить выход с входом, следует их выбрать и нажать кнопку «Connect». Соединяем таким образом capture_1 c playback_1 и playback_2.

6.Играем на гитаре. Если слышны щелчки, то останавливаем jack и в настройка увеличиваем значение «Frames/Period».

Ну и наконец приступаем непосредственно к настройке гитарных эффектов.
1.Запускаем jackrack.
2.С помощью qjackcontrol соединям линейный вход с jackrack, а jackrack соединяем с колонками.

3.В jackrack с помощью кнопки «Add» добавляем эффект «С* AmpV» из категории «Simulators». Включаем его с помощью кнопки «Enable». С помощью регулятора «gain» устанавливаем уровень перегруза. С помощью остальных ручек добиваемся нужного тембра. Если неочень понятно, что они делают, то устанавливаем их на середину.
4.Добавляем эффект «Multiband EQ» из категории «Frenquency».
5.Включаем его и регулируем тембр, пока звук нам не понравится.


Но наши возможности не ограничиваются только этими двумя эффектами. Можно создать свои уникальные цепочки с интересным звучанием, используя различные ревербраторы, хорусы, фленджеры и т.п.

среда, 21 октября 2009 г.

Что есть IM бот, неотличимый от человека

Что будет из себя представлять IM бот, которого невозможно отличить от человека? Будет ли у него настоящий интеллект, или будет только видимость интеллекта? Будет ли этот интеллект похож на наш? Будет ли он ощущать своё существование? Будет ли у него душа? Чтобы ответить на эти вопросы, необходимо разобраться в том, как работает наш разум, и в том, как должен работать наш бот; в чём они будут отличаться и в чём будут похожи. Кроме того следует понять, по каким признакам мы можем отличить бота от человека.
Наш разум представляет из себя нечто, которое анализирует информацию, поступающую в него из органов чувств. На основе неё он получает представление об объектах окружающего мира, их свойствах и связях, т. е. создаёт модель окружающего мира доступными ему средствами. Также наш разум, основываясь на этой модели, ищет решения различных задач, т. е. ищет объект, который надо изменить для каких-то целей, его свойство, на которое необходимо воздействовать, оценивает свои возможности по влиянию на это свойство. Самые начальные представления об окружающем мире разум получает методом проб и ошибок. По мере усложнения модели реальности, разум начинает использовать её вместе с методом проб и ошибок. Также необходима коррекция ошибок, т. е. если органы чувств дали сбой, надо этот его распознать. Сделать это можно, проверив, насколько новая информация соответствует уже существующей модели. Если несоответствия повторяются слишком часто, то надо уже корректировать саму модель окружающего мира. Также на работу нашего разума влияет то, что находится за его пределами, и называется такое явление эмоциями.
Теперь давайте посмотрим на нашего бота. Какие у него есть органы чувств? Только один — приём текстовых сообщений. Когда маленький ребёнок обучается языку, на котором говорят окружающие, мы можем наглядно ему показать, что слово «яблоко» указывает на конкретный предмет, показав ему тяжёлое и лёгкое яблоки, мы можем ему наглядно показать, что слова «тяжёлый» и «лёгкий» связаны с его свойствами, причём противоположными. Нашему бота мы не можем обучать языку таким способом. Попробуйте выучить немецкий язык, если вам дать только роман «Война и мир», переведённый на этот язык, при этом вы не знаете, о чём роман, у вас нет никаких словарей. Задача эта решаема, но полученные знания будут оторваны от других органов чувств, это будут знания только о синтаксисе языка, да и времени на решение такой задачи уйдёт намного больше, чем методом наглядного обучения. Поэтому намного проще заранее дать боту базовые знания о языке, а не делать его так, чтобы он сам по тексту обучался языку, т. к. результат и в том, и в другом случае будет одинаков, а разница в затраченных средствах - огромна. Используя средства языка, бот будет получать информацию об объектах, их свойствах и связях, строя модель окружающего мира. Любое сообщение, поступающее боту, будет им расцениваться как новая задача или новая информация. Обучение бота математическим знаниям также возможно. Действительно, математические модели уже давно описываются с помощью обычных языков программирования. Естественный язык обладает всеми средствами любого языка программирования, т. к. их стараются делать максимально лаконичными и в них нет ничего того, чего нет в естественных. Чтобы бота нельзя было отличить от человека по тому признаку, что его знания оторваны от человеческих органов чувств, вместо создания их человеческих аналогов, мы введём ему информацию о том, что он инвалид по слуху, зрению, обонянию и осязанию. Коррекция ошибок или оценка соответствия истине будет происходить также, как у человеческого разума. Для разума свойственно постоянно думать, поэтому бот во время своего существования будет постоянно анализировать свою базу данных объектов, свойств и связей, получая новые связи, объекты и свойства, и цикл этот будет бесконечен.
Не стоит забывать, что у любого человека есть своя история, свои свойства. И наш бот тоже должен воспринимать себя как объект, у которого тоже есть свойства и который имеет связи с окружающим миром, эти данные должны быть такими же, как у человека. Если мы зададим вопрос боту «Сколько тебе лет?», он должен назвать свой возраст, который должен быть реален для человека.
Осталась ещё одна важная деталь — это эмоции. Эмоции должны быть аналогичны эмоциям человека. Бот должен осознавать, что цель его жизни — получение положительных эмоций и избегание отрицательных, это должно его двигать. Чувство юмора — это положительные эмоции от быстрого решения нестандартной задачи. Также бот должен иметь основные человеческие инстинкты.
Теперь подведём итоги этого рассуждения. Будет ли у бота, неотличимого от человека, настоящий интеллект, подобный человеческому? Да будет. Дать чёткий ответ на остальные вопросы не представляется возможным, т. к. до сих пор толком никто не знает, почему мы ощущаем своё существование, и можно ли отделить разум от материального носителя.

вторник, 1 сентября 2009 г.

О теплоте звучания

Существуют люди, которые просто помешаны на качественном звучании, и принято их называть аудиофилами. Большинство из них не признают цифровую звуковоспроизводящую аппаратуру. Приобретают себе виниловые проигрыватели, ламповые усилители, и искренне считают, что звук от такой техники звучит более естественно. Конечно в наш век более совершенных технологий такое может показаться нелепостью. Да, естественно хорошая цифровая техника хранит, обрабатывает и воспроизводит звук более точно, чем хороший виниловый проигрыватель. Но можно ли считать точность основным критерием для оценки звуковой аппаратуры?
Давайте представим, что мы находимся в лесу, где нас окружает множество различных звуков: пение птиц, треск деревьев, шум ветра. Но до наших ушей эти звуки доходят в изменённом виде, и чем больше расстояние до источника звука, тем больше он искажается. Причём изменяется далеко не только громкость. Из-за инертности молекул высокие частоты распространяются хуже, чем низкие. Кроме того звуковой волне приходится огибать деревья, отражаться от них, поглощаться ими. Да и температура с влажностью воздуха распределены неравномерно. Источник звука может двигаться, из-за чего волны сплющиваются или растягиваются. Именно к такому естественному природному микшеру, жутко всё искажающему, привыкли наши уши и мозг. Именно поэтому даже в современных цифровых звукозаписывающих студиях применяются эффекты, имитирующие различные аналоговые искажения. Чистое звучание музыкальных инструментов звучит неестественно и быстро утомляет. Естественные искажения делают звук субъективно более живым.
Аналоговая аппаратура аудиофилов больше, чем цифровая, подходит для воспроизведения живой музыки, например блюза и джаза, которую не принято подвергать сильной обработке после записи. Что касается современных направлений музыки, то на этапе сведения уже внесены все необходимые оживляющие её искажения, поэтому лучше воспроизводить её на более более точном цифровом оборудовании.

понедельник, 27 июля 2009 г.

VST в Linux

Хотя для Linux существует огромное количество LADSPA эффектов, нужного среди них может просто не оказаться. А если понадобится звучащий лучше, чем WaveTable, синтезатор какого-нибудь инструмента, то выбор становится ещё более скудным, ибо единственной альтернативой VSTi в Linux является стандарт DSSI, количество синтезаторов для которого можно пересчитать по пальцам. Но существует хоть и костыльный, но вполне рабочий выход из данной ситуации - это запуск предназначенных для Windows VST и VSTi модулей.

Так как VST и VSTi модули являются обычными dll, то просто так с помощью WINE их запустить не получится. Для этого нужен специальный загрузчик. Существует 2 таких загрузчика: fst и dssi-vst. Оба используют WINE, у каждого есть свои мелкие особенности, о которых я расскажу в конце. К сожалению этих программ обычно нет в репозиториях, поэтому их надо собирать самостоятельно. При установке всех необходимых dev пакетов проблем быть не должно, а те, кому не хочется на это тратить своё драгоценное время, могут скачать бинарники, собранные мной: fst.tar.bz2 и dssi-vst_0.8-1_i386.deb

Для сборки fst необходимы следующие dev пакеты:
  • LASH
  • JACK
  • WINE
Далее скачиваем исходники с помощью команды git clone "git://repo.or.cz/fst.git"
(для этого должен быть установлен git). Далее переходим в папку с fst и делаем make. Если компиляция прошла удачно, то в папке с проектом должны появиться 2 файла: fst.exe и fst.exe.so. В Makefile не предусмотрено правил установки, поэтому быстро собрать пакет с помощью checkinstall не получится.

Запустить какой-нибудь VSTi инструмент можно с помощью команды ./fst.exe <путь до dll>, при этом до запуска VSTi обязательно должен быть запущен JACK. Затем JACK Control соединям необходимые входы и выходы.

Скачать исходники dssi-vst можно по этой ссылке dssi-vst-0.8.tar.gz. Чтобы это собрать, нам понадобятся dev пакеты:
  • DSSI
  • WINE
  • liblo
Далее переходим в папку с распакованными исходниками и выполняем команды make и sudo checkinstall. Запуск VST и VSTi модулей происходит с помощью команды vsthost <путь до dll>. До её вызова, как и в случае fst, обязательно должен быть запущен JACK.

Стабильность работы этих программ радует неособо, но её можно повысить, увеличив размер буфера jack серевере. Ещё можно попробовать запустить wineserver с опцией -p, если какой-то из модулей откажется работать. Больше всего раздражает появление кучи окошек с сообщениями об ошибках при загрузке некоторых VST. Главным отличием между dssi-vst и fst является наличие в последнем поддержки пресетов с настройками. Но dssi-vst показался мне более стабильным, ещё он создаёт MIDI порт в ALSA, из-за чего меньше проблем с программами, не поддерживающими JACK MIDI.

среда, 15 июля 2009 г.

В чём смысл?

Что значит плохо, а что хорошо?
Кто истинный путь в этой жизни нашёл?
Что должен оставить я после себя?
Зачем нужен мир? Зачем нужен я?

Никто не узнает устройства вселенной.
Никто не узнает главный смысл бытья.
И жизнь пролетит вспышкой мгновенной,
Но не узнаю я смысла себя.

четверг, 18 июня 2009 г.

О мире реальном и о мирах виртуальных

С самых древних времён человеку необходимо было трудиться, чтобы обеспечить своё существование. Раньше это были охота и собирательство, потом - земледелие и скотоводство, сейчас имеется огромное количество способов получить хлеб с мясом за свой труд. У наших предков была необходимость трудиться, чтобы прокормить себя и свою семью, нам тоже придётся работать, наши дети и внуки скорее тоже не отвертятся. Борьба за своё выживание с древнейших времён является неотъемлемой частью нашей жизни. Думаете так будет всегда? Многим древним цивилизациям казалось, что их уклад жизни останется неизменным на целую вечность, но, как показывает история, они ошибались.

Сейчас человечество находится на такой ступени технологического развития, что получением всего того, что необходимо для выживания, могут заниматься машины или роботы. Нескольких человек, умеющих управлять такими машинами, достаточно, чтобы накормить целый город. Если всё так хорошо, то почему до сих пор большинству населения приходится работать? Да потому, что кроме еды нам ещё нужны квартиры с удобствами, компьютеры, автомобили, мобильники, красивые тряпки и т.п. Мы живём в эпоху потребления, когда выживание отходит на второй план, на первый план выходит то, сколько ты потребляешь. Но это всё тоже могут производить машины, а людям только остаётся тыкать на кнопки и контролировать процесс. Но тогда почему они всё ещё вкалывают на этих работах? Многие процессы, обеспечивающие нас продуктами потребления, всё ещё происходят по допотопным схемам. Можно для примера взять так называемый офисный планктон, который занимается однотипной обработкой всяких документов, а с этой работой вполне может справится компьютер, которому кроме электричества больше ничего не надо. Но если заменить обитателей офиса компом, то куда девать этих самых людей? Проще всего их уволить, и выплачивать компенсацию за то, что у них нет работы. И если компенсация достаточна для того, чтобы жить, мы получаем совершенно новый класс людей, людей, которым не надо работать, не надо бороться за выживание, просто достаточно жить в своё удовольствие. А с развитием техники, когда машины заменят людей почти во всех профессиях, кроме самых интеллектуальных, таких людей станет большинство!

Куда же будут тратить колоссальное количество свободного времени эти новые люди? Скорее всего туда же, куда его тратят современные подростки, живущие на деньги своих родителей, - на компьютерные игры. Уже сейчас от полного погружения в виртуальный мир всяких вариков и линеек их удерживает только проблемы в реальном мире. А если действительно случится так, что не будет необходимости учиться и работать, то почему бы не забыть нафиг про эту реальность, и полностью погрузиться туда, где возможно действительно всё? Тем более с развитием техники качество виртуальных миров будет стремительно улучшаться. Наверняка большая часть населения станет частью огромной машины. А вы думали такое может быть только в фильме "Матрица"? Возможно, что массовый переход в виртуальные миры - это наше будущее.

вторник, 26 мая 2009 г.

Сколько стоят мегабайты

За что мы готовы платить? Каковы условия высокой цены на товар? Ну во первых товар должен быть нужным, полезным. Во вторых товар должно быть сложно получить бесплатно.

Снег зимой нужен. Но никто не даст вам ни копейки за килограмм снега зимой, ибо его легко добыть бесплатно. Старинная картина великого художника - вещь нужная. Кроме того, она очень уникальна, достать такую же нереально, ибо она одна во всём мире, следовательно, цена её впечатляет не меньше мастерства художника. Алмаз - вещь нужная, полезная, и найти его тяжело, следовательно, тоже высокая цена. Еда - вещь необходимая, без неё невозможно жить, но магазины завалены едой, поэтому цены не кусаются.

А как же дело обстоит с информацией? Если я знаю секрет бессмертия, то я обладаю офигенно нужными знаниями. Т.к. кроме меня ими никто не владеет, то достать эту информацию офигенно сложно. Я могу за неё заломить такую цену, которая поставит на колени всё человечество! Но если вдруг произойдёт утечка, секрет бессмертия станет известен каждому, то ценность этой информации упадёт до нуля!

Те мегабайты информации, которые попали в интернет, не стоят ничего, т.к. их можно легко получить бесплатно. Доступная всем нформация в интернете может иметь духовную и практическую ценность, но денежная её ценность нулевая. И вполне нормально, что автор этих мегабайтов не получает денег за то, что ничего не стоит.