Найти в Дзене

Как образуются музыкальные звуки в компьютере

Элементарная теория звучания музыкального произведения описывается на основе звукового канала, который состоит всего из трех элементов: источника, проводника и приемника. Функциональная схема звукового канала приведена на рисунке 1.

Рисунок 1 - Элементарная схема звукового канала
Рисунок 1 - Элементарная схема звукового канала

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

На рисунке 2 приведен пример звукового канала, в котором источником звука является колокольчик, проводником – окружающий колокольчик воздух и приемником – человеческое ухо.

Рисунок 2 – Пример звукового канала
Рисунок 2 – Пример звукового канала

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

Если в передатчике возбудить не просто вибрацию, а стоячую волну, то колебания воздуха будут происходить по гармоническому закону, т.е. описываться функцией синуса или косинуса:

P(t)=A*sin(2*pi*v*t),

где P - мгновенное значение звукового давления в момент времени t;
A - амплитуда звукового давления;-v - частота звукового давления.

Музыкальный звук представляет собой как раз гармоническое колебание. Его основными характеристиками являются высота и сила.

Высота музыкального звука соответствует частоте гармонического колебания v . Чем больше частота, тем выше звук и наоборот.

Сила звука соответствует амплитуде гармонического колебания A , т.е. максимальной по модулю величине мгновенного значения звукового давления.

Музыкальные звуки являются основой любого музыкального произведения от простейших мелодий до симфоний.

Помимо музыкальных звуков в музыкальном произведении используются и шумовые звуки – звуки ударных инструментов (барабана, тарелок и др.), шорохи, стуки, шуршания, скрипы и даже выстрелы из пушек. Они служат для подчеркивания отдельных моментов музыкального произведения и как бы его украшают. Этим звукам нельзя приписать определенную высоту, так как они не являются гармоническими колебаниями. Однако благодаря ряду Фурье их можно разложить на гармонические колебания, из которых затем синтезировать необходимое звучание на компьютере или электронном синтезаторе.

Человеческий голос и реальные музыкальные инструменты не в состоянии генерировать чистые музыкальные звуки, к ним всегда примешиваются дополнительные гармонические звуки, которые называются гармониками. Качество звука описывается тембром. Тембр – это то, что позволяет определить звучание конкретного голоса или музыкального инструмента при исполнении одного и того же звука. Тембр определяет характер звучания. Он может быть резким и плавным, мягким и звонким и т.д. Математически тембр может быть записан в виде суммы гармонического ряда

P(t)=A1*sin(2*pi*v)+A2*sin(4*pi*v)+A3*sin(6*pi*v)+...

где первый член ряда является основным тоном, второй - первым обертонном, третий член - вторым обертоном и т.д. Амплитуды должны удовлетворять неравенству

A1>A2>A3>...

В музыкальном произведении звуки звучат не все одновременно, а в определенной последовательности с заданной длительностью. Математически это можно записать в виде формулы:

P'(t)=P(t), t0<t<t0+dt, иначе P'(t)=0,

где t0 - начало звучания звука в музыкальном произведении; dt - длительность звучания звука в музыкальном произведении.

На рисунке 3 приведена схема, позволяющая компьютеру генерировать звук.

Рисунок 3 – Схема генерации звука в компьютере
Рисунок 3 – Схема генерации звука в компьютере

Программа управления звуком, загруженная программистом через терминал в микроконтроллер, формирует на его выходе цифровой код, который цифроаналоговым преобразователем (ЦАП) преобразуется в аналоговый сигнал напряжения на его выходе. Этот сигнал в свою очередь усиливается усилителем и преобразуется в переменный электрический ток, который поступает в динамик и заставляет вибрировать его мембрану, тем самым генерируя звуковую волну.

Кодирование звука компьютерной программой состоит в том, что она, во-первых записывает звук в виде одномерного массива чисел, каждое из которых пропорционально мгновенному значению напряжения на выходе ЦАП, и во-вторых организует передачу цифрового кода на ЦАП с заданной частотой, называемой частотой дискретизации ЦАП.

Алгоритм звучания музыкального звука одного тона без обертонов, можно записать следующим образом.

Задаем частоту v _dac дискретизации ЦАП и по нему вычисляем длительность dt _dac в течении которого на выходе ЦАП держится постоянный уровень напряжения – аналога мгновенного значения звукового давления

dt _dac =1/ v _dac .

Задаем время T звучания музыкального звука и по нему определяем длину Q одномерного массива, в который будет записаны уровни напряжения, соответствующие мгновенным значениям звукового давления

Q=round(T/dt_dac),

где round (x ) - функция округления действительного числа до ближайшего целого.

Вычисляем временной массив {t [1],…,t [Q ]} моментов времени, в которые ЦАП будет выставлять уровни напряжения, соответствующие мгновенным значениям звукового давления в этот момент

t [q ]=q *dt _dac , q =1,2,...,Q

Вычисляем значения одномерного массива u [1,…,Q ] уровней напряжения, соответствующих мгновенным значениям звукового давления в моменты времени t [1,…,Q ] по формуле гармонического колебания:

u[q]=u_max*sin(2*pi*v*t[q])

где u _max - максимальный уровень напряжения, который может выдать ЦАП; v - звуковая частота колебания воздуха – частота музыкального звука.

Преобразуем уровни напряжения u [1,…,Q ] в цифровой код N [1,…,Q ] для ЦАП

N[q]=round(u[q]/du_dac), q=1,2,...,Q,

где du _dac - уровень напряжения наименьшего значащего бита ЦАП.

Затем организуем цикл со счетчиком по q , в теле которого последовательно друг за другом записываем цифровые коды из одномерного массива N [1,..,Q ] в порт ЦАП и слушаем музыкальный звук. Для первого примера лучше всего проиграть в течении 10 секунд музыкальный звук на частоте v =440 Гц, что соответствует ноте ЛЯ первой октавы фортепьяно, но об этом позднее.Программа управления звуком, загруженная программистом через терминал в микроконтроллер, формирует на его выходе цифровой код, который цифроаналоговым преобразователем (ЦАП) преобразуется в аналоговый сигнал напряжения на его выходе. Этот сигнал в свою очередь усиливается усилителем и преобразуется в переменный электрический ток, который поступает в динамик и заставляет вибрировать его мембрану, тем самым генерируя звуковую волну.

Наука
7 млн интересуются