· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Программирование звука под DOS

Посл.отвђт Сообщенiе


Дата: Июн 6, 2003 13:27:14

Кто нибудь сталкивался с вводом звука, например с микрофона в досе?
и WSS (Windows Sound System) - как его под дос программировать? Знаю что можно, но инфы нигде не видел.
Адреса, ссылки, интересует все.


Дата: Июн 6, 2003 19:51:48

Нужно искать программирование звуковых плат.
Например в книге Зубкова "Assembler для DOS, Windows и UNIX" второе издание есть пример.


Дата: Июн 9, 2003 12:40:37

В книге не то, там только вывод звука.
Нужно прочитать звук с микрофона.
И еще информация по WSS СИЛЬНО нужна.


Дата: Июн 9, 2003 13:05:29

На странице 344:
"20h прямое чтение 8-битных данных"
"24h чтение 8-битного PCM через DMA(SB)"
Пример действительно только для воспроизведения.
Но у меня нету блюдечка с голубой каемочкой :-)


Дата: Июн 10, 2003 13:51:46

Можно с любой дрогуй каемочкой... ;-)
Ладно тогда меня еще и микшер интересует!
Как его настроить для чтения звука с МИКРОФОНА?!!!
misyachniy, а вы кроме чтения этой книжечки, пробовали сами написать ввод, вот я пробовал, действитеьно получается, но пишется "тишина"...


Дата: Июн 26, 2003 12:33:02

Кргда-то, в далеком детстве, баловался я QBASIC, и вот прикол: был у меня сырец (bas:( на чтение с микрофона белеберды(секунд 5) с последующим воспроизведением. С тогдашными знаниями применить сие тайное знание не смог. Если надо, могу кинуть.


Дата: Июн 28, 2003 16:26:07

Кидаю сирец на QBASICе (да простят меня великие и могучие за такое святотатство)
переделать его под асм довольно просто, но мне лень.
------------<Хрум>---------------
DECLARE FUNCTION samplebyte% (bp%)
DECLARE SUB writedsp (byte%, bp%)
DECLARE SUB sbreset (bp%)

'QB4.5 code to record a sample from the
'Soundblaster's Mic/Line Input and then
'play it back. It does not detect for a
'Soundblaster, it's assumed that one is
'available.

'This will be too slow in the IDE - run
'as a standalone .EXE file.

'(C) Copyright 1994 by Tim Gerchmez
'This code may be freely shared and
'distributed by any means desired.

bp% = &H230 'Soundblaster Base Port, change to &h240 or whatever
'for different hardware configuration

CALL sbreset(bp%) 'Reset the Soundblaster card

CLS : PRINT
PRINT "Soundblaster Sample/Playback (direct, non-DMA)"
PRINT
INPUT "Length of Sample (1-32766)"; ls%
IF ls% < 1 OR ls% > 32766 THEN END
PRINT
PRINT "Speak into the Microphone or start input to"
PRINT "Line In jack. Press a key to begin sampling."
SLEEP
PRINT : PRINT "Now Sampling..."

REDIM smp%(1 TO ls%)

FOR t% = 1 TO ls%
smp%(t%) = samplebyte(bp%)
FOR u% = 1 TO 25: NEXT u% 'Delay a little
NEXT t%

'Now play the sample back

CALL writedsp(&HD1, bp%) 'Turn speaker on
FOR t% = 1 TO ls%
CALL writedsp(&H10, bp%)
CALL writedsp(smp%(t%), bp%)
NEXT t%
CALL writedsp(&HD3, bp%) 'Turn speaker off

FUNCTION samplebyte% (bp%)

'Samples a byte from the SB's ADC, and returns
'the resultant byte. Call with BP% = SB base port
'(normally &h220)


CALL writedsp(&H20, bp%) 'Command to sample one byte
datavail% = bp% + 14
dly:
IF INP(datavail%) AND &H80 = 0 THEN GOTO dly
datread% = bp% + 10
bt% = INP(datread%)
samplebyte% = bt%

END FUNCTION

SUB sbreset (bp%)

'Resets the Soundblaster chip -
'call with bp% = Base Port (normally &h220)

dspreset% = bp% + 6
OUT dspreset%, 1
FOR t% = 1 TO 10
a% = INP(dspreset%) 'Delay loop, give SB time to reset
NEXT t%
OUT dspreset%, 0
dspread% = bp% + 10
FOR t% = 1 TO 10
a% = INP(dspread%)
NEXT t%

END SUB

SUB writedsp (byte%, bp%)

'Writes to the Soundblaster's DSP Command Channel -
'call with bp% = SB base port (normally &h220)
'byte% = byte to write to DSP

dspcmd% = bp% + 12
FOR t% = 1 TO 8
q% = INP(dspcmd%) 'Delay to give SB time to process code
'PRINT dspmcd%

NEXT t%
OUT dspcmd%, byte%

END SUB
------------<Хрум>---------------
Желаю удачи


Дата: Июн 30, 2003 00:06:35

Большое спасибо, пока не пробовал, но обязательно попробую


Дата: Ноя 20, 2003 11:31:00

Johnikum, как дела с записью звука!
Поделись опытом, литературой...


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.050