![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение midi [D7, Win2k, WinXP]
toshbek © (2005-04-12 21:04:00)Как можно сохранить извлекаемые на мидивыход звуки в файл?
пример извлечения:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;и т.д.
Shift: TShiftState);
begin
if (key = 90) and not (z) then
begin
z := True;
midimsg:=$7f3c90;
midioutshortmsg(hmidi_out,midimsg);
end;
if (key = 88) and not (x) then
begin
x := True;
midimsg:=$7f3e91;
midioutshortmsg(hmidi_out,midimsg);
end;
заранее благодарен!
p.s. как бороться с переполнение буфера клавы?
Digitman (2005-04-13 10:10:00) [1]
> Как можно сохранить извлекаемые на мидивыход звуки в файл?
это зависит от конкретно используемого тобой MidiOut-дивайса
> как бороться с переполнение буфера клавы?
Использовать DirectInput
thaddy (2005-04-12 22:38:00) [2]The last one is easy: use a ringbuffer with size equal to the polypgony of the keyboard and store the access times. Throw away the oldest one when a new message enters and the buffer is full.
The first one:
You can find examples for midi storage on Colin Wilson's site:
http://www.wilsonc.demon.co.uk/delphi.htm
including a full midi sequencer application with all sources! (powerseqencer)
thaddy (2005-04-12 22:37:00) [3]The last one is easy: use a ringbuffer with size equal to the polypgony of the keyboard and store the access times. Throw away the oldest one when a new message enters and the buffer is full.
The first one:
You can find examples for midi storage on Colin Wilson's site:
http://www.wilsonc.demon.co.uk/delphi.htm
including a full midi sequencer application with all sources! (powerseqencer)