IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Звуки в дельфи
сообщение
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Как реализовать на дельфе проигрыш звука заданной частоты? Я вот через писиспикер попробовал, таким вот модулем (текст взял с какого-то сайта), но он вылетает с ошибкой привеллегед инструктион.


Прикрепленные файлы
Прикрепленный файл  UPCSpeaker.pas ( 395 байт ) Кол-во скачиваний: 197


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Посмотри "DRKB -> Работа с графикой и мультимедиа -> Работа со звуком -> Как проиграть ноту", там показывается вариант с использованием Windows.Beep
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Не , виндовз.бип мне не подходит, так как мне надо проигрывание тона на фоне других процессов, как процедура саунд в паскале. А лучше вообще не писиспикером а чем-нибудь менее противным.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, тогда тебе прямая дорога к использованию MIDI Functions
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Э, я надеюсь, там можно обойтись трёмя процедурами, или 20 строк подключения и проверок?
Что-то сложное вроде на вид. Неужели такое элементарное действие, как вывод звука, в дельфе делается на порядок сложнее чем в паскале?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
я надеюсь, там можно обойтись трёмя процедурами, или 20 строк подключения и проверок?
Использовал в проекте на чистом API - инициализация в 2 строки + 2 основных процедуры (MidiNoteOff, MidiNoteOn) вида:

function MidiOutMessage(hMidi: HMIDIOUT;  iStatus: integer;  iChannel: integer;
iData1: integer; iData2: integer): DWORD;
var
dwMessage: DWORD;
begin
dwMessage:= iStatus or iChannel or (iData1 shl 8) or (LongInt(iData2) Shl 16);
result := midiOutShortMsg(hMidi,dwMessage);
end;


function MidiNoteOff(hMidi: HMIDIOUT; iChannel: integer; iOct: integer;
iNote: integer; iVel: integer): DWORD;
begin
result := MidiOutMessage(hMidi,$080,iChannel,12*iOct+iNote,iVel);
end;
function MidiNoteOn(hMidi: HMIDIOUT; iChannel: integer; iOct: integer;
iNote: integer; iVel: integer): DWORD;
begin
result := MidiOutMessage(hMidi,$090,iChannel,12*iOct+iNote,iVel);
end;

использование совершенно прозрачно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Использование не прозрачно, что писать в ивел и канал? А подключение как выглядит? И это какие модули подключать надо (или где качать), чтоб это всё компилировалось, такой вот глупый вопрос?
Вопрос про модули снимаю, модуль ммсистем нашёл.

Сообщение отредактировано: TarasBer -


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Кажись разобрался с мидями, с помощью вот этой прекрасной странички: http://promidi.by.ru/delphi_midi/. Всё, спасибо.

Сообщение отредактировано: TarasBer -


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 6.12.2021 9:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name