суббота, 7 августа 2010 г.

Микширование. Описание API вызова библиотеки MixerWAV.DLL

Данная библиотека (далее DLL, демо в комплекте) предначена для микширования (наложения) двух одноканальных файлов формата WAV PCM в один трек (WAV-файл) c возможностью изменения скорости/тональности (битрейта) и суммарной громкости трека.







Cистемные требования и зависимости
  1. ОС: Windows
  2. Форматы файлов: WAV PCM, частоты дискретизации файлов одинаковы..
Для использования DLL в своих проектах соблюдайте соглашение об StdCall-вызовах. Тип соглашения о вызове объявляется после прототипа функции, будь то объявление функционального типа или же объявление функции.

Таблица расшифровок параметров экспортируемой функции fftio() библиотеки 'MixerWAV.DLL':


Пример динамического подключения (Delphi 6/7/2006/2009/2010/TDL/XE5-7):
var

    mix:function(inwav1,    // путь к 1-му WAV PCM
                 inwav2,    // путь к 2-му WAV PCM
                 outwav:    // путь к смикшированному WAV PCM
                 pansichar;
                 rate,      // частота дискр. (эффекты, скажем ускорить :))
                 volume:    // громкость cуммарного трека, можно усилить на 50% - задайте 150
                 integer): pansichar; stdcall; LibHandle: THandle;


function LinkProc(h: thandle; ProcName: string):Pointer;
begin
 result:= GetProcAddress(h, PChar(ProcName))
end;

{ инициализация }
begin
 // подключаем DLL
 LibHandle:= LoadLibrary('MixerWAV.dll');
 if LibHandle<>0 then
  fftio:= LinkProc(LibHandle, 'mix');
...

{ деинициализация }

begin
 if LibHandle <> 0 then
  FreeLibrary(LibHandle)
...

{ пример вызова }

begin
 mix('name1.wav',
     'name2.wav',
     'out.wav',
     44100,
     150)
...
ПОРЯДОК ИСПОЛЬЗОВАНИЯ и ОГРАНИЧЕНИЯ
  1. При задании пути-имени микшированного (выходного) файла параметр 'outwav' может быть пустым.
  2. Параметр 'rate' позволяет увеличить или уменьшить скорость (битрейт) трека.
  3. Параметр 'volume' позволяет задать максимум выходного уровеня трека (следите за ограничением сигнала).
забрать добро себе

Комментариев нет:

Отправить комментарий

В комментариях уважайте собеседника, внимательно читайте посты и не додумывайте. Просьбы и предложения из разряда: «можно ваш Skype/Viber/телефон», «напишите мне в vk/FB», а также другие им подобные — игнорируются. Выход новых версий ПО, внешняя ссылка, переставшая работать с течением времени и т.п. не является основанием для претензий. Желающие спокойно подискутировать и высказаться — Welcome. Желающие спонсировать блог — Donate. Нарушение этих простых правил ведет к бану и удалению комментариев без предупреждения.