WebSound.ru Home
    Главная | Комментарии | Архив выпусков | Форум и чат | AudioTag.info | Музоблог | reTracked | Авторский блог  



  Поиск:

Поиск по WebSound.Ru:
Поиск в Интернете:
Powered by




  Партнеры, реклама:




Audio watermarking
TrustedAudio.com



 

EXE-синтез - "как?"

Александр Шатковский прислал мне вот, такое письмо, касающееся прошлых публикаций на тему "EXE-музыка":

Здравствуйте, Александр!
Спасибо огромное за Ваш журнал!
Не могли бы Вы подробнее осветить вопрос об .exe музыке или поделиться ссылками на такую информацию. В частности меня интересует вопрос можно ли научиться кодировать так музыку не будучи программистом?
С уважением, Александр Шатковский г. Киев

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

Нет, не будучи программистом писать такую музыку не получится. Все дело даже не в музыке, а дело в реализации. Что представляет собой "EXE-музыкальный-модуль" (подобный тем, которые были представлены в прошлом выпуске)? Это программа, написанная на языке низкого уровня, т.е. на C или ассемблере, чаще всего, совместно на том, и на другом. Эта программа представляет собой код, организующий синтез и воспроизведение звуков (музыки). То есть, это набор функций, которые, грубо говоря:
* инициализируют аппаратные порты звуковой карты (тем или иным способом - напрямую или через управляющие интерфейсы ОС),
* выделяют память для хранения синтезируемых звуков,
* собственно, синтезируют звуки с определенными параметрами (естественно, чем сложнее звуки, тем сложнее алгоритмы их синтезирующие, то есть, тем сложнее программа),
* воспроизводят синтезированные звуки в заданной последовательности (то есть, собственно, воспроизводят музыку).

Важно понять, что такая программа - это, по сути, синтезатор и музыкальная партитура "в одном флаконе". Разработчик такой программы сначала создает "продвинутый" синтезатор, умеющий по команде воспроизводить звуки той или иной сложности, различных тональностей и тембров, а затем задействует этот синтезатор (в виде набора функций) в своей управляющей программе, содержащей "партитуру" - набор (последовательность) команд синтезатору, создающий у слушателя ощущение звучания музыки.

Короче говоря, каждая такая программа-музыка - это полноценная программа на каком-то языке, которая вместо того, чтобы делать что-то на экране (как например, игры или тот же Microsoft Word) - создает звучание в режиме реального времени.

Почему такие exe-программы имеют совсем небольшой размер, и при этом играют музыку десятками минут? Ну, если вам показалось понятным мое объяснение об их структурах, то станет ясным объяснение и на этот вопрос. А ответ таков: потому что эти программы не хранят внутри себя никаких оцифрованных данных, то есть не хранят оцифрованные звуки музыкальных инструментов, а лишь синтезируют их (с тем или иным успехом). Крайний пример противоположности - аудио компакт диск. Там хранится оцифрованное звучание в виде набора чисел и нет никакой программы. Чтобы воспроизвести звук с КД нужно просто считать оттуда бит-поток и подать его на вход аудио карты (грубо говоря). В программах, о которых идет речь, все совсем иначе: нет никаких оцифрованных данных; чтобы что-то подать на вход звуковой карты для воспроизведения, это что-то нужно сначала синтезировать в памяти компьютера, и только потом подавать на воспроизведение. Естественно, что качество звучания напрямую зависит от сложности реализованного синтеза, то есть от развитости алгоритмов, синтезирующих звуки. Чем более развитые алгоритмы синтеза используются, тем, конечно, сложнее и больше подпрограмма синтеза, но при этом, тем более качественные, более реалистичные звуки они способна синтезировать.

Не знаю, на сколько ясно мне удалось пояснить смысл "EXE-музыкальный-модулей", но, надеюсь, хотя бы приблизительно мне удалось раскрыть свою мысль. Надеюсь, Александр, что я ответил на Ваш вопрос.



 

Читать весь 141-й номер 
Перейти в архив выпусков WebSound.Ru 



Ниже располагаются комментарии к этой заметке

Пожалуйста, обратите внимание! Если вы хотите что-то сообщить автору WebSound.Ru, лучше сделать это не здесь, а направить ваше сообщение по e-mail. Пожалуйста, составляйте свои комментарии в вежливой форме. Не засоряйте сайт бессодержательными и невежливыми сообщениями.


comments powered by Disqus