Программные синтезаторы против железных: разрушение мифов

Или любопытная история, которую рассказал
Тараскину Старый Советский Хакер.

Слишком часто опытным аранжировщикам, звукорежиссерам и музыкантам приходится отвечать на однотипные вопросы:

  • А почему нельзя вместо обычного железного синтезатора скачать виртуальный, установить его на компьютер и получить такое же качество?
  • Технологии достигли таких высот, зачем вам эти горы железа, ведь программные синтезаторы давно обогнали по возможностям этот старый хлам?
  • Какой скачать плагин,чтобы у меня был звук как у того-то или того-то (далее обычно приводятся имена именитых западных продюсеров и исполнителей)?
  • Я накачал себе самых лучших и самых новых виртуальных синтезаторов, а у меня звук все равно не получается сделать хороший, середина мутная, низа нет, верх резкий, что только ни делал — не помогает; почему?
  • Я сделал на компьютере красивую партию барабанов с помощью своих любимых VST, а после сведения они превратились в какую-то кашу, малый барабан хлюпает, бас-бочка провалилась, тарелки противные; наверное, звукорежиссер плохой?

Этот материал, а вернее — рассказ, будет посвящен ответам на эти вопросы. Вернее, он будет посвящен ответу всего лишь на один вопрос, но этот вопрос позволит найти ключ ко всем остальным: чем железный синтезатор отличается от виртуального.

Помимо информации об источниках звуковых сигналов, Вы узнаете кое-что интересное и о системах записи звука, вернее — об основных признаках, по которым все системы записи делятся на два больших лагеря — ресурсонезависимые и ресурсозависимые.

Но вначале — небольшое обращение к фактическому материалу и терминам, которые сделают рассказ максимально доступным для понимания.

Нативная система и ресурсонезависимая система

  • Нативная система звукозаписи (нативная среда) — ресурсозависимая система записи. Название произошло от латинского слова «nativus», которое означает «врожденный». Нативный код — система команд, которая интерпретируется непосредственно процессором и операционной системой конкретного компьютера. Нативное программное обеспечение — это платформенно-ориентированный код, работающий на базе ресурсов центрального процессора компьютера под управлением его штатной операционной системы.
  • Ресурсонезависимая система записи — в отличие от нативной системы, работает на базе ресурсов специализированных DSP (Digital Signal Processors) и не зависит от ресурсов компьютера. Компьютер для ресурсонезависимой системы является лишь внешней оболочкой, тогда как в нативной среде он, фактически, выполняет все операции над звуковым потоком.
  • Операции ввода-вывода в нативной среде производятся посредством драйверов типа ASIO, призванных адаптировать среду общего назначения к выполнению специализированных музыкально-производственных задач. Операции ввода-вывода, как и любые другие процессы, в ресурсонезависимой системе проходят без обращения к центральному процессору компьютера с помощью DSP в специально заточенной под задачи звукозаписи среде. В более ранних системах записи даже дисковая подсистема исполнялась на выделенных дисковых контроллерах под управлением всё тех же DSP.
  • Примеры ресурсозависимых (нативных) систем: Apple Logic, Steinberg Cubase/Nuendo, Digidesign ProTools LE/M-Powered, Merging Technologies Pyramix Native, Cakewalk Sonar, Sonic Solutions Sound Blade, Propellerhead Reason, Image-Line FL Studio (Fruity Loops), Magix Samplitude, Abletone Live, плагины типа Direct X, VST, VSTi, AU и так далее.
  • Примеры ресурсонезависимых систем: Digidesign ProTools TDM, Digidesign AudioMedia, Digidesign Session 8, Merging Technologies Pyramix (Mykerinos), Sonic Solutions Sonic Studio Classic/HD, Sadie, Ensoniq Paris и так далее.

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

Особенную значимость качество записи приобретает в том случае, если Вы пишете серьезную музыку с расчетом на то, что ее будут слушать и через несколько лет (в отличие от «трэков», безнадежно устаревающих через две недели — и прежде всего с художественной точки зрения).

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

История, которую рассказал Старый Советский Хакер

Кто такой Старый Советский Хакер

Человек, поделившийся со мной этими сокровенными знаниями, является достойным представителем закрытой полулегендарной касты кибербогов, то есть тех, кто знает и может всё, но, в отличие от топ-хакеров, не занимается взломом банков и получением доступа к ракетам, потому что гораздо мудрее по жизни. Вне своего узкого круга общения, такие люди часто выдумывали себе шутливо-конспиративные прозвища, чтобы не волновать общественность. Мой знакомый именовал себя «старый советский хакер», или ССХ.

Когда мы все еще под стол пешком ходили, а слова «компьютер» и не слышали — любой специалист такого уровня уже вовсю программировал на spectrum и знал, что будет с компьютерными технологиями в ближайшие 10 — 15 лет. Со словом «интернет» наш Старый Советский Хакер знаком еще с тех незапамятных времен, когда в Силиконовой Долине два института соединили кабелем свои компьютеры. И уже тогда предвидел, как Интернет будет развиваться. Позже он выделял у себя на работе номера под модемные пулы, звоня за счет государства по межгороду, развивая FIDO. Эти люди всю жизнь «в теме» всего, что есть и всего, что будет.

ССХ не раз поражал меня своими знаниями и предсказаниями в этой области. Если кому-то изложенная точка зрения покажется спорной — можно с ней не согласиться, но абсолютно бессмысленно ее пытаться оспорить. Я, конечно, может и полный баран в физике, математике и кибернетике, но знаю точно — специалист такого уровня вряд ли когда-нибудь встрянет в споры по технологиям музыкального софта — они ему до лампочки!

В начале 2009-го года собрал я себе с нуля мощный и весьма навороченный по тем временам комп. Всего лишь для того, чтобы он работал как миди-секвенсор — с Nuendo раздавал сигнал на железные синтезаторы… Компьютер был серьезный: подбирал, тщательно изучая в Интернете информацию о совместимости, разгоне и сравнении всяких двух- и четырехъядерных машин по скорости, по разным объемам памяти — короче, целый месяц до этого у меня глаза вылезали от чтения.

Купив комп, я поставил в него карту EMU 1212m PCI. Все знают, что проблем с MIDI у неё быть не должно. VST я давно не пользуюсь, но все таки поставил любимый с детства Hypersonic, чтобы насладиться задержкой в 2 миллисекунды при игре на виртуальном синтезаторе. Сам я в программных делах всегда учился прилежно, «окнами» владею отлично (учитель был хороший, еще начиная с дискет и Win 3.1 на 486-ом). У меня всегда все налажено, оптимизировано, реестр чистый, программы не конфликтуют, их минимум, так что мои компьютеры не глючат и никогда не ставят меня в тупик какими-то непонятными проблемами и синими экранами. Это я к тому, чтобы Вам не пришло в голову обвинять мои кривые руки в том, что у меня что-то работает не так даже на такой мощной для MIDI конфигурации. До этого я пытался раздавать MIDI с ноутбука (со встроенной звуковой картой, через USB) — было не совсем хорошо. А здесь уже и десктоп, и карта нормальная, и миди-коммутация правильная… Конечно, стало заметно лучше, но иногда, особенно при за записи в аудиотрек (на внешний компьютер) пара нот могли как-то предательски слегка прыгнуть — и всё! Да и в целом было слышно, что даже квантизированные ноты играют не так ровно, как хотелось бы. Особенно когда их много.

Наступила весна. Я узнал, что мой старый знакомый ненадолго оказался на родине (что большая редкость) и зашел к нему с целью окончательно разъяснить для себя, возможно ли вообще счастье при создании музыки на компьютере. Поняв мою измученность данным вопросом, а также увидев шанс отвязаться от меня раз и навсегда (всю жизнь, при малейшей возможности я его мучил дурацкими расспросами по компьютерной тематике) старый советский хакер выложил мне всю правду. По крайней мере ту часть, которая мне была понятна и необходима. Его рассказ был грамотной лекцией с неизвестными пугающими терминами, приблизительными расчетами на ходу в уме и какими-то формулами — кроме сути я ничего не уловил, но суть перескажу по памяти. В вольном стиле, заменив всю специфику своими художественными образами.

Итак, вот что он мне поведал.

Кому выгодна нативная среда в звукозаписи

Нам трудно поверить, но, например, файл WAV, который мы принимаем за что-то целостное и единое, для центрального процессора и прочего бездушного железа таковым не является. Им абсолютно по барабану, что мы хотим запустить его в 0.00, а закончить его в 3.22.47, потому что такова его длительность. Он закончится ровно в 3.22.47 — если только ничего этому не помешает! А помешать ему могут посторонние процессы операционной системы (ОС), и, хоть и не посторонняя, но слишком большая загруженность ЦПУ. Причем для ОС абсолютно не важно, что наша задача требует реального времени, потому что система разрабатывалась не специально для нашей задачи. Она делалась универсальной, мощной и сложной, и главная её задача — поддержать саму себя в рабочем состоянии и не «гикнуться». А с проблемой загруженности можно бороться только на уровне пользователя, но он, вместо того, чтобы разгрузить — хочет побольше треков одновременно, побольше программной обработки. И вообще, хочет, чтоб «колбасило».

Но мы забываем (или не знаем), что ЦПУ выполняет операции последовательно, а не параллельно. Каждый файл состоит из множества нулей и единиц. И очередную порцию нулей и единиц (скажем, восемь) ЦПУ обсчитывает и отправляет дальше только после того, как пропустил предыдущие восемь. В теории каждая миллисекунда или микросекунда звука является отдельным куском. Каждый из этих кусков пойдет нам в уши только тогда, когда процессор сможет его отправить, когда ему позволит общий поток данных, поступающий на ЦПУ для обработки, а не тогда, когда мы хотим. И, чем больше этот поток, тем больше возможные задержки. Разумеется, это всё очень малые числа и мы их «не слышим».

Именно поэтому производители компьютерного железа вообще не ломают себе голову по этому поводу. Мощности ЦПУ всегда с избытком хватает для того, чтобы массовый пользователь не заметил задержек ни прослушивая MP3, ни смотря кино, ни играя в игрушки (где, кроме аудио, еще и графический поток довольно приличный). К тому же, наш мозг имеет всякие компенсирующие механизмы для комфортного восприятия окружающей действительности, которая на самом деле, как говорят, является лишь иллюзией.

А вот производители музыкального софта, конечно же, всю правду знают (их программисты точно), но никогда нам её не расскажут. Большинство из нас этой правды до сих пор не слышит и слышать не желает. Да и не дойдет никогда большинство из нас до того уровня музыкального продакшна, когда программные проблемы со звуком станут серьезным препятствием для высасывания денег. Зато, если нас, пользователей (не халявщиков), по всему миру сосчитать, то окажется, что мы уже отдали немало денег за софт. И производители просто безмерно счастливы! Это величайшая идея, и придумал её, несомненно, гений (дай ему бог здоровья, а свои миллионы, он, думаю, уже получил) — делать инструменты, обработку и эффекты не из железа, а из воздуха, приспособив под эти цели уже существующую и популярную платформу — персональный компьютер.

Софт не портится, не изнашивается, не требует ремонта, легко распространяется. Его гарантийное обслуживание и модернизация практически ничего не стоят. Зачем лишать себя прибыли (и музыкантов сказки) какими-то признаниями несовершенства воспроизводимого софтом звука, если это несовершенство придется еще и доказывать большинству!!!

Звук, центральный процессор компьютера и DSP

А теперь рассмотрим не сказку, а реальность.

Итак, бедный наш центральный процессор… Сейчас он уже со многими ядрами, а иногда даже с напарником. Идеологи нативных решений самозабвенно поют дифирамбы современным ЦПУ как самым мощным DSP в мире. Мол, классические DSP мрачно устарели, ужасно слабы по мощности и гуляют лесом. При этом, почему-то, не упоминается, что в профессиональном железе, где используются эти несчастные слабые DSP (будь то синтезатор, семплер, конвертор, цифровая обработка или портастудия), операционная система — примерно как старый DOS, простая и маленькая. А главное — она не выполняет никаких задач, кроме своих основных, и процессору, как минимум, не мешает. А сколько весят и жрут ресурсов современные операционные системы — мы прекрасно знаем. Но вот чем они занимаются — представляем уже не так хорошо, мы ж не продвинутые программисты, а музыканты…

Так вот, получает ЦПУ очередную порцию нулей и единиц музыкального проекта, чтобы переслать их нам дальше. Побыстрее, разумеется. А Windows ему и говорит: «слушай, пропусти-ка вперед вот этих пару циферок, этот процесс нам важнее, чем твоя музыка, человек все равно ничего не заметит, а мы сейчас грохнемся оба, если не пропустишь!». ЦПУ с ОС всегда договариваются — для нашей же пользы, мы должны вроде как радоваться…

Но помимо этих есть еще и другие задержки, более страшные — от чрезмерного потока данных. Причем они не чрезмерны для самих ЦПУ, памяти или винчестера, но чрезмерны именно для нашей главной задачи — проигрывания в реальном времени мультитрека. А ведь самым важным для нас является микширование, то есть суммирования всех отдельных дорожек в один файл, в микс. Чрезмерность потока заключается в том, что ЦПУ может его пропустить через себя, но не одномоментно, как нам это требуется, а распределением циферок в очередь.

Так вот, допустим, операционная система видит команду стартовать трек — один WAV-файл, который на временной сетке проекта (условно) стоит на 0.00.00. И говорит процессору: «Трогай!» — ЦПУ погнал цифры. Тут оказывается, что по времени на 0.10.00 надо запустить еще два трека — вступают бас и гитара. «Значит так, — говорит она, — главная у нас я, я тебе формирую очередь, поскольку ты всё сразу не способен прогнать, дохляк ущербный. На 0.10.00 ты сыграй, значит, микросекундный кусочек, вот эти восемь бит первого трека. Далее, на 0.10.05 запусти бас, пропусти его ровно вот такой же кусочек, а на 0.10.10 давай гитару. Но тоже только 8 бит. Потом снова возвращаешься к первому, и по .05 по кругу играешь все три трека, пока наш гениальный композитор еще синтезатор не врубил или не запел. Не знаю, что он там насочинял еще, пока давай так, а если появятся еще треки — я по ходу разберусь и скомандую, как тебе и что крутить, не боись, короче! Ты у нас пацан хоть и линейный, но мощный. Я барышня тоже сообразительная, разрулим так, что этот глухой дятел все равно ничего не услышит!».

Вот так они и работают. Естественно, все цифры — художественная аллегория, просто для наглядности. Компьютер и операционная система постоянно «разруливают» поток данных, который всё увеличивается по мере того как аранжировка насыщается новыми треками, обрастает обработкой и эффектами. Всё это цифры, которые безостановочно прут на ЦПУ и все хотят вместе, в одну единицу времени проскочить в эту узкую дверь. Потому что в проекте, например, четко указано: ровно в 1.45.00, в начале 30-го такта, нужно бахнуть бочкой, рыкнуть басом ноту «соль», воспроизвести, как вокалист заорет «Да-а!» (вернее его «да» только стартует в этот момент). Гитара сыграет «дрынь», пэды будут что-то продолжать стонать. Плюс на бочке воооооооот такой компрессор, на вокал нужно повесить ревербератор, чтоб красиво хвостом аж на следующий такт тянулось. На гитаре висит комбоэмулятор и тоже именно в этот момент посылает свои 5 копеек в виде дисторшна… А бедные Windows и ЦПУ режут на мельчайшие кусочки каждый трек, жонглируют ими с немыслимой скоростью, изо всех сил стараясь, чтобы мы этот процесс не заметили и ничего странного не услышали.

И мы этого и не слышим (практически). Есть, правда, люди, которые даже в бардовской песне, где всего две моно-дорожки, голос с гитарой, на слух сразу распознают, в нативную систему «карта-комп» это записано или на железо. Чем больше треков сделано в нативной среде, тем слышнее общий рассинхрон во времени, который в народе называют «мыльным звуком».

Причинам, по которым запись в нативную систему хуже записи в ресурсонезависимую среду, можно посвятить отдельный рассказ. Конечно, если речь идет о записи звука на компьютер извне, то тут значение этого пресловутого рассинхрона не так критично. Операционная система, оперативная память, кэш процессора, звукозаписывающая программа и другие факторы так или иначе «сгладят» тайминг и уложат звук на винчестер в виде цифровых файлов ровно там, где эти файлы должны в итоге лежать. Ведь мы не слышим, с какой скоростью файлы ложатся на диск, мы доверяем системе как «черному ящику», а достоверность этой «укладки» проверяем путем воспроизведения — считывания этих файлов. Воспроизведению мы и уделим главное внимание — ведь нас сейчас интересуют виртуальные синтезаторы и виртуальная обработка!

Когда цифры идут с винчестера на выход карты, когда осуществляется самый важный для нас процесс  — сведение — вот тут нас подстерегает самая главная засада. Компьютер не может проиграть все треки корректно, чтобы из них в реальном времени сформировать (еще лишняя нагрузка для ЦПУ) мастер-трек. Многие знают, что лучше всего писать сумму на внешнее устройство, хотя бы даже на другой компьютер. Но это избавляет нас лишь от дополнительной нагрузки — записи еще одного стерео трека, т.е. от лишнего рассинхрона… Иногда это ощутимо сказывается на результате, но если сам проект содержит слишком много дорожек с «наворотами» — разница невелика, от мыла в пределах одного компьютера при проигрывании в реальном времени все равно никуда не денешься…

Многие здесь захотят возразить, что существует такая штука, как буфер, что именно он и обеспечивает корректность проигрывания мультитрека . Он, конечно, существует, но значение его в нашем вопросе несколько преувеличено. Буфер обеспечивает лишь непрерывность и ровность звукового потока — на тот случай, когда случаются небольшие организационные задержки с выводом звука у процессора. Иными словами, буфер проигрывает звук для обычного пользователя и не более того! Музыка, кино, игры… как уже говорилось, «нативный компьютер» создавался для массового, в том числе мультимедийного пользования. И изначально не предполагалось нашествие VST-шников, желающих превратить ПК в мультитрек-рекордер и в нафаршированный до предела обработкой «безлимитно-канальный» микшер. Буфер, выводит то, что ему «насчитал» ЦПУ, сведя цифры в финальный поток, и следит за тем, чтобы подавать эти цифры на карту четко одна за другой, без задержек, позволяя процессору отвлекаться на вычисления, задержки-ошибки, обработку посторонних процессов и т.п. То есть, буфер никак не способен влиять на тайминг между треками, он обеспечивает линейность, но не параллельность звука!

Разумеется, миксдаун (mixdown) или баунс (bounce) мы не рассматриваем — все знают, почему (или не знают?). Все это касается воспроизведения программного мультитрека на компьютере в нативной среде и его же сведения в реальном времени.

VST и будущее — играть или пропадать

Все вышеизложенное вполне доступно объясняет, почему многие VST звучат жирно и захватывающе, если на них играть с MIDI-клавиатуры вживую, но совершенно не годятся для создания аранжировок и для обработки (а если все же используются — то очень ограниченно, аккуратно и с готовностью к серьезным вытягиваниям хорошим железом в дальнейшем — опять же — только не в нативной среде).

По поводу многоядерных процессоров и даже мультипроцессорных материнских плат можно сказать следующее. Эти технологии развиваются производителями компьютерного железа именно с целью увеличения общей вычислительной мощности (опять же, линейной, к операциям в реальном времени не относящейся и никак ей не помогающей). Между ядрами и камнями идет распределение нагрузки для оптимизации потока, разбивая его на несколько более мелких и реализуя их одновременно — это сказывается на скорости — но, опять же, только на пакетной. Потоков становится больше, но никто не говорит, что они будут идеально ровными по таймингу, и никто для этого специально не старается! Производители, делают компьютеры, т.е. универсальные вычислительные машины, а не звуковые редакторы или системы записи. А большинство задач (графика, видеомонтаж, эффекты, моделирование) — пересчитываются не в реальном времени. Для примера. Как-то я на ноутбуке монтировал видеоролик. Взял какой-то отрезочек и наложил на него эффект. Отрезок был секунд 10, а эффект очень навороченный. Ноутбук пыхтел минут 40, пока произвел операцию! Сегодняшний десктоп сделает это же минуты за три, но результаты будут абсолютно такими же — разница только во времени. Вот что нужно большинству людей от компьютера — уменьшение этого времени. И это именно то, чем производители постоянно завлекают обычных покупателей — увеличивающейся мощностью. И только чудаки-музыканты пытаются добиваться от нативных систем именно реал-таймовой мощности. А её там нет — и не будет, потому что она не закладывалась изначально.

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

И тогда я спросил у Старого Советского Хакера: «О, Учитель! Что же нам делать?».

И Учитель ответил: «Остается одно — пропадать!». ©

Ему, как человеку, трезво смотрящему со стороны на все это дело, невдомёк, почему из нормальных не нативных систем существует только «устаревший» ProTools, да еще несколько либо малоизвестных, либо безумно дорогих систем. Почему никто на рынке производителей профессионального музыкального оборудования не делает новых законченных решений на DSP, с ресурсонезависимым вводом-выводом, без «мыла»… Зачем все эти новые «мощные» нативные карты с новыми DSP для обработки, но пишущие через ASIO…

Но мы-то ответ знаем. Кругом сплошной коммерческий развод, инструменты всё хуже, системы всё хуже. Зато удобств всё больше и цены всё выше! И если внедряется что-то новое — то только в одном направлении — универсализации. Даже в синтезаторах начинают придумывать DSP нового типа, более универсальные, пытаясь потихоньку превращать их в обычный нативный компьютер с ЦПУ, с функциональной (но глючной) ОС. Зато и производить проще, и плагины разрабатывать, и т.д. И пользователям хорошо: и удобство, и возможности расширения.

Кстати, совсем недавно понял, почему сторонники натива не могут удержать свою «благородную ярость», когда «железячники-аналоговики-протулзовцы» начинают нахваливать свои «пожитки». VST-шникам постоянно кажется, что каждый оппонент является замаскированным торговым агентом какого-то производителя. Каждый раз когда хвалят железо и ругают натив, им кажется, что враг промывает им мозги, покушаясь на их кровные, непосильным трудом заработанные или нытьем у родителей вытянутые… :-)

 

05.02.2010
Рассказал Taraskin
Ред. Алексей Данилов
При перепечатывании ссылка на источник обязательна
© SynthMusic

Похожие статьи