Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Delphi звук

Здравствуйте програмеры!

Как воспроизвести звук определенной частоты , как
это делает windows.beep , только через звуковую карту ?

Ответить   Sun, 5 Jun 2005 21:31:01 +0600 (#379405)

 

Ответы:

Здравствуйте !


Можно воспроизводить через DirectSound.
Можно пользоваться старым интерфейсом виндов - wave
(см. функцию waveOutWrite, ну и вообще функции API
с префиксом wave). Там необходимо использовать двойную
буферизацию при воспроизведении (1 буфер воспроизводится,
в другой - инфа читается). Определяется своя Callback -
функция, которая вызывается виндами когда кончается
буфер воспроизведения.

Если надо - зашлю статью про воспроизведение звука в виндах.
Только там исходники к статье - на C.

--
С уважением, Вахтуров Виктор.

Номер выпуска : 4584
Возраст листа : 626 (дней)
Количество подписчиков : 527
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/380986
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Wed, 8 Jun 2005 16:25:37 +0400 (#380986)

 

-----Original MessageFrom: Victor V. Vakchturov [mailto:forum-moderat***@m*****.ru]
Sent: Wednesday, June 08, 2005 4:26 PM
To: comp.soft.prog.prog (3823747)

Здравствуйте !

{---------}
Delphi реализовать возможность пропищать звук различной длины и частоты

procedure SetPort(address, Value:Word);
var bValue: byte;
begin
bValue := trunc(Value and 255);
asm
mov dx, address
mov al, bValue
out dx, al
end;
end;

function GetPort(address:word):word;
var bValue: byte;
begin
asm
mov dx, address
in al, dx
mov bValue, al
end;
GetPort := bValue;
end;

procedure Sound(Freq : Word);
var B : Byte;
begin
if Freq > 18 then
begin
Freq := Word(1193181 div LongInt(Freq));
B := Byte(GetPort($61));
if (B and 3) = 0 then
begin
SetPort($61, Word(B or 3));
SetPort($43, $B6);
end;
SetPort($42, Freq);
SetPort($42, Freq shr 8);
end;
end;

{0--------}
Так можно!

Номер выпуска : 4595
Возраст листа : 626 (дней)
Количество подписчиков : 527
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/381146
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Wed, 8 Jun 2005 20:24:17 +0400 (#381146)

 

Здравствуйте, Малышев.

Вы писали 8 июня 2005 г., 22:24:17:

if Freq > 18 then

А на ХР сработает? И Как продолжительность установить?
Может API поможет?

Ответить   Wed, 8 Jun 2005 23:24:50 +0600 (#381191)

 

Приветствую

А вобще самый лучший вариант это RoarSound (на Delphi)
www.nudl.net/tmp/roarsound_v1_1.zip [100 kb] иходники предельно прозрачные и
очень легко читаются. Бибилиотека абсолютно бесплатная, черезвычайно лёгкая
в использовании(не разобраться в ней просто невозможно) и всё на открытых
кодах - 3d звук. Рекомендую всем.

С уважением, Lakmus
ICQ: 241479153
http://lakmus.nudl.net

Номер выпуска : 4618
Возраст листа : 628 (дней)
Количество подписчиков : 527
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/382036
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Thu, 9 Jun 2005 17:15:24 +0400 (#382036)

 

Здравствуйте, Lakmus.

Вы писали 9 июня 2005 г., 19:15:24:

и

Да но это не позволяет воспроизвести просто звук определенной частоты,
только файл, или я ошибаюсь? Это придется формировать файл звука, а
именно этого хотелось бы избежать.

Ответить   Mon, 13 Jun 2005 23:34:30 +0600 (#384772)

 

Приветствую

В принципе, этот движок прекрасная основа для собственных модификаций т.ч.
подчитав M$ DirectX SDK, прикрутить туда такую фишку, думаю, будет несложно.

С уважением, Lakmus
ICQ: 241479153
http://lakmus.nudl.net

Номер выпуска : 4644
Возраст листа : 633 (дней)
Количество подписчиков : 528
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/385030
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Wed, 15 Jun 2005 05:48:22 +0400 (#385030)

 

Хаю ду ю ду monah?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

Есть компонент - TToneGen
www.alan-warriner.co.uk - если еще проэкт жив.
Но он по-моему тяжеловат для таких целей.
Компонент с исходниками - я по нему полазил, выяснил что там wav-ник
создается и потом проигрывается.

PS: 138 кб, если надо могу на мыло кинуть.

Ответить   Fri, 17 Jun 2005 00:26:25 +0500 (#386169)

 

Здравствуйте, Александр.

Вы писали 17 июня 2005 г., 1:26:25:

WAV я и сам сваяю :)

Ответить   Thu, 16 Jun 2005 00:58:25 +0600 (#386612)

 

Привет monah,

Вы мне письмо написали 5 июня 2005 г. (воскресенье), а я Вам отвечу вот что:

В Pascal'е была функция Sound(Частота: Word);

Афоризм напоследок: Одиночество - это когда ты всегда знаешь, где лежат твои
вещи.
Winamp глаголит: The Beatles - All You Need Is Love
8 июня 2005 г. 19:01:33

Просто студент
Eugene mailto:rav***@o*****.ru

Номер выпуска : 4588
Возраст листа : 626 (дней)
Количество подписчиков : 527
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/381095
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Wed, 8 Jun 2005 19:03:38 +0400 (#381095)

 

Здравствуйте, Eugene.

Вы писали 8 июня 2005 г., 21:03:38:

Ответить   Wed, 8 Jun 2005 23:22:41 +0600 (#381190)