Руководство пользователя
liblark.so
, liblark.dylib
или liblark.dll
Возвращает уникальный экземпляр lark.
Создаёт маршрут с именем name, который может быть одним из 26 маршрутов «RouteA», «RouteB», ..., «RouteZ». cbs — необязательный аргумент. Используется, когда что-то нужно сделать при запуске маршрута, остановке маршрута или выходе из маршрута. Примечание: не вызывайте API маршрута (например, route->SetParameter() и т. д.) в этих обратных вызовах, иначе возникнет тупик.
Удаляет маршрут вручную. Это не обязательное действие, если маршрут не используется, поскольку все ресурсы маршрутов управляются экземпляром lark, и все они будут автоматически удалены при уничтожении экземпляра lark.
Создает FIFO, который можно использовать двум потокам: один для записи данных, другой для чтения данных. В качестве примера см. larkexample3.cpp.
Удаляет FIFO вручную. Это не обязательное действие, если FIFO не используется, так как все ресурсы FIFO управляются экземпляром lark, и все они будут удалены автоматически при уничтожении экземпляра lark.
liblark.so
, liblark.dylib
или liblark.dll
Блок BlkGain может добавлять усиление к данным входных конечных точек, и усиление вступает в силу немедленно. Внутренне данные из входной конечной точки с индексом N переходят к выходной конечной точке с тем же индексом N. То есть I00 переходит к O00, I01 переходит к O01 и так далее.
C++:
lark::Parameters args{ "3", "0.707", "8", "0.5" };
route->SetParameter(blk, 1, args);
Shell:
$ lkdb setparam RouteA blkgain_0 1 3 0.707 8 0.5
Аргументы SetParameter — PARAMID 2: [TODO]
Блок BlkMixer может смешивать несколько входных конечных точек (моно на конечную точку) в одну моно выходную конечную точку. У блока также есть функция дублирования вывода. Когда подключена первая выходная конечная точка, смешанный поток будет поступать в эту выходную конечную точку. Когда подключается вторая выходная конечная точка, смешанный поток дублируется и также поступает во вторую выходную конечную точку. То же самое происходит с третьей, четвёртой и т.д. выходной конечной точкой.
Блок BlkInterleave может объединять несколько входных конечных точек (моно на конечную точку) в один чередующийся выходной сигнал.
Блок BlkDeinterleave может разделять один чередующийся входной сигнал на несколько моно выходных сигналов.
Блок BlkDelay может добавить задержку между входными конечными точками и выходными конечными точками.
GetParameter Arguments
— Нет.
Pending by No Input?
— Да.
The BlkBuffer блок способен буферизировать объём данных, поступающих из уникальной конечной точки ввода. Когда буфер заполнен, самый старый сэмпл будет перезаписан. Чтобы прочитать буферизованные данные, используйте API ioctl
с id_t id
, равным 0, и void *data
, являющимся указателем на:
struct BlkBufferPullData {
// [out] *buf — выходные данные
void *buf;
// [in] размер buf в байтах
size_t size;
// [out] метка времени выходных данных
int64_t timestamp;
};
SO Name
— «libblkbuffer.so».
Creation Arguments
— RATE FORMAT CHNUM BUFFERTIME.
SetParameter Arguments
— Нет.
GetParameter Arguments
— Нет.
Pending by No Input?
— Да.
Блок BlkStreamIn способен извлекать данные из внешнего источника через DataProducer, переданный ему при создании. Он должен быть «первым» блоком в маршруте.
SO Name
— «libblkstreamin.so».
Creation Arguments
— DATAPRODUCER.
SetParameter Arguments
— Нет.
GetParameter Arguments
— Нет.
Pending by No Input?
— Нет.
Блок BlkStreamOut способен отправлять данные во внешний источник через DataConsumer, переданный ему при создании. Он должен быть «последним» блоком в маршруте.
SO Name
— «libblkstreamout.so».
Creation Arguments
— DATACONSUMER.
SetParameter Arguments
— Нет.
GetParameter Arguments
— Нет.
Pending by No Input?
— Да.
Блок BlkAlsaPlayback способен записывать чередующиеся данные из конечной точки ввода в библиотеку ALSA. RATE, FORMAT и CHNUM определяются конечной точкой ввода, когда она связана. BlkAlsaPlayback может принимать конечные точки вывода для дублирования данных (с отметкой времени), которые он уже записал в библиотеку ALSA.
SO Name
— «libblkalsaplayback.so».
Creation Arguments
— PCMNAME (например, «default», «hw:0,0» и т. д.). Отсутствие аргумента означает, что имя pcm — «default».
SetParameter Arguments
— Нет.
GetParameter Arguments
— Нет.
Pending by No Input?
— Да.
Блок BlkAlsaCapture способен считывать чередующиеся данные из библиотеки ALSA в свою конечную точку вывода. Он должен быть «первым» блоком в маршруте. RATE, FORMAT и CHNUM определяются выходной конечной точкой, когда она связана. Этот блок зависит от libasound.so
.
SO Name
— «libblkalsacapture.so».
Creation Arguments
— PCMNAME (например, «default», «hw:0,0» и т. д.). Отсутствие аргумента означает, что имя pcm — «default».
SetParameter Arguments
— Нет.
GetParameter Arguments
— Нет.
Pending by No Input?
— N/A.
Блок BlkFileReader способен считывать данные из аудиофайла PCM и выводить их в уникальную конечную точку вывода (моно или многоканальные чередующиеся каналы). Он должен быть «первым» блоком в маршруте.
SO Name
— «libblkfilereader.so».
Creation Arguments
— FILEPATH. В частности, если FILEPATH="--", filereader будет считывать данные со стандартного ввода.
SetParameter Arguments
— Нет.
GetParameter Arguments
— Нет.
Pending by No Input?
— N/A.
Блок BlkFileWriter способен записывать монофонические или многоканальные чередующиеся данные из своей уникальной входной конечной точки в аудиофайл PCM или WAV. Он должен быть «последним» блоком в маршруте.
SO Name
— «libblkfilewriter.so».
Creation Arguments
— FILENAME. Если FILENAME="--", filewriter будет записывать аудиоданные в стандартный вывод. Если в имени файла есть суффикс ".wav", при остановке маршрута будет добавлен заголовок wav.
SetParameter Arguments
— Нет.
GetParameter Arguments
— Нет.
Pending by No Input?
— Да.
Блок BlkPassthrough пропускает свои конечные точки ввода к своим конечным точкам вывода без каких-либо изменений. Данные из конечной точки ввода с индексом N будут поступать в конечную точку вывода с тем же индексом N. То есть I00 переходит в O00, I01 переходит в O01 и так далее.
SO Name
— «libblkpassthrough.so».
Creation Arguments
— Нет.
SetParameter Arguments
— Нет.
GetParameter Arguments
— Нет.
Pending by No Input?
— Да.
... BlkSpeexResampler
Блок BlkSpeexResampler изменяет частоту дискретизации входных конечных точек на частоту дискретизации выходных конечных точек.
Все входные конечные точки должны иметь одинаковую частоту дискретизации. Частота дискретизации определяется связанной ссылкой.
Все выходные конечные точки должны иметь одинаковую частоту дискретизации. Частота дискретизации определяется связанной ссылкой.
Этот блок зависит от libspeexdsp.so
.
SO Name: «libblkspeexresampler.so».
Creation Arguments:
SetParameter Arguments: PARAMID 1: set rate; PARAMS: INRATE OUTRATE.
GetParameter Arguments: нет.
Pending by No Input?: да.
BlkSpeexPreprocessor
Блок BlkSpeexPreprocessor выполняет подавление эха и шумоподавление для своих микрофонных входных конечных точек. Индекс входных конечных точек от 0 до 15 представляет каналы микрофона (один канал на конечную точку). Индекс входных конечных точек от 16 до 31 представляет эхо-эталонные каналы (один канал на конечную точку). Чистые сигналы микрофона выводятся в конечные точки вывода (один канал на конечную точку). Этот блок зависит от libspeexdsp.so
.
SO Name: «libblkspeexpreprocessor.so».
Creation Arguments: нет.
SetParameter Arguments: нет.
GetParameter Arguments: нет.
Pending by No Input?: да.
BlkAlign
Блок BlkAlign может выравнивать входную конечную точку микрофона (моно или чередующийся многоканальный сигнал) с входной конечной точкой эхо-ссылки (моно или чередующийся многоканальный сигнал) по их временным меткам. Входная конечная точка микрофона должна быть зафиксирована под индексом 0. Входная конечная точка эхо-ссылки должна быть зафиксирована под индексом 1. Выходная конечная точка микрофона должна быть зафиксирована под индексом 0. Выходная конечная точка эхо-ссылки должна быть зафиксирована под индексом 1. Большинство алгоритмов AEC требуют, чтобы эхо-сигналы поступали раньше сигналов микрофона с постоянной задержкой. Этот блок может достичь этого, установив параметр постоянной задержки при создании.
SO Name: «libblkalign.so».
Creation Arguments: CONSTANTDELAY (в микросекундах).
SetParameter Arguments: нет.
GetParameter Arguments: нет.
Pending by No Input?: да.
BlkFormatAdapter
Блок BlkFormatAdapter может преобразовывать данные из одной конечной точки ввода в другую конечную точку вывода. Внутренне данные из конечной точки ввода с индексом N будут отправляться в конечную точку вывода с тем же индексом N. То есть I00 переходит в O00, I01 переходит в O01 и так далее.
SO Name: «libblkformatadapter.so».
Creation Arguments: нет.
SetParameter Arguments: нет.
GetParameter Arguments: нет.
Pending by No Input?: да.
BlkSoundTouch
Блок BlkSoundTouch может увеличивать/уменьшать высоту звука, ускорять/замедлять темп звука и ускорять/замедлят скорость звука. Он принимает только одну входную конечную точку с монофоническим или чередующимся плавающим каналом и одну выходную конечную точку с монофоническим или чередующимся плавающим каналом. Этот блок зависит от libSoundTouch.so
.
SO Name: «libblksoundtouch.so».
Creation Arguments: нет.
SetParameter Arguments:
GetParameter Arguments: нет.
Pending by No Input?: да.
BlkSoxEffect
В блоке BlkSoxEffect интегрировано большинство известных эффектов SoX, таких как vol, flanger, tremolo, echos, chorus, oops, equalizer, highpass, lowpass и т. д. Один экземпляр BlkSoxEffect применяет один эффект, который определяется строкой параметров, указанной при создании экземпляра. Внутренне данные из входной конечной точки с индексом N перейдут в выходную конечную точку с тем же индексом N. то есть I00 перейдёт в O00, I01 перейдёт в O01 и т.д. Измените только уровень логирования и путь дампа в реальном времени, эта конфигурация файла не изменится.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )