Програмирование звуковой карти
Я начал заниматься программированием звуковой карты для использования ее в качестве АЦП порекомендуйте литературу и какой язык программирования лучше использовать.
Из летературы MSDN. А язык тот который ты лучше всего знаешь.
Операционная система Windows Xp. Я изучал Delphi, С, Fortran, однако насколько мне известно в Windows Xp нужно иметь соответствующие библиотеки через которые и работать, но мне интересно как это все можно сделать в Windows 98 поскольку там есть прямой доступ к портам. И возможно ли в Windows 98 работать со звуковой картой как с lpt.
Если можно посоветуйте авторов желательно на русском языке. Заранее благодарю.
Если честно, сомневаюсь, что MSDN тут поможет (может, DDK), да и ОС тут мало что решает - тут важнее аппаратная платформа.
Я начинающий в этой отрасли можно, конкретнее что именно важно в аппаратной части
А литературу российских специалистов можете подсказать
Если знаете отечественные сайты,які содержат статьи по этой тематике напишите пожалуйста
Вообщем возможно использовать DirectX (DirectSound). Ну вообщем это самый простой способ для взаимодействия с аудио картой. Если тебя интересует написание драйвера, то тогда этот вариант не подойдет. Использовать DirectX можно почти на любом языке, к примеру в свое время я писал это на С. Так что поищи в гугле. Из книг могу посоветовать А.Ламот "Программирование игр для Виндовс" или "Программирование трехмерных игр для Виндовс". Думаю что должны быть электронные варианты книг. Про работу со звуком и со звуковуй картой написано там не очень много, в примерах приводитсятолько использование 8 битного звука, но для общего понимания понятно и доступно.
Самой книги Майера мне не удалось найти, ибо по DirectX несколько нашел и интересно или возможно подойти к решению этого вопроса из той стороны который сделал этот автор, здесь приведенный листинг его примера
uses crt, graph;
Const n=1000;
var x: array [0..N] integer;
Gd, Gm, и, z: integer;
BEGIN
Gd:=Detect; InitGraph(Gd,Gm, 'c:\bp\bgi');
if graphResult <> grOk then Halt(1);
port[$226]:=1; delay(10); port[$226]:=0;
Repeat
Repeat port[$22C]:=$20; until port[$22A]-127>10;
cleardevice;
for и:=1 to n do
begin port[$22C]:=$20; x:=port[$22A]-127;
сіrcle(і,240-x,2);
line(і,240-x,i-1,240-z); z:=x;
delay(5);
end;
until KeyPressed;
END.
http://fmod.org/
кросплатформенная библиотека для работы со звуком и эффектами
могу посоветовать библиотеку fmod -
кросплатформенная библиотека для работы со звуком и эффектами
Что собой представляет эта библиотека ? Мне в сущности просто нужно получить двоичные данные входного напряжения на звуковой карточке. Литинг программы Майера являются правильным путем чтобы получить двоичные данные входного напряжения? Нужно ли использовать DirectX чтобы эти данные получить ? Если вы знаете о назначении этих адресов звуковой карты сообщите в форуме ссилку или сбросьте на электронную [email]maksum.student@rambler.ru[/email]
http://www.stud.fh-hannover.de/~heineman/extern/ctsbhwpg.pdf
http://www.inversereality.org/files/mainpage.pdf
Но под WinNT в порты писать не удастся, поэтому, как-то так: http://rsdn.ru/article/multimedia/winsnd.xml. Да, АЦП из звуковой карты - не очень удачное решение, т.к. у нее емкостная развязка на входе, частота дискретизации довольно низкая, etc.
http://www.inversereality.org/files/mainpage.pdf
Но под WinNT в порты писать не удастся, поэтому, как-то так: http://rsdn.ru/article/multimedia/winsnd.xml. Да, АЦП из звуковой карты - не очень удачное решение, т.к. у нее емкостная развязка на входе, частота дискретизации довольно низкая, etc.
я закорочу их. То что звуковая карта плохая в качестве АЦП мне известно однако, поскольку я учусь на прикладной физике, а для не очень точных и длинных во времени экспериментов мне подойдет звуковая карта. В статьях я встречал что двоичные коды превращают в напряжение используя линейную зависимость максимальное входное напряжение делят на количество дискретных сигналов которые может выдать АЦП, однако мне кажется что это не очень правильно. Если вы знаете более более точные способы превращения, или книги по этой тематике желательно на российской сообщите пожалуйста.
Хм... Ну, если хочешь серьезно подойти с вопросу, посмотри какие чипы стоят на карточке. На старых картах АЦП и усилители вынесены отдельными микросхемами - смотри в инете даташит на них. На современных карточках стоит DSP, у него АЦП встроенный, смотри, соответственно, даташит на этот DSP.