что такое сустейн в музыке
g0l
Ещё немного про удлинение.
Началось всё с того… Нет, ну, началось, конечно, гораздо раньше, но суть не в этом. Лет назад эдак… ну, да это тоже не важно — давно это было. В общем, захотелось мне приобрести гитару близкую по звучанию к той, на которой играет Wolf Hoffmann из группы Accept. Прознал я, что играет он на гитарах Hamer с датчиками EMG. Пошерстил по объявлениям и нашёл продавца. Предложил он на выбор пару гитар, одна из которых была Hamer Elite с удивительным устройством Sustainiac. Удивительным потому, что в тот момент я удивился – гитара может держать звучание одной какой–либо ноты или даже целого аккорда бесконечно долго. Ну, или пока батарейки не сядут. Надо ли говорить, что купил я именно её. Мой пытливый ум не дал мне покоя и я стал интересоваться, как это устроено и можно ли что–то настроить. Годы были давние, доступ в интернет был так (9600 Кбит) себе и я начал писать e–mail–ы в компанию–производитель сустейнеров с просьбой выслать принципы настройки и описание устройства. Суть да дело, но узнал я принцип работы устройства. Параллельно датчику, расположенному около держателя струн подключено устройство (сустейнер), выход которого нагружен на электромагнит, расположенный рядом с окологрифовым датчиком. Сустейнер усиливает сигнал с датчика и магнитом раскачивает струну. Информация о колебаниях её в свою очередь снова поступает на вход сустейнера и… В общем, называется это положительной обратной связью. Струна продолжает автоколебания до тех пор, пока сустейнер обеспечен питанием. Звучит примерно так (по второй ссылке Steve Vai).
Увидено на dirty.ru
Ну и видеоролики с демонстрацией:
Сайт фирмы-производителя (изобретателя) www.sustainiac.com
Выглядит комплект вот так (взято с сайта производителя):
guitar.by
от чего зависит сустейн гитары и как его повыстить?
Модератор: moderator
от чего зависит сустейн гитары и как его повыстить?
#1 Сообщение Kerf » Сб апр 23, 2011 6:19 pm
Re: от чего зависит сустейн гитары и как его повыстить?
#2 Сообщение Скиф » Сб апр 23, 2011 6:49 pm
Предупреждая советы «Поджечь волосы», предположу, что не помешает проверить крепление грифа к деке и заглушить к чертовой бабушке китайское тремоло хорошим бруском дерева. А затем:
1) гриф вместо саморезов посадить на бронзовые втулки (если там болченка)
2) хорошенько прошлифовать и протереть скрипичной канифолью пятку грифа, плотно прикрутить к деке.
Re: от чего зависит сустейн гитары и как его повыстить?
#3 Сообщение Rockwill » Сб апр 23, 2011 7:19 pm
Re: от чего зависит сустейн гитары и как его повыстить?
#4 Сообщение Скиф » Сб апр 23, 2011 8:58 pm
Re: от чего зависит сустейн гитары и как его повыстить?
#5 Сообщение Rickenbacker » Сб апр 23, 2011 9:38 pm
Re: от чего зависит сустейн гитары и как его повыстить?
#6 Сообщение Belarus » Сб апр 23, 2011 10:47 pm
Re: от чего зависит сустейн гитары и как его повыстить?
#7 Сообщение Rockwill » Сб апр 23, 2011 10:49 pm
Re: от чего зависит сустейн гитары и как его повыстить?
#8 Сообщение Rockwill » Сб апр 23, 2011 10:51 pm
Читай внимательно.
у автора есть японский телек неплохой.
А улучшить сустейн хочет у другой гитары. и именно у нее!
Re: от чего зависит сустейн гитары и как его повыстить?
#9 Сообщение Belarus » Сб апр 23, 2011 10:58 pm
Re: от чего зависит сустейн гитары и как его повыстить?
#10 Сообщение Rockwill » Вс апр 24, 2011 8:20 am
Re: от чего зависит сустейн гитары и как его повыстить?
#11 Сообщение Belarus » Вс апр 24, 2011 8:29 am
Содержание
Сочинение
Вдохновение
Sustain был заказан Филармонией Лос-Анджелеса на их столетний сезон. Норман заявил, что начал с представления, что оркестровая музыка будет значить в будущем, в течение 200-го сезона оркестра. Таким образом, произведение было задумано как «одна долгая непрерывная музыкальная мысль», акцентируя внимание на важности совместного прослушивания. Однако в конечном итоге он стал представлять Землю и масштаб геологического времени.
Норман объяснил в интервью, что название « Sustain » частично связано с его опытом работы в качестве пианиста (в отношении педали сустейна ), и что это также связано с идеей, что каждая нота в пьесе должна иметь свой собственный путь.
Структура
Выдерживают форма «s была описана Нормана в качестве„заказчика спирали“. Он состоит из десяти циклов одной и той же музыки, каждый раз ускоряясь при каждом повторении. Каждый цикл начинается с отличительного «сигнала», который играют два фортепиано (настроенных на четверть тона), за которым следуют звуковые волны в струнах. Когда ветер стихает, музыка становится более беспокойной и кульминационной, затем стихает и цикл заканчивается. Первый цикл длится примерно семнадцать минут, а последний длится всего несколько секунд. В конце концов, оркестр остается в несопровождаемой, полуимпровизационной части, которая медленно умирает, оставляя два фортепиано. Пьеса завершается сигналом фортепиано, после которого струны воспроизводят (но не играют) устойчивую ноту на своей самой высокой струне.
Программирование&Музыка: ADSR-огибающая сигнала. Часть 2
Всем привет!
Вы читаете вторую часть статьи про создание VST-синтезатора на С#. В первой части был рассмотрен SDK и библиотеки для создания VST плагинов, рассмотрено программирование осциллятора.
В этой части я расскажу про огибающие сигнала, их разновидности, применение в обработке звука. В статье будет рассмотрено программирование ADSR-огибающей для управления амплитудой сигнала, генерируемого осциллятором.
Огибающие есть в любом синтезаторе, применяются не только в синтезе, а повсеместно обработке звука.
Цикл статей
Оглавление
Огибающая
С точки зрения математики, огибающая кривая (или функция) — это такая кривая (функция), которая в каждой своей точке касается некоторого множества. Это может быть множество кривых, точек, фигур, элементов. Она огибает заданное множество. Можно представить, что огибающая есть некоторая граница, которая ограничивает элементы множества.
Представим себе множество одинаковых окружностей, центры которых расположены на одной линии. Их огибающие — это две параллельные прямые. Эти огибающие, по сути, являются границами для множеств точек окружностей.
Огибающие для окружностей. Скриншот взят с сайта dic.academic.ru
В плане синтезирования и обработки сигналов, огибающая — это функция, описывающая изменения какого-либо параметра во времени.
Красная кривая — огибающая амплитуды волны. Скриншот взят с сайта www.kit-e.ru
Огибающие в основном используются для описания изменения амплитуды сигнала. Но никто не запрещает вам использовать огибающую для описания изменений частоты среза фильтра (cutoff), высоты тона (pitch), панорамы (pan) и некоторых других существующих параметров синтезатора.
В реальном мире громкость звука музыкального инструмента изменяется с течением времени. Каждый инструмент имеет свои особенности изменения громкости. Например, орган при нажатой клавише соответствующей ноты играет её с постоянной громкостью, а гитара воспроизводит звук максимально громко только в момент удара по струне, после чего он плавно затухает. Для духовых и струнных инструментов свойственно достижение максимальной громкости звука не сразу, но через некоторое время после взятия ноты.
ADSR-огибающая позволяет описывает изменения громкости звука как 4 последовательные фазы с параметрами:
Рассмотрим график в начале статьи, обозначения:
В момент начала генерирования сигнала начинается фаза атаки. За время Ta сигнал возрастает до уровня 1 * k. После начинается фаза Decay — за время Td значение уровня снижается до As * k.
Огибающая переходит в фазу Sustain — она не ограничена по времени. После перехода в фазу Release (отжали клавишу) амплитуда сигнала снижается до нуля за время Tr.
Что если мы отпустим ноту до момента наступления фазы Decay или Sustain? В любом случае, мы должны перейти в фазу Release, которая начнется с текущего уровня сигнала.
Важно понять что параметр Sustain — это уровень сигнала, в отличие от параметров Attack, Delay, Release — которые представляют собой время (если глядеть на графики ADSR в интернете можно поймать некоторое непонимание).
Различные виды огибающих в существующих плагинах
В интернете очень много информации, статей, видеоуроков, посвященным огибающим — они повсеместно используются, а уж особенно в синтезаторах для модулирования параметров.
Никакой текст не передаст картинку, а уж тем более звук. Поэтому я рекомендую вам посмотреть пару видео на ютубе по запросу «adsr envelope»: хотя бы это, по первой ссылке, годное объяснение с интерактивом.
В VST-синтезаторах огибающие применяются как:
ADSR-огибающая обрабатывает амплитуду звука с двух осцилляторов. Скриншот из синтезатора Sylenth1
Часто в ADSR-огибающую добавляют фазу Hold — фаза с конечным временем и максимальной амплитудой между фазами Attack и Decay.
AHDSR-огибающая (добавлена фаза Hold) в синтезаторе Serum, в блоке огибающих для модулирования параметров
Существуют и более сложные огибающие — ADBSSR-огибающая.
MIDI-сообщения нажатия клавиш
Переходим к программированию и обзору кода написанного мною синта. (Ссылка на GitHub)
В прошлой статье был рассмотрен простой осциллятор, который генерирует волну по таблице определенной частоты сразу со старта плагина. Там же написано как собрать проект и рассмотрена архитектура кода.
Прикрутим Midi-сообщения к осциллятору, чтобы сигнал генерировался, только если зажата клавиша.
Чтобы получить Midi-сообщения из хоста, класс плагина (наследник SyntagePlugin) должен перегрузить метод CreateMidiProcessor, возвращающий IVstMidiProcessor.
В Syntage.Framework есть готовый класс MidiListener, реализующий IVstMidiProcessor.
У MidiListener есть события OnNoteOn и OnNoteOff, которые мы будем использовать в осцилляторе.
Теперь у осциллятора не будет параметра частоты (Frequency), так как частота будет определяться зажатой клавишей.
Подпишемся в конструкторе на события OnNoteOn и OnNoteOff и реализуем их.
В обработчики событий приходит аргумент NoteEventArgs, который имеет информацию о ноте, октаве, силе нажатия (note velocity).
Минимальное расстояние между нотами — полутон, соответственно целочисленную абсолютную величину ноты (её номер) мы будем мерить как количество полутонов от некоторой басовой ноты (какой- поймем далее). Почему? Это удобно для формулы получения частоты по номеру ноты.
Немножко теории — сейчас в музыке правит равномерно темперированный строй.
Октава — диапазон из 12 полутонов, из 12 различных нот (в мажорных и минорных тональностях нот 7, так как между некоторыми нотами интервалы тон, а между некоторыми полутон).
Весь звукоряд делится на октавы. Соответственно, весь слышимый спектр частот так же делится на отрезки-октавы.
Нота на октаву выше будет иметь вдвое большую частоту, но называться так же.
Чтобы посчитать частоту ноты, которая отстоит на i полутонов от эталонной ноты с частотой f0, используют следующую формулу:
Напишем соответствующую статическую функцию в вспомогательном классе DSPFunctions:
Здесь за эталон берется нота Ля первой октавы (440 Гц). Из формулы видно, что нота с «номером» 0 стоит ниже Ля первой октавы на 69 полутонов, это нота До с частотой 8.1758 Гц (еще ниже на октаву, чем в субконтроктаве), у Ля первой октавы же «номер» будет 69. Почему эта нота? Видимо, так договорились люди, когда делали клавиатуры для синтезаторов, чтобы уж «с запасом».
Наш осциллятор монофонический — сколько бы вы ни нажали клавиш на клавиатуре, будет восприниматься только последняя нажатая клавиша. После прочтения следующих глав вы сможете запрограммировать многоголосный осциллятор, я не буду про это рассказывать — решил не усложнять.
Более объектно-ориентированный подход в коде осциллятора
Пора переходить на более высокий уровень: предлагаю написать класс для представления генерируемого тона (тем более в дальнейшем нам это упростит жизнь).
Тон характеризуется номером и пройденным временем со старта — пока ничего нового, просто добавили ясность в код:
Соответственно, теперь осциллятор имеет поле Tone _tone, которое будет null при отсутствии зажатой клавиши.
Тем более, с таким классом легче будет программировать многоголосный осциллятор.
Щелчек при переключении ноты
Представьте следующую ситуацию: вы нажали ноту на клавиатуре, осциллятор начал генерировать гармонику с данной частотой, затем вы нажимаете следующую ноту и в осцилляторе сразу же переключается частота и обнуляется фаза (время). Это значит, что в волне будет разрыв, что на слух приводит к артефактам и щелчкам.
Чтобы сгенерировать волну по таблице, мы находили «относительную фазу» как значение от 0 до 1, где 1 понималось как полный период волны. Если мы сменим частоту волны, но оставим такой же «относительную фазу» то значения волны совпадут и щелчка не будет.
Нужно определить начальное время для новой ноты, если в текущий момент генерировалась нота с другой частотой.
Формула из прошлой статьи для «относительной фазы»:
Соответственно, зная новую частоту, получим нужное время:
В коде это выглядит так:
Программирование ADSR-огибающей
После осциллятора сигнал идет в обработку ADSR-огибающей, которая будет менять его амплитуду (громкость).
При нажатии клавиши огибающая входит в фазу Attack, при отжимании клавиши огибающая входит в фазу Release. В этой фазе сигнал должен плавно (имеется ввиду без щелчков, а уж быстро или медленно решать пользователю, крутящему ручки параметров) затихнуть.
Осциллятор перестает генерировать сигнал при отжимании клавиши — огибающая не сможет корректно обработать фазу Release. В фазе Release сигнал должен продолжать генерироваться осциллятором, а огибающая сделает свое дело для затухания громкости.
Для этого нужно убрать обработчик OnNoteOff из кода осциллятора — теперь этим займется огибающая.
Как было описано в главе «Огибающая» — мы используем значение огибающей как множитель для семпла сигнала. Значение огибающей меняется во времени от 0 до 1, значение 1 огибающая принимает лишь при переходе между фазами Attack и Decay (при значении огибающей, равной 1, амплитуда сигнала не меняется).
Чтобы запрограммировать переходы из фаз A-D-S-R, нужно закодить стейт-машину, поэтому далее я будут говорить состояния, а не фазы огибающей.
Огибающая имеет 4 параметра: время Attack, Delay, Release и множитель амплитуды Sustain. Обычно Attack, Delay — это миллисекунды, Release уже может быть сравним с секундой.
Все 4 состояния сменяют друг друга всегда последовательно: нельзя перескочить из одного состояния в другое. Если у состояний Attack, Delay или Release время будет нулевым — можно получить клип. Поэтому минимум у этих параметров нужно сделать не нулевым. Я сделал параметры Attack, Delay или Release от 0.01 до 1 секунды.
В реализации будет следующая иерархия: класс ADSR представляет собой каркас для логики огибающей, который содержит в себе часть логики синтезатора: набор необходимых параметров, обработчики событий нажатий клавиш, функцию Process, обрабатывающую поток семплов.
Логика огибающей будет скрыта в классе NoteEnvelope, от которого, по сути, требуется только метод — для получения текущего значения огибающей. Этот метод нужно вызывать последовательно для всех семплов потока и производить умножение.
Важно договориться, как обрабатывать нажатия клавиш. Например, как обработать нажатие клавиши, если уже нажата другая клавиша? Методом пристального взгляда я изучил, как сделано в синтезаторе Sylenth1, если не использовать в нем полифонию. Решил выбрать такую стратегию:
Простыми словами — мы обращаем внимание только на изменение состояния клавиш «все отпущены — хоть одна зажата».
Таким образом, при нажатии новой клавиши и зажатой текущей, в осцилляторе просто переключится частота, а огибающая никак на это не отреагирует. При программировании многоголосия все становится сложнее.
Запишем все вышесказанное в классе-каркасе ADSR: параметры, обработчик нажатия клавиш, обработка семплов.
Приступаем к программированию логики огибающей — класс NoteEnvelope. Как можно видеть из приведенного кода класса ADSR, от класса NoteEnvelope нужны следующие публичные методы:
Определим перечисление для состояний:
Мы знаем время между двумя семплами, следовательно знаем время работы стейтов и общее время работы огибающей.
Во всех стейтах для определения текущего значения применяется одинаковая логика: зная время от начала стейта, время стейта (параметры огибающей), интерполируется начальное и конечное значения огибающей.
Для стейта Sustain начальное и конечное значение совпадают, поэтому логика с интерполяцией здесь тоже сработает корректно (хоть она тут и бесполезна).
Начальное значение и время для состояния определяется в момент переключения стейта:
Каждый вызов функции GetNextMultiplier() нужно уменьшать _time на время между двумя семплами. Если время стало меньше либо равно нуля, то нужно переходить в другой стейт.
Переход в стейт Release возможен только из функции Release().
Конечное время для стейтов очевидно: для Attack — 1, для Decay и Sustain — параметр амплитуды Sustain, для Release — 0.
Если сгенерировать простой синус с применением написанной огибающей, получим следующую волну (аудиофайл генерировался в FL Studio а затем исследовался в опен сорсном редакторе Audacity)
В фазах Attack, Decay и Release огибающая меняется по линейному закону (Скриншот из Audacity)
Видно, что в фазах Attack, Decay и Release огибающая меняется по линейному закону.
В реальном мире колебания не могут длится вечно, из-за траты энергии на силы сопротивления колебания затухают. Амплитуда затухающих колебаний меняется по экспоненциальнму закону.
Применение огибающей в синтезаторе Sylenth1 (Скриншот из Audacity)
Применение огибающей в синтезаторе 3x Osc из FL Studio (Скриншот из Audacity)
По примеру огибающих в других синтезаторах в стейте Decay и Release используем экспоненциальную функцию, а в стейте Attack используем обратную функцию — логарифм.
Для каждого стейта мы знаем относительное время (от 0 до 1) и крайние значения огибающей a и b.
Возьмем функцию E^x на промежутке [0, 1]. Она имеет значения в отрезке [1, E]. Нужно перевести этот отрезок в [a, b]. Логарифм найдем как обратную для экспоненты функцию:
F1 — Функция для состояния Decay и Release. Так как она вогнута в другую сторону, нужно отобразить ее симметрично оси Y (заменяем аргумент на 1-x).
Функция F2 является обратной для F1, нужно выразить x через y.
Результат трудов (Скриншот из Audacity)
В продвинутых синтезаторах можно самому выбирать кривизну кривой между фазами:
Огибающая в синтезаторе Serum
Примеры звучаний с использованием ADSR-огибающей
Рассмотрим пару идей звучаний, которые можно получить из простого сигнала, используя ADSR-огибающую.
Повторюсь, в интернете тонны материала, обучающего видео и примеров по теме огибающей сигнала. С помощью огибающей громкости хорошо эмулируются различные звуки и эффекты, опять же, в синтезаторах можно найти кучу готовых пресетов (точно будут имитации ударных).
В следующей статье я расскажу про частотный фильтр Баттервота.
Всем добра!
Удачи в программировании!
Список литературы
Основные статьи и книги по цифровому звуку указаны в предыдущей статье.
Значение слова «сустейн»
сусте́йн
1. продолжительность звучания извлеченной ноты ◆ Сустейн придает звучанию бэнда совершенно неповторимую окраску, усиливая его драматический эффект. Джон Чаппел, «Рок-гитара для «чайников»», 2008 г.
Делаем Карту слов лучше вместе
Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!
Спасибо! Я стал чуточку лучше понимать мир эмоций.
Вопрос: третьеразрядный — это что-то нейтральное, положительное или отрицательное?
Синонимы к слову «сустейн»
Предложения со словом «сустейн»
Понятия, связанные со словом «сустейн»
Отправить комментарий
Предложения со словом «сустейн»
Жирный закомпрессированный звук, сочные обертона и длительный сустейн вкупе с высокой читаемостью нот делают этот инструмент недосягаемым для большинства существующих моделей.
Синонимы к слову «сустейн»
Карта слов и выражений русского языка
Онлайн-тезаурус с возможностью поиска ассоциаций, синонимов, контекстных связей и примеров предложений к словам и выражениям русского языка.
Справочная информация по склонению имён существительных и прилагательных, спряжению глаголов, а также морфемному строению слов.
Сайт оснащён мощной системой поиска с поддержкой русской морфологии.