Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

Как проиграть звук определённой частоты   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
11-1113674934
Dot
2005-04-16 22:08
2005.12.11
VCL, KOLForm & uses mirror


8-1120937755
Yura32
2005-07-09 23:35
2005.12.11
OpenDialog


2-1132414523
Venum
2005-11-19 18:35
2005.12.11
TWebBrowser


14-1132476961
boriskb
2005-11-20 11:56
2005.12.11
Рекомендую сайт


6-1125481501
Nikolay Kislov
2005-08-31 13:45
2005.12.11
Как обойти конфликт между IP адресами?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский