Программа "Ambient Voices" из отдельных файлов с образцами звуков генерирует в реальном времени звуковой фон по заданному сценарию.
Для воспроизведения сценариев программа использует библиотеку 'OpenAL'. Если на Вашем компьютере не установлена эта библиотека, то программа выдаст ошибку о том, что файл OpenAL32.dll не найден. Если эта библиотека установлена неправильно, то программа выдаст ошибку 'Unable to open OpenAL device' или 'Unable to create OpenAL context', после чего будет закрыта.
Кнопки панели инструментов:
- Play - начинает воспроизведение сценария.
- Stop - прекращает воспроизведение сценария.
- Pause - приостанавливает воспроизведение сценария.
- Open - открывает файл, содержащий описание сценария (в XML-подобном формате)
- Save и 'Save As…' сохраняет описание сценария в файл.
Закладки:
Listener - содержит элементы управления для всего сценария:
- Pitch - высота звука (в процентах). Значение 100% соответствует нормальной тональности. Значения могут быть от 50 до 200%. При низких значениях этого параметра скорость воспроизведения замедляется, при высоких - ускоряется (аналог изменения скорости движения ленты в аналоговых магнитофонах или скорости вращения диска в проигрывателях виниловых дисков).
- Volume - регулятор громкости воспроизведения всего сценария (в процентах). Значения могут быть от 0 до 100%
- Fade Time - время (в секундах), за которое постепенно увеличивающий силу звук, достигнет максимальной громкости ппосле нажатия на кнопку 'Play'.
- Lib Path - полное название папки, внутри которой содержатся все файлы образцов звуков, используемые в данном сценарии. Хотя каждый сценарий может иметь свою собственную папку с образцами звуков, лучше хранить образцы в одной папке. Все файлы образцов звуков, поставляемые вместе с программой содержатся в папке 'Lib' папки 'Scenarios'.
Voices - содержит описание всех голосов сценария, представленное в виде таблицы, и элементы управления отдельными голосами. Сценарий состоит из отдельных голосов, звучащих одновременно. Каждый голос - это описание правил воспроизведения образцов звуковых файлов. Один голос может воспроизводить разные образцы файлов, но только последовательно.
- Add - добавить в сценарий новый голос
- Edit - изменить параметры голоса, выделенного в таблице
- Delete - удалить выбранный голос из сценария
- Таблица - список голосов сценария.
- Name - название голоса
- File Name - (временно не используется)
- Active - 'TRUE' - если голос участвует в формировании звыкового фона (т.е. голос включен); 'false' - если голос отключен.
- Volume - (временно не используется)
- Tone - (временно не используется)
Options - содержит описание звукового драйвера.
В левой части окно с информацией о библиотеке OpenAL, установленной на Вашем компьютере. В правой части - информация о поддерживаемых программой звуковых драйверах и кнопка 'About', показывающая окно с информацией о программе.
Sources - содержит список образцов звуков. Все файлы образцов должны находиться в папке 'LibPath'.
- Таблица файлов - содержит древовидный список образцов звуков (т.е. звуковых файлов в формате *.wav), которыми может оперировать голос. Файлы разделены на группы. Вложенность групп может быть произвольной. Каждая группа должна иметь уникальное имя.
- Add Group - добавляет группу с названием 'New group'. После добавления, вы должны назначить каждой группе уникальное имя.
- Add Sound - добавляет файл в список образцов звуков. В настоящее время поддерживаются файлы WAV в формате PCM.
- Edit Node - редактирует выделенный пункт из списка (изменяет название группы или файла). Название корневой группы 'Root' вы изменить не можете.
- Remove Node - удаляет выделенный пункт (группу или файл) из списка. Если удаляется группа, то удаляются и все принадлежащие ей подгруппы и файлы.
- Caching - (в данное время не используется).
- Weight - (в данное время не используется).
- File info - показывает информацию о выбранном файле формата PCM: частоту дискретизации, количество бит в сэмпле и количество каналов (1 - для моно и 2 - для стереозвуков).
Добавление или изменение параметров голоса происходит в диалоговом окне, которое открывается при нажатии на кнопки 'Add' или 'Edit' с панели 'Voices'.
В диалоговом окне присутствуют следующие элементы управления:
Name - название голоса
Active - если включено, то при воспроизведении сценария, этот голос будет звучать.
Ok - подтверждает изменения, сделанные для голоса и закрывает окно.
Cancel - отменяет изменения для голоса и закрывает окно.
Программа - список процедур, описывающих звучание голоса в процессе воспроизведения сценария. Для добавления новой процедуры нужно нажать кнопку 'Add Proc'. При этом в список процедур добавится новая строка 'Procedure""'. При этом процедура будет содержать две строки 'Arguments' и 'Commands'. Строка 'Arguments' содержит список аргументов процедуры. После создания новой процедуры, присутствует только один аргумент 'Name' - название процедуры (других аргументов в настоящее время быть не может). Чтобы изменить название процедуры, нужно выделить аргумент 'Name' и в появившемся справа окне указать новое название и нажать на кнопку 'Change Value'. Чтобы удалить процедуру, нужно выделить строку, содержащую заголовок процедуры и нажать на кнопку 'Drop Proc'.
Чтобы добавить в выделенную процедуру новую команду, нужно выбрать из выпадающего списка команд нужную команду и нажать на кнопку 'Add Command'. Новая команда добавляется в конец списка команд выделенной процедуры. Чтобы удалить выделенную команду, нужно нажать кнопку 'Drop Command'.
Каждая команда содержит список параметров. Числовые параметры могут быть двух видов:
- одно число
- два числа, разделённых точкой с запятой. В этом случае точное значение вычисляется случайным образом в диапазоне, заданном этими числами.
Список возможных команд:
Exec Proc - выполняет процедуру, название которой указано в параметре 'Procedure' с вероятностью, указанной в параметре 'Probability'(%). Если Вы хотите, чтобы процедура могла выполняться только в пределах разрешённого промежутка времени, задайте этот промежуток параметрами 'Start time' и 'Finish Time'. Процедура будет выполнена столько раз, сколько указано в параметре 'Times'. Если значение 'Times' равно -1, то цикл повторяется бесконечно. В параметре 'Times' можно указывать функции 'Hours12()' и 'Hours24()', которые означают целое количество часов на момент вычисления. В параметре 'Every Time' указывается периодичность, с которой выполняется цикл. В параметре 'Duration (sec)' укажите продолжительность выполнения процедуры
Select File - выбирает случайным образом файл из указанной группы образцов звуков и начинает его воспроизводить
Pause - ничего не делает в течение времени, указанного в параметре 'Time'
Change Position - изменяет пространственные координаты голоса, на указанные в параметрах 'X', 'Y' и 'Z'
Change Volume - изменяет громкость голоса на значение, указанное в параметре 'Value'
Change Tone - изменяет тональность звучания голоса на значение, указанное в параметре Value
Changing Volume - начинает постоянное фоновое изменение громкости звучания голоса в диапазоне, заданном значениями параметров 'min' и 'MAX' со скоростью, заданной значением параметра 'speed'. При достижении границы диапазона, громкость начинает изменяться в сторону противоположной границы диапазона, при этом пересчитываются значения границ диапазона. Значения 'min' и 'MAX' задаются в процентах от максимальной громкости. Значение 'speed' задаётся в 'процентах в секунду'
Changing Tone - начинает постоянное фоновое изменение тональности звучания голоса в диапазоне, заданном значениями параметров 'min' и 'MAX' со скоростью, заданной значением параметра 'speed'. При достижении границы диапазона, тональность начинает изменяться в сторону противоположной границы диапазона, при этом пересчитываются значения границ диапазона. Значения 'min' и 'MAX' задаются в процентах от максимальной тональности. Значение 'speed' задаётся в 'процентах в секунду'