Вывод звука в различные каналы
От: MEB  
Дата: 30.03.06 05:32
Оценка:
Здраствуйте. Помогите мне вот с какой проблемой: необходимо вывести два звуковых файла (wav), но в разные каналы:один в левый канал, а другой в правый. Звуковой файл может быть при этом и стерео. Если можно, то хотелось бы по-подробнее. На худой конец можно подкинуть источноки, где освещены сходные вопросы. Заранее всем спасибо за внимание.
Re: Вывод звука в различные каналы
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 30.03.06 07:45
Оценка:
Здравствуйте, MEB, Вы писали:

MEB>необходимо вывести два звуковых файла (wav), но в разные каналы:один в левый канал, а другой в правый.


Открываете устройство вывода в режиме стерео, отсчеты левого канала берете из первого файла, отсчеты правого канала — из второго файла.

MEB>Звуковой файл может быть при этом и стерео.


Тогда его левые/правые отсчеты нужно предварительно просуммировать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Вывод звука в различные каналы
От: Аноним  
Дата: 30.03.06 10:15
Оценка:
Здравствуйте, MEB, Вы писали:

MEB>Здраствуйте. Помогите мне вот с какой проблемой: необходимо вывести два звуковых файла (wav), но в разные каналы:один в левый канал, а другой в правый. Звуковой файл может быть при этом и стерео. Если можно, то хотелось бы по-подробнее. На худой конец можно подкинуть источноки, где освещены сходные вопросы. Заранее всем спасибо за внимание.


Пользовать DirectSound. Создать два стерео буфера (DirectSoundBuffer), для этих двух файлов, выбрать канал звуковухи (если файл моно, то сэмплы писать через 1, т.к. в буфере чередуются левый-правый и можно ещё сделать SetPane(), либо пользовать WAVE_FORMAT_EXTENSIBLE и задавать маску в dwChannelMask). В этом случае за смешивание уже DS будет отвечать.
Re[2]: Вывод звука в различные каналы
От: Vzhyk  
Дата: 30.03.06 13:18
Оценка:
Евгений Музыченко wrote:
>
> MEB>Звуковой файл может быть при этом и стерео.
>
> Тогда его левые/правые отсчеты нужно предварительно просуммировать.

Только не забыть, что при этом возможно переполнение.
Posted via RSDN NNTP Server 2.0
Re[2]: Вывод звука в различные каналы
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 30.03.06 13:57
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Пользовать DirectSound. Создать два стерео буфера (DirectSoundBuffer), для этих двух файлов, выбрать канал звуковухи (если файл моно, то сэмплы писать через 1, т.к. в буфере чередуются левый-правый и можно ещё сделать SetPane()


Только в том случае, когда фазовые соотношения сигналов не важны.

А>либо пользовать WAVE_FORMAT_EXTENSIBLE и задавать маску в dwChannelMask)


Не выйдет — далеко не все звуковые адаптеры умеют направлять моно-поток в нужный канал, а драйверам, соответственно, лениво делать промежуточные преобразования. Одни драйверы возвращают ошибку на такие хитрые форматы, а другие просто игнорируют маску.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Вывод звука в различные каналы
От: Аноним  
Дата: 31.03.06 01:20
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Не выйдет — далеко не все звуковые адаптеры умеют направлять моно-поток в нужный канал, а драйверам, соответственно, лениво делать промежуточные преобразования. Одни драйверы возвращают ошибку на такие хитрые форматы, а другие просто игнорируют маску.


Но все поддерживают стерео — значит создавать стерео (FRONT_LEFT|FRONT_RIGHT) и нули писать в ненужный канал.
Re[4]: Вывод звука в различные каналы
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 31.03.06 05:35
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Но все поддерживают стерео — значит создавать стерео (FRONT_LEFT|FRONT_RIGHT) и нули писать в ненужный канал.


Да, если нужна полная совместимость, то только так.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.