Форум: "Media";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
ВнизЗахват звукового вывода Найти похожие ветки
← →
Ajax © (2005-10-11 13:00) [0]Привет. Мне нужно перехватывать и анализировать проигрываемый в данный момент на компьютере звук. Можно-ли это реализовать иначе чем запись с выхода микшера? И если нет, то как добится соответствия воспроизводимого звука и записываемого с выхода микшера? Потому как при записи сигнал сильно отличается, особенно в области верхних частот.
Спасибо.
← →
Digitman © (2005-10-11 13:54) [1]
> Можно-ли это реализовать иначе чем запись с выхода микшера?
пожалуй, нельзя, если конкретная карта не подразумевает и неподдерживает иных (нестандартных для WinMMediaAPI) интерфейсов и механизмов.
> как добится соответствия воспроизводимого звука и записываемого
> с выхода микшера?
следует установить одинаковые параметры каналов записи и воспроизведения (битрейт, разрешение и т.д. и т.п.)
← →
Ajax © (2005-10-12 00:20) [2]>следует установить одинаковые параметры каналов записи и воспроизведения (битрейт, разрешение и т.д. и т.п.)
Вроде бы все параметры записи правильно выставляю, но получить с выхода микшера сигнал идентичный сигналу на входе не удалось. Для опытов сгенерировал файл с чистым тоном килогерц эдак в 20 и пробовал его так и сяк записывать. Результат отвратительный. Собственно опыт можно провести даже без всякого программирования. Имея в руках какой-либо звуковой редактор, можно генерировать, воспроизводить и записывать звук одинакового формата и лицезреть получаемые различия.
← →
Digitman © (2005-10-12 08:22) [3]
> Ajax © (12.10.05 00:20) [2]
еще раз - многое (если не все) зависит от характеристик и возможностей конкретной аудиокарты.
ты о какой конкретно ведешь речь ?
← →
Ajax © (2005-10-12 21:40) [4]Ни о какой конкретно. Скажем так, о аудиокартах вообще. Чтобы моя программа могла работать на любой машине с какой-либо звукашкой и установленной Windows.
Мне тут все уши прожужжали про захват звука с помощью драйверов (уже написанных). А конкретно информацию найти не могу...
← →
Ajax © (2005-10-12 21:45) [5]Если не ошибаюсь, нечто подобное делает Total Recorder.
← →
Digitman © (2005-10-13 10:53) [6]
> Чтобы моя программа могла работать на любой машине с какой-
> либо звукашкой и установленной Windows
универсальности достигнуть не удастся : карта карте - рознь.
простой пример - карта может не поддерживать полнодуплексный режим (т.е. запись и воспроизведение одновременно), и в этом случае твоя задача попросту нерешаема, как не решит ее в этом случае и Total Recorder
или другой пример - карта может не поддерживать запись с микшера в режиме What U Hear
← →
Digitman © (2005-10-13 10:51) [7]
> Чтобы моя программа могла работать на любой машине с какой-
> либо звукашкой и установленной Windows
универсальности достигнуть не удастся : карта карте - рознь.
простой пример - карта может не поддерживать полнодуплексный режим (т.е. запись и воспроизведение одновременно), и в этом случае твоя задача попросту нерешаема, как не решит ее в этом случае и Total Recorder
или другой пример - карта может не поддерживать запись с микшера в режиме What U Hear
← →
Ajax © (2005-10-13 23:52) [8]>карта может не поддерживать полнодуплексный режим (т.е. запись и
>воспроизведение одновременно), и в этом случае твоя задача попросту
>нерешаема, как не решит ее в этом случае и Total Recorder
Не согласен. IMHO TotalRecorder делает следующее. Он устанавливает в систему свои дрова некоего виртуального звукового устройства. На это устройство направляется ввод и вывод. Оно полностью перехватывает звуковой поток, делает что хочет и отправляет на дрова реальной звукашки.
>или другой пример - карта может не поддерживать запись с микшера в
>режиме What U Hear
Насколько я понимаю, эта проблема решается аналогично первой.
Все вышеозвученное естественно IMHO и если я неправ, прошу поправить.
← →
Digitman © (2005-10-14 10:00) [9]В своем вопросе ты ведешь речь о перехвате ВСЕГО звука, которые "издает" карта.
Этот ВЕСЬ звук есть результат аппаратного микширования картой различных аудиопотоков, среди которых вполне м.б. аудиопоток, генерируемый, например, встроенным в карту MIDI-синтезатором.
Никакой TotalRecorder и никакие драйверы не смогут внедриться в аппаратный процесс синтеза, происходящий на борту карты.
Все что может TotalRecorder со своими драйверами виртуальных аудиоустройств - это стандартным для медиаподсистемы ОС образом подключиться к wave-устройствам ввода/вывода, ассоциированным с картой (см. MSMMAPI waveIn/Out-ф-ции), после чего возможности чтения/записи тех или иных источников аудиоданных определяются только возможностями встроенного в карту микшера, который собственно и определяет (в соответствии с настройками), потоки от каких источников (Wave, MIDI, Line, Aux, TAD и т.д. и т.п.) и в каких комбинациях он будет "месить".
Т.е. если, например, в системе работают две разных программы, одна из которых работает с MIDI-синтезатором карты, а другая проигрывает в это время wav-файл, и при этом в микшере записи установлен только один из этих источников, а не оба одновременно (микшер записи позволяет указать только один источник для записи), то слышать ты будешь нормальную "смесь" потоков из wav-файла и синтезированного midi-синтезатором карты потока, но записан при этом будет либо тот либо другой поток, но не оба одновременно ... ряд же карт , микшер которых поддерживает источник записи "What U Hear" (запись всего того, что ты реально слышишь в данный момент, т.е. то что тебе и требуется судя по вопросу), позволят записать именно готовую "смесь" из более чем одного источника.
А если карта не поддерживает полный дуплекс, то доступ к ее записывающим ф-циям вообще запрещен, пока осуществляется доступ к ее wave-воспроизводящим ф-циям, и наоборот .. т.е. в этом случае либо ты запишешь либо полную тишину, либо запишешь только синтезируемый midi-синтезатором карты поток, либо вообще ничего не сможешь записать (если в этот момент карта воспроизводит wave-источник)
Кр.того, соврем.карты часто реализуют на своем борту DSP-процессорные ф-ции (эквалайзер и пр.), доступ к которым со стороны MSMMAPI м.б. попросту не предусмотрен за отсутствием единого стандарта на интерфейсы таких функц.устройств в составах карт ... управление такими устр-вами, как правило, осуществляется минуя MSMMAPI (прикладная программа в таких случаях взаимодействует непосредственно с драйвером соотв.подсистемы карты) ... DSP-процессор же в зависимости от возможностей карты и микшера в ее составе может выполнять пре- и/или пост-обработку тех или иных потоков перед тем как потоки поступают "на выход", поэтому эквивалентность ампл.-част. и спектральных характеристик воспроизводимого и одновременно записываемого сигналов определяется в этом случае в т.ч. и в первую очередь тек.установками DSP-процессора.
← →
Ajax © (2005-10-17 19:48) [10]Спасибо! Я кажется даже понял :-)
Переформулирую вопрос. Как можно перехватить звук, отправляемый программами на воспроизведение? Например для Winamp можно написать соответствующий плагин, для каких-то программ тоже. Но хотелось бы отсутствия привязки к конкретному плееру. MIDI звук перехватывать не нужно.
PS: По всей видимости, ответ на этот вопрос дан уже в [1] и сделать это иначе как записью с выхода микшера нельзя :-(
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.021 c