Чи помічали ви, після підбудови висоти тону семпла, завантаженого в семплер або драм машину, що додався бруд і дисонансні гармоніки? Така деградація звуку трапляється при зміні частоти дискретизації, яка неминуче відбувається при транспонуванні або варпінгу аудіофайлу, і пов'язана з ефектом аліасингу - відображенням спектральних компонент від частоти Найквіста. Щоб цього уникнути, використовуються алгоритми інтерполяції та фільтрації.
У цій статті за допомогою елементарного тесту проведено порівняння таких алгоритмів в інструментах Impulse, Simpler, Sampler і самому секвенсорі Ableton Live 8, а також з деякими безкоштовними популярними Vst плагінами.
Методика експерименту
Експеримент проведено на ноутбуці Lenovo R500: процесор Intel Core 2 Duo T8570, 2 Gb ОЗП. Частота дискретизації, в налаштуваннях Ableton Live, тестового семпла, і експортованого файлу становить 44100 Гц. Тестовим файлом є синусоїдальний сигнал на частоті 15 кГц, розрядністю 16 біт, який завантажується в семплер, прив'язується до ноти C3, а зона програвання розширюється на весь діапазон клавіатури. Кожен тестований семплер програє одну і ту ж MIDI послідовність - гамма До мажору на дві октави вгору, а після на дві вниз від ноти C3. У разі завантаження семпла на аудіо доріжку секвенсору або Impulse, за допомогою автоматизації параметра tune, відтворюється еквівалентна послідовність з синхронізацією старту семпла і відповідною midi ноти послідовності. Вихідні гучності тестованих доріжок виставлені з точністю ^ 0,1 дБ, з таким запасом, щоб не виникало перевантаження на майстер каналі. Звукові файли, що є результатом програвання MIDI послідовності або еквівалентною їй кожним інструментом у соло режимі, експортуються з розрядністю 24 біт і завантажується в Adobe Audition. У режимі «spectral frequency display» порівнюються спектрограми, що демонструють зміну звукового спектра від часу. Покази індикатора завантаження ЦПУ в Ableton Live при роботі того чи іншого інструменту наведені в результатах.
Результати та їх обговорення
|
Інструменти Ableton Live 8 |
Безкоштовні Vst семплери |
|
Sampler: алгоритм best CPU < 7% Sampler: алгоритм good CPU < 7% Sampler: алгоритм normal CPU < 7% (так само як у Simpler і Sequencer алгоритм HQ вимкнено) Sampler: алгоритм no interpolation CPU < 7% Impulse CPU < 7 % Sequencer: алгоритм HQ включено CPU < 7% |
DiscoDSP: алгоритм mastering CPU > 350% DiscoDSP: алгоритм bounce CPU > 50% DiscoDSP: алгоритм realtime CPU < 7% Cakewalk (rgc audio) Sfz+: алгоритм 72 CPU < 7% Vember audio Shortcircuit 1 CPU < 7 % |
Для порівняння за еталон взято ідеальне звучання, а відповідно і спектрограма експорту з семплера DiscoDSP HighLife в режимі mastering. Ідеальності відповідає чорний фон (відсутність шуму), в кожен момент часу видно і чутно тільки одну частоту, за винятком, частот тих, що перевищують половинну частоту дискретизації - їх бути не повинно. На жаль, така ідеальність має свої мінуси, оскільки призначена тільки для експорту. Я спробував у реальному часі програти тестову послідовність нот. Індикатор завантаження ЦПУ зашкалив до 380%. Не думав, що таке буває.
Тепер уявімо, що ми завантажили семпли ударних інструментів в Impulse або в Drum Rack, який використовує Simpler, і спробували і змінили трохи їх пітч. Результат очевидний, судячи з спектрограм, і на слух, з'являться помітні спотворення. Impulse трохи гірше, оскільки трохи розмазує спектр семпла. Мабуть саме тому розробники Ableton рекомендують використовувати Drum Rack замість Impulse.
Добре, будемо використовувати Drum Rack, і, здається, кожен Simpler, що знаходиться в його комірці, можна перетворити на Sampler. При цьому з'явиться можливість, виставити алгоритм інтерполяції. За замовчуванням він приймає значення normal, що, як показує тест, відповідає Simpler'y. Перемикання в режим Good, дало поліпшення, але на слух спотворення як і раніше помітні. Алгоритм Best порадував майже нечутними спотвореннями, на складному сигналі, вони будуть непомітні, ніж в порівнянні з чистою синусоїдою. Відсутність алгоритму інтерполяції може виявитися ефективним творчим інструментом для створення глитчів і дисонансних брудних цифрових текстур, але ніяк не для високоякісного відтворення транспонованого семпла.
Виявився цікавим алгоритм інтерполяції аудіо доріжки секвенсора в режимі HQ On, він на слух більш сприятливий, ніж алгоритм Best Samplera, і як видно на спектрограмі помітно інший: слабші відбиті від частоти Найквіста тони, але при цьому вище рівень фонового шуму, який додатково їх маскує, але додає загального бруду.
Варто відзначити, що двох ядерний ноутбук шести річної давності не помітив збільшення навантаження на процесор, і у всіх випадках індикатор не перевищував 7% бар'єр, що підтверджує, позиціонування live'a як інструменту для живого виступу. Другий суто особистий висновок полягає в тому, що для завантаження семплів краще використовувати безпосередньо аудіо трек, ніж будь-який рідний інструмент програми. Звичайно, якщо немає мети помітно змінити його звучання за допомогою ADSR амплітуди, пітча, фільтра, частотної модуляції (присутній в Sampler) тощо... Але досягти більш чистого звуку можна, використовуючи сторонні інструменти, до огляду яких ми переходимо.
Напевно, першим за популярністю в мережі є плагін Cakewalk Sfz +, позиціонований для завантаження з SoundFont банків. Він давно поширюється безкоштовно (номер версії програми - 1.0). Мабуть, «великі» про аліасинг знали багато, в еру досить примітивних з нашої точки зору комп'ютерів. Тому Sfz + має дев'ять рівнів складності алгоритму роботи з семплом, і з найпростішим впорається слабкий процесор. У наш час можна сміливо використовувати варіант "quality:72 ", що відповідає найвищій якості відтворення, результат дії його наведено на малюнку. Він трохи не дотягує до ідеалу (DiscoDSP HighLife в режимі mastering), але на слух все відмінно. Браком Sfz + є наявність лише базових інструментів для роботи з семплом, серед яких не представлена можливість встановлення місця його старту, луп поінтів і варіантів програвання. Також існують проблеми з використанням плагіну на 64 бітних ОС.
DiscoDSP HighLife - об'єкт наслідування в наших тестах. Другий алгоритм інтерполяції «bounce mode» не сильно поступається за якістю, але використовувати його в реальному часі через велике навантаження на процесор також важко. Алгоритм же «realtime mode», судячи зі спектрограм, збігається з алгоритмом «good» в Sampler. Функціонал плагіну трохи ширше ніж у Sfz +.
Наступний претендент: Vember Audio Shorcircuit 1. Спотворення при транспонуванні не чути і, судячи зі спектрограми, його алгоритм займає місце десь між ідеалом і алгоритмом Good Sampler'a. У плагіні є величезний набір фільтрів чудової якості, яким не може похвалитися навіть Kontakt від Native Instrument. Інтерфейс дуже простий і легкий в освоєнні. Практично бочка меду, якби не ложечка дьогтю, про яку можна почитати на форумі користувачів. Цей плагін дає затримку і з'їдає атаку семпла. Причому у версії 1.0.15 цього не було (тож якщо ви знаєте, де взяти саме цю версію і готові поділитися, буду дуже вам вдячний). Але варто зазначити, затримка близько 32 семплів, не критична. У Live це можна компенсувати. Змащену атаку не виправити, але на слух вона не помітна. Наступна версія Shorcircuit 2 порадувала поліпшеним графічним інтерфейсом. Тести показали, що змащена атака відсутня, але затримка як і раніше на місці. Шкода, що розробники залишили цю прекрасну річ недопрацьованою. До речі, якщо не помиляюся, то один з розробників цього семплера був у команді Ableton, і зараз він у новій колаборації займається проектом зі схожим ідеологічним підходом, але з деякими додатковими і дуже зручними функціями: bitwig.com.
Ув'язнення
Сподіваюся, що ця стаття допоможе у створенні більш якісно звучать фонограм і ні в якому разі не стане об'єктом для виникнення суперечок і чергових холіварів на тему плагінів і музичного програмного забезпечення.
Якщо вам хочеться більше порівнянь з іншими семплерами, то в кінці будуть посилання на методику і результати, які не відображені в рамках даної статті. Робити тести всіх існуючих плагінів недоцільно, а деякі навмисне не включені в статтю (наприклад Kontakt і Battery), так як хочу закликати читача самому провести експеримент. Для цього достатньо завантажити 15 кілогерцевий синус або будь-який високочастотний аудіо файл в улюблений семплер і пробігтися по клавішах на дві октави вгору. Ваш слух не підведе.
Ті, хто уважно розглянув спектрограми, помітили, що при транспонуванні семпла на октаву, призводить до менших спотворень, оскільки алгоритм інтерполяції спрощується у зв'язку зі зміною частоти дискретизації семпла в кратну двійку кількість разів. Якщо частота дискретизації семпла і в налаштуваннях програми не збігатимуться, цей ефект зникне, і в цілому результати тесту будуть гіршими. Рішенням може бути використання кодеків для офлайн перетворення частоти дискретизації аудіо файлів ще до використання їх у проекті. Існує безліч інструментів, що дозволяють це здійснити, і одним з кращих є безкоштовний плагін від Voxengo r8brain free.
Хочу закликати до вивчення 1916 частини, хоча б на тому рівні, на якому це вам доступно, тих, хто цим ще не зайнявся (таке поширене серед цифрових композиторів). Почати варто з теореми Найквіста і читання мануала до програмного забезпечення, або інших документів, таких як «Audio Engine Fact Sheet» від Ableton, в яких описані, операції, що призводять до деградації звуку. Володіння відповідними знаннями дозволить уникнути небажаного погіршення звуку при створенні композицій.
Чистого вам звуку!
Посилання
Методика і результати тестів семплерів:
www.discodsp.com/highlife/aliasing
jeskola.net/xs1/content/test
www.maz-sound.de/resampling
www.simonv.com/tutorials/quality.php
Методика та результати тестів алгоритмів перетворення частоти дискретизації програм для роботи з аудіо:
src.infinitewave.ca
1916 Частина:
www.digital-recordings.com/publ/pubneq.html - теорема Найквіста в контексті звукового застосування
en.wikipedia.org/wiki/Aliasing - аліасинг
kunz.corrupt.ch/dsp - ще дещо корисне за цифровим синтезом і створенням ефектів для «підкованих»





