Главная страница
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.04 c
3-1130399776
Slider007
2005-10-27 11:56
2005.12.11
Проблема с подключением к Firebird Imbedded 1.5


4-1128586197
Duncan
2005-10-06 12:09
2005.12.11
Вызов процедуры в сервисе


14-1132587549
Yura32
2005-11-21 18:39
2005.12.11
Zvuk


2-1132754146
Dimon777
2005-11-23 16:55
2005.12.11
Как можно изменить шрифт (размер, цвет и т.п. ) главного меню?


2-1132694527
Бандерас
2005-11-23 00:22
2005.12.11
Вставка из буфера обмена только один раз ...