Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.083 c
2-1132907236
JTAG
2005-11-25 11:27
2005.12.11
Господа подскажите как при открытии формы сделать


2-1132659001
oleggar
2005-11-22 14:30
2005.12.11
script


2-1132592037
shamen1990
2005-11-21 19:53
2005.12.11
Хелпппппппп!


6-1118743677
SaX
2005-06-14 14:07
2005.12.11
Существуют ли компоненты для работы с протоколом Jabber?


10-1108974148
Uran
2005-02-21 11:22
2005.12.11
Экспорт из Excel в dbf