Текущий архив: 2005.12.11;
Скачать: CL | DM;
ВнизКак проиграть звук определённой частоты Найти похожие ветки
← →
komsomolec © (2005-11-26 19:37) [0]Подскажите, пожалуйста, как проиграть звук определённой частоты используя звуковую карту?
Я пробовал использовать SetVoiceSound, но компилятору она не понравилась...
← →
begin...end © (2005-11-26 19:41) [1]Windows.Beep
← →
Antonn © (2005-11-26 19:43) [2]
procedure Beeper(Frequency, Duration: Integer);
asm
push edx
push eax
mov eax, Win32Platform
cmp eax, VER_PLATFORM_WIN32_NT
jne @@9X
call Windows.Beep
ret
@@9X:
pop eax
pop edx
push ebx
push edx
mov bx, ax
mov ax, 34DDh
mov dx, 0012h
cmp dx, bx
jnc @@2
div bx
mov bx, ax
in al, 61h
test al, 3
jnz @@1
or al, 3
out 61h, al
mov al, 0B6h
out 43h, al
@@1:
mov al, bl
out 42h, al
mov al, bh
out 42h, al
call Windows.Sleep
in al, 61h
and al, 0FCh
out 61h, al
jmp @@3
@@2:
pop edx
@@3:
pop ebx
end;
← →
begin...end © (2005-11-26 19:48) [3]> Antonn © (26.11.05 19:43) [2]
Ну зачем так страшно, вопрос же про XP :-)
> mov eax, Win32Platform
> cmp eax, VER_PLATFORM_WIN32_NT
Это сейчас так модно? :-)
cmp Win32Platform, VER_PLATFORM_WIN32_NT
← →
Antonn © (2005-11-26 19:49) [4]begin...end © (26.11.05 19:48) [3]
Ну зачем так страшно, вопрос же про XP :-)
ну нравятся мне коды, реализованые ассемблерными вставками:)
> Это сейчас так модно? :-)
больше строчек - больше зарплата:))
← →
Antonn © (2005-11-26 19:53) [5]кстати, странное дело, вставляю биип на событие кнопки - не би-бикает... я потому этот код прям так и использую, потому что виндозский бип не работает:(
← →
begin...end © (2005-11-26 20:00) [6]> Antonn © (26.11.05 19:53) [5]
Система какая? И какой Beep -- из Windows или из SysUtils?
← →
komsomolec © (2005-11-27 18:04) [7]Спасибо, только вот ответ реально страшноватый, как для начинающего :-)
← →
komsomolec © (2005-11-27 18:09) [8]Кстати, ка правильно использовать SetVoiceSound?
← →
Antonn © (2005-11-27 18:32) [9]begin...end © (26.11.05 20:00) [6]
WinXp pro, D7
а биип который по умолчанию. ну просто beep;
посмотрю, чем отличаются...
← →
komsomolec © (2005-11-27 20:51) [10]Не-е-е, парни. Мне надо через звуковую карту и колонки, а не из System Speaker. Ваш Beeper выдаёт звук именно из System Speaker. Помогите, чем могете.
← →
упаковщик (2005-11-27 22:54) [11]Ну можешь записать в ресурс звук определённой частоты, а потом с помощью API функции "PlaySound" воспроизвести. Даже можешь в ресурс записать длительность звучания с запасом, а потом с помощью таймера и PlaySound воспроизвести с необходимой длительностью. Между прочим, записанные в ресурс звуки гитары, а потом воспроизведёные через таймер звучат куда лучше, чем сгенерированные миди звуковой картой:)
Если это не устраивает, то смотри справку по функциям API модуля MMSystem или установи компонент MidiGen, который может очень многое и с помощью которого, можно легко изучить функции API для midi.
← →
programania © (2005-11-28 01:27) [12]>как проиграть звук определённой частоты используя звуковую карту?
Звук одной частоты слушать утомительно: в ушах начинает звенеть
Поэтому лучше музыкальный автомат - его можно выдержать дольше
http://programania.com/syn.zip 8кб
Играет через колонки сам или клавишами 0..9-= для delphi5 XP,
а лишнее выкинуть нетрудно, хотя интереснее добавить
Страницы: 1 вся ветка
Текущий архив: 2005.12.11;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.089 c