Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. Programming
Gamedevelopment

Бучава: Создавање синтезатор за ретро звучни ефекти - Вовед

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Noise: Creating a Synthesizer for Retro Sound Effects.
Noise: Creating a Synthesizer for Retro Sound Effects - Core Engine

Macedonian (Македонски јазик) translation by Stefan Nikolov (you can also view the original English article)

Ова е прва во серија вежби во кои ќе создадеме аудио мотор базиран на синтезатор кој може да генерира звуци за ретро-стилизирани игри.  . Аудио моторот ќе генерира сите звуци за време на извршувањето, без потреба од какви било надворешни зависности, како што се MP3 датотеки или WAV-датотеки. Крајниот резултат ќе биде работна библиотека која може лесно да се намали во вашите игри.

Пред да можеме да започнеме да создаваме аудио мотор има неколку работи што ќе треба да ги разбереме; овие вклучуваат бранови форми кои аудио моторот ќе ги користи за генерирање на звучните звуци и како звучните бранови се зачувани и застапени во дигитална форма.

Програмскиот јазик кој се користи во ова упатство е ActionScript 3.0, но користените техники и концепти лесно може да се преведат на кој било друг програмски јазик кој обезбедува API со низок степен на звук.

Треба да бидете сигурни дека имате инсталирано Flash Player 11.4 или повисоко за вашиот прелистувач, ако сакате да ги користите интерактивните примери во ова упатство.


Форми на бранови

Аудио моторот кој ќе го создаде ќе користи четири основни бранови форми (исто така познати како периодични бранови, бидејќи нивните основни облици се повторуваат периодично), кои се многу чести и во аналогните и во дигиталните синтисајзери. Секоја бранова форма има своја уникатна звучна карактеристика.

Следните делови обезбедуваат визуелно рендерирање на секоја форма на сигнали, звучен пример за секоја форма на сигнал, и кодот потребен за генерирање на секоја форма на сигнали како низа примероци.

Пулс

Пулсот бран произведува остар и хармоничен звук.

Нема Флеш? Земете МП3

За да генерирате низа вредности (во опсег од -1.0 до 1.0) кои претставуваат пулсен бран, можеме да го користиме следниов код, каде што бројот на вредности потребни за да се пополни низата, а е низата, а p е нормализирана позиција во рамките на бранот:

Sawtooth

Пилеот бран произведува остар и суров звук.

Нема флеш? Земете МП3

За да генерирате низа вредности (во опсег од -1.0 до 1.0) кои претставуваат пила-бран, можеме да го користиме следниов код, каде што е бројот на вредности потребни за да се пополни низата, а е низата, а p е нормализирана позиција во рамките на бранот:

Синус

Синусниот бран произведува мазен и чист звук.

Нема Флеш? Земете МП3

За да генерира низа вредности (во опсег од -1.0 до 1.0) кои претставуваат синусен бран, можеме да го користиме следниов код, каде што n е бројот на вредности потребни за да се пополни низата, а е низата, а p е нормализирана позиција во форма на бранови:

Тријаголник

Бран на триаголник произведува мазен и хармоничен звук.

Нема Флеш? Земете МП3

За да генерирате низа вредности (во опсег од -1.0 до 1.0) кои претставуваат бран на триаголник, можеме да го користиме следниов код, каде што е бројот на вредности потребни за да се пополни низата, а е низата, а p е нормализирана позиција во рамките на бранот:

Еве проширена верзија на линијата 6:


Амплитуда и фреквенција на бранови

Два важни својства на звучниот бран се амплитудата и фреквенцијата на бранот: овие диктираат јачината и звукот на звукот, соодветно. Амплитудата е едноставно апсолутна вредност на врвната вредност на брановиот образец, а фреквенцијата е бројот на пати на кои брановиот образец се повторува во секунда, кој нормално се мери во Hz (Hz).

Следната слика е 200 милисекундална слика од пилетофорум со амплитуда од 0,5 и фреквенција од 20 херци:

За да ви дадам идеја за тоа како фреквенцијата на брановиот сигнал директно се однесува на висината на звучниот звук, брановиот формат со фреквенција од 440 херци ќе произведува ист тон како и стандардната А4 нота (средна А) на модерен концертен пијано. Имајќи ја предвид таа фреквенција, ние сме во можност да ја пресметаме фреквенцијата на која било белешка со користење на следниов код:

Променливата n во тој код е бројот на белешки од А4 (средна А) до забелешката за која сме заинтересирани. На пример, за да ја пронајдеме фреквенцијата на A5, една октава над A4, ќе ја наместиме вредноста на n на 12, бидејќи A5 е 12 белешки над A4.  За да ја пронајдеме фреквенцијата на Е2, би ја наместиле вредноста на n на -5, бидејќи E2 е 5 белешки подолу A4. Ние можеме да го направиме обратното и да најдеме белешка (во однос на А4) за дадена фреквенција:

Причината зошто овие пресметки функционираат е затоа што фреквенциите на белезите се логаритамски - размножувањето на фреквенцијата со две потези забележува една единствена октава, додека поделбата на фреквенцијата со две потези запишува една единствена октава.


Дигитални звучни бранови

Во дигиталниот свет, звучните бранови треба да се зачуваат како бинарни податоци, а вообичаениот начин на тоа е да се земат периодични снимки (или примероци) на звучниот бран. Бројот на бран примероци кои се земаат за секоја секунда од времетраењето на звукот е познат како стапка на мостра, па звукот со 44100 примерок ќе содржи 44100 примероци на бран (по канал) за секоја секунда од времетраењето на звукот.

Следнава слика покажува како може да биде земен примерок од звучен бран:

Белите грутки на таа слика ги претставуваат амплитудните точки на бран што се примероци и се чуваат во дигитален формат.  Можете да размислите за ова како резолуција на битмапа фотографија: колку повеќе пиксели, битмап сликата содржи повеќе визуелни информации што може да ги задржат, а повеќе информации резултираат во поголеми датотеки (игнорирај компресија на датотеката за сега).  Истото важи и за дигиталните звуци: повеќе примероци на бранови, звучната датотека содржи поточни, реконструираниот звучен бран ќе биде. 

Исто така, дигиталните звуци, исто така, имаат малку стапка која се мери во битови во секунда. Бит стапка диктира колку бинарни битови се користат за складирање на секој бран примерок.  Ова е слично на бројот на битови кои се користат за складирање на информации за ARGB за секој пиксел во битмапа фотографија.  На пример, звук со стапка на примероци од 44100 и битна стапка од 705600 би ги складирал сите примероци на бранови како 16-битна вредност и можеме лесно да го пресметаме користејќи го следниов код: 

Еве еден работен пример со користење вредностите споменати погоре: Разбирањето на примероците за звук е најважното нешто тука; аудио моторот кој ќе го создадеме ќе мора да генерира и манипулира со примероци од сирови звуци. 

Да разбереме што се звучни примероци е најважното овде, аудио моторот што ќе го правиме ќе мора да генерира и манипулира сурови примероци.


Модулатори 

Едно нешто што треба да го знаеме пред да почнеме да го програмираме аудио моторот се модулатори, кои се многу чести и во аналогните и во дигиталните синтисајзери. Модулаторот во суштина е само стандардна бранова форма, но наместо да се користи за производство на звук, тие најчесто се користат за модулирање на едно или повеќе особини на звучните бранови (на пример, нејзина амплитуда или фреквенција). 

На пример, наведете вибрато.  Вибрато е редовна пулсирачка промена на теренот. За да го произведете тој ефект користејќи модулатор, можете да ја поставите бранова форма на модулаторот на синусен бран и да ја подесите фреквенцијата на модулаторот на некаде околу 8 херци.  Ако потоа го приклучивте тој модулатор до фреквенцијата на звучен сигнал, резултатот ќе биде ефект на вибрато - модулаторот ќе ја зголеми и намали фреквенцијата (висината) на звучниот облик од осум пати во секунда.

 Аудио моторот што ќе биде креирањето ќе ви овозможи да ги прикачите модулаторите на вашите звуци за да ви овозможите да произведувате огромен број на различни ефекти.


Следува

Во следниот туторијал ќе создадеме основен код за аудио-моторот и ќе работиме и ќе работиме. Следете нас на Твитер, Фејсбук или Google+ за да бидете во тек со најновите објави.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.