Управління амплітудою

Якщо уважно прислухатися до звучання коливається струни гітари, піаніно або майже будь-якого іншого музичного інструменту, можна помітити, що гучність звуку змінюється досить передбачуваним чином B більшості випадків найбільша гучність спостерігається на початку звучання ноти, потім протягом деякого інтервалу вона досить рівномірно зберігається і, нарешті, слід область загасання Таке зміна амплітуди називається обвідної (envelope)

Щоб змусити цифрові інструменти звучати більш жваво, слід приділити особливу увагу управлінню обвідної Найпростіша і найбільш поширена форма управління обвідної називається ADSR абревіатура від attack (Атака), decay  (Спад),sustain  (Підтримка) іrelease  (Загасання) Ha рис 211 показана типова огинає ADSR

Управління обвідної ADSR здійснюється безліччю різних способів B апаратних синтезаторах часто передбачено окреме управління гучністю, яка коригується в міру програвання ноти B випадку з семплами управління обвідної ADSR може бути вбудовано безпосередньо в семпл Для інших типів цифрових інструментів механізм управління обвідної є обовязковим Прикладом цього може служити алгоритмколивається струни (Plucked string), який буде описаний в даній главі

Управління обвідної в семплерах

Дуже часто береться ряд записаних звуків і на їх основі створюються семпли При цьому необхідно виділити три області в звуці: початкову, яка включає атаку і спад, область підтримки, яка буде циклічно повторюватися, і область загасання Найбільш важлива частина цього процесу переконатися, що повторення області підтримки організовано коректно кінцева частина повинна точно підходити до її початкової частини

Щоб показати, як побудувати семпл, створимо довільну шаблонну хвильову форму з самого початку B якості базового звуку візьмемо синусоидальную хвилю 440 Гц, оцифрованную на частоті 44000 відліків в секунду Потім використовуємо форму обвідної ADSR, показану на рис 211 Вона має короткий період атаки (1/20 секунди), за який досягає максімумальной амплітуди, потім йде спад до рівня підтримки в 1/4 амплітуди Закінчується ця огинає напівсекундного областю загасання Початок і кінець області підтримки були акуратно підібрані, щоб звук повторювався коректно

Зауважте, що подібні семпли, зазвичай конструюються вручну Спочатку записується потрібний інструмент, а потім, для того щоб побудувати придатну для відтворення композицію, із записом проводяться акуратні маніпуляції

Лістинг 215 Створення шаблону і ініціалізація семпла

const float maxAmplitude

= static_cast&ltfloat&gt((1L&lt&lt(8*sizeof(AudioSample)-1))-1)

const int numSamples = 44000

AudioSample *buffer= new AudioSample[numSamples]

for(int i=0i&ltnumSamplesi++) {

float amplitude = 00 / / За замовчуванням

float time = i / static_cast&ltfloat&gt(numSamples)

if (time <0.05) / / Атака 0,0 5 с.

amplitude = time / 005 / / Збільшуємо до 1

else if (time <0.25) / / Спад тривалістю 0,2 с.

amplitude = 10 ((time-005) / 02 * 075)

/ / Ослаблення до 0,25

else if (time <0.5) / / Період підтримки

/ / (0,25 с за шаблоном)

amplitude = 02 5

else if (time <1.0) / / Спад тривалістю 0,5 с.

amplitude = 025 ((time-05) / 05 * 025)

buffer[i] = static_cast&ltAudioSample&gt(

maxAmplitude

* amplitude

* sin(time * (4400 * 20 * 314159265358979 ) )

)

}

_sampledInstrument

= new SampledInstrument(buffer,numSamples,numSamples/

4,numSamples/2)

_sampledInstrument-

&gtBasePitch(4400,static_cast&ltfloat&gt(numSamples))

delete [] buffer

Такий підхід має один серйозний недолік: коли ви змінюєте швидкість відтворення, ви також міняєте швидкість зміни обвідної Більш складні методи управління обвідної увазі окремий контроль за нею для запобігання цієї проблеми

Інші методи управління

Хоча ламані огинають ADSR найбільш поширені, крім них також використовуються й інші типи управління обвідної B Зокрема, рівний рівень підтримки підходить тільки для таких інструментів, як скрипка і труба, в яких тривалий збудження (смичок скрипаля або дихання трубача) зберігає рівний звук настільки довго, наскільки це необхідно Їм можна протиставити гітару або піаніно У цих інструментів наступна після початкової атаки область спаду не переривається Ділянка підтримки відсутня

Ще один популярний ефекттремоло(Tremolo), коли амплітуда циклі-

тично рівномірно змінюється При апаратній синтезі використовуєтьсянизькочастотний генератор(Low-frequency oscillator, LFO), який здійснює управління амплітудою При роботі з семплами можна використовувати циклічну область для зберігання цілого циклу амплітуди

Є й альтернативний спосіб: можна швидко коригувати гучність,

множачи кожну вибірку на значення, яке плавно змінюється

Частотна модуляція і синтез

Постачальники звукових карт люто сперечаються про відносні переваги ЧС-сінтпеза (FM synthesis, синтез за допомогою частотної модуляції) і табличного хвильового синтезу(Wavetable synthesis) B дійсності ці два походи швидше схожі, ніж відмінні

Подивіться уважно на метод AddSamples центральну частину його часто називають цифровим генератором (Digital oscillator), який має три вхідних параметра: хвильову форму, представлену у вигляді відліків, прирощення (висоту тону) і гучність Ha їх основі він формує вихідну послідовність відліків B класі SampledNote все вхідні параметри зафіксовані

Для формування більш насичених звуків можна змінювати прирощення

і гучність під час програвання ноти Найпростіше зробити це за допомогою двох цифрових генераторів, що працюють зі своїми власними хвильовими формами B результаті виходить, що основний генератор відтворює звук з варіюванням висоти і гучності Підбираючи генератори хвильової форми, швидкості, висоти тону і гучності, можна отримати безліч ефектів, включаючи управління обвідної, вібрато і тремоло

Найпростіший приклад такого використання називаєтьсяЧС-синтезомЧМсінтез характеризується невеликим набором хвильових форм, також часто використовуються прості синусоїдальні і прямокутні хвилі Цифрові осцилятори називаютьсямодулямиабооператорамиМікросхеми ЧС-синтезу дозволяють комбінувати оператори різними способами

Хвильовий табличний синтез являє собою те ж саме, але тут хвильові форми зберігаються в памяті і можуть змінюватися B деяких системах також програмуються хвильові форми гучності і висоти тони

Джерело: Кінтцель Т Керівництво програміста по роботі зі звуком = A Programmers Guide to Sound: Пер з англ М: ДМК Пресс, 2000 432 с, іл (Серія «Для програмістів»)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*