Приветствую форумчан!
Возникла необходимость передавать сформированный в программе поток сэмплов как звук в формате 24 бит 48/96/192к на виртуальную звуковуху.
Это вообще возможно? Я посмотрел мультимедиа библиотеку и никаких мыслей не возникло.
Использую Virtual Audio Cabel - установлено и работает.
Этот топик читают: Гость
Ответов: 91
Рейтинг: 1
|
|||
карма: 1 |
|
Ответов: 8928
Рейтинг: 823
|
|||
карма: 19 |
| ||
файлы: 1 | code_31591.txt [3.3KB] [189] |
Ответов: 91
Рейтинг: 1
|
|||
List Index out of bounds(2)
У меня альтернативная сборка. ------------ Дoбавленo в 21.58: Леонид, рад видеть на форуме. Знаю у Вас большой опыт в этой сфере. Я все же выдрал из вашей схемы необходимое и запустил. Все устройства для записи определились , включая VAC.
|
|||
карма: 1 |
|
Ответов: 8928
Рейтинг: 823
|
|||
rolin, странно, запускал и на сборке от CriDos, компилируется, зараза и видит три моих карты, две подключал через USB, виртуальной, правда нет.
Сейчас скачаю последнюю версию альтернативы и опробую ------------ Дoбавленo в 22.03: Ну и хорошо! Если видит, то и подключить можно. |
|||
карма: 19 |
|
Ответов: 91
Рейтинг: 1
|
|||
Похоже, что мне надо проигрывать свой поток через виртуалку в Cable Input(устройство воспроизведения)
и тогда другая программа сможет забрать данные из Cable Output (устройство записи). А как нумеруются устройства - в порядке их обнаружения начиная с 1 ? |
|||
карма: 1 |
|
Ответов: 8928
Рейтинг: 823
|
|||
rolin писал(а): ..в порядке их обнаружения начиная с 1 ?По всей видимости с "0", я выбираю из списка с выводом индекса и включается нужная карта. Первой в список выводится карта, которая используется в Windos-е сейчас. (Кстати по onEnum выводится МТ-поток, его можно разложить и получить кроме имени другую информацию) |
|||
карма: 19 |
|
Ответов: 91
Рейтинг: 1
|
|||
Как получить список устройств воспроизведения я не знаю. Можно пример?
Вот, набросал подходящий вариант, если вопрос с выбором устройства решится, то остается еще очень важный вопрос о разрядности данных. Можно и 16 бит использовать, но это ухудшит параметры. code_31592.txt |
|||
карма: 1 |
| ||
файлы: 1 | code_31592.txt [1.1KB] [131] |
Ответов: 8928
Рейтинг: 823
|
|||
rolin, поток создаётся вот этой функцией:
code_31594.txt А вот что пишет справка про неё: HSTREAM BASS_StreamCreate(
DWORD freq, DWORD chans, DWORD flags, STREAMPROC *proc, void *user ); Parameters freq The default sample rate. The sample rate can be changed using BASS_ChannelSetAttribute. chans The number of channels... 1 = mono, 2 = stereo, 4 = quadraphonic, 6 = 5.1, 8 = 7.1. flags Any combination of these flags. BASS_SAMPLE_8BITS Use 8-bit resolution. If neither this or the BASS_SAMPLE_FLOAT flags are specified, then the stream is 16-bit. . [color=blue] BASS_SAMPLE_FLOAT Use 32-bit floating-point sample data. See Floating-point channels for info. BASS_SAMPLE_SOFTWARE Force the stream to not use hardware mixing.[/color] . . Return value If successful, the new stream's handle is returned, else 0 is returned. Use BASS_ErrorGetCode to get the error code |
|||
карма: 19 |
| ||
файлы: 2 | rectest_float.rar [4.5KB] [97], code_31594.txt [207B] [108] |
Ответов: 91
Рейтинг: 1
|
|||
У меня справка пишет
Данные Data - Определяет одно слово (т.е. 2 байта) данных для заполнения буфера вывода а BASS_SAMPLE_FLOAT flags у меня просто отсутствует. Не такой компонент видимо. Флаг Data Typ Byte and Stream мне непонятна разница и как подавать данные - изменять на входе Data со скоростью Fsample? |
|||
карма: 1 |
|
Ответов: 8928
Рейтинг: 823
|
|||
rolin писал(а): BASS_SAMPLE_FLOAT flags у меня просто отсутствует. Не такой компонент видимо.Сейчас смотрел старые опыты по BASS-2.4, к сожалению пришлось констатировать, что 24 битного звука не получить Вот ещё одна выписка из справки по BASS bass_init.jpg rolin писал(а): Флаг Data Typ Byte and Stream мне непонятна разница и как подавать данные - изменять на входе Data со скоростью Fsample? |
|||
карма: 19 |
| ||
файлы: 1 | bass_init.jpg [64.6KB] [662] |
Ответов: 91
Рейтинг: 1
|
|||
Кое-что получается, но компонент Sound Bufer, заполняется только типом STREAM а мой код делает преобразование крайне медленно. Можно как-то по другому? При опустошении буфера программа виснет и вылетает.
code_31602.txt |
|||
карма: 1 |
| ||
файлы: 1 | code_31602.txt [1.7KB] [130] |
Ответов: 8928
Рейтинг: 823
|
|||
rolin, ну что вы, строки обрабатываются очень медленно это не для звука!
Надо обрабатывать через файловые компоненты (сначала установите DataToFileEx -- приложен, он может читать и трёхбайтные знаковые целые, свойство DataSize) code_31604.txt |
|||
карма: 19 |
| ||
файлы: 2 | datatofileex_2.rar [3.3KB] [102], code_31604.txt [5.6KB] [209] |
Ответов: 9906
Рейтинг: 351
|
|||
Леонид писал(а): он может читать и трёхбайтные знаковые целыеНадо же - позабыл |
|||
карма: 9 |
|
Ответов: 8928
Рейтинг: 823
|
|||
Galkov, [flood]постом выше нажамкал "(Спасибо Galkov-у, да продлит Аллах его годы!)", но стёр, чтобы не было всуе [/flood]
|
|||
карма: 19 |
|
Ответов: 91
Рейтинг: 1
|
|||
Компонент DataToFileEx добавил, как сделать что б он в списке светился?
Леонид, схему вашу загрузил с горем пополам, при загрузке элементов EditMultiex и Panel хиасм виснет и вылетает с ошибкой. Надписи в INfo - кракозябры, но это у меня с виндой видимо. |
|||
карма: 1 |
|