Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.02;
Скачать: CL | DM;

Вниз

как midi связано с темпом?   Найти похожие ветки 

 
pahan07   (2005-05-16 20:42) [0]

Клавиатура копма используется как клавиатура пианино, реализуется это так:

procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
if (key = 69) and not (KeyQAlreadyPressed) then
  begin    
    form2.SpeedButton4.Down:=true;
    KeyQAlreadyPressed := True;
    midimsg:=$7f3090;
    midioutshortmsg(hmidi_out,midimsg);
  end;
end;

procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
if (key = ord(69)) then
  begin
     form2.SpeedButton4.Down:=false;
     KeyQAlreadyPressed := False;
     midimsg:=$7f3080;
     midioutshortmsg(hmidi_out,midimsg);
  end;
end;

Мне нужно выяснить как долго была нажата клавиша, для того,чтобы записать в Мемо1 ее длительность! Но длительность не в милисекундах ,а музыкальную длительность(1/2, 1/4 и т.д)
Посоветуйте, как это можно реализовать? Как состыковать это с темпом игры ,может быть метроном какой-то сделать или еще чего... Может быть через midi как-то это можно отловить...
Какие будут идеи?


 
Digitman ©   (2005-05-17 08:18) [1]

в OnKeyDown при условии not KeyQAlreadyPressed :

TimeOn := GetTickCount;

в OnKeyUp :

TimeOff := GetTickCount;

TimeDiff := TimeOff - TimeOn;

в TimeDiff - время удержания клавиши в нажатом состоянии в мс

далее - простой пересчет этого времени в муз.длительность, с учетом заданной тобой муз.размерности и времени одного муз.такта


 
pahan07   (2005-05-17 09:33) [2]

Благодарю! Спасибо за совет :-)



Страницы: 1 вся ветка

Текущий архив: 2005.10.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.062 c
3-1124356381
Sesh
2005-08-18 13:13
2005.10.02
Как сохранить картинку в BLOB


9-1117467596
HUG
2005-05-30 19:39
2005.10.02
Модель человека из 3dsMax в delphi


14-1126111597
Zacho
2005-09-07 20:46
2005.10.02
Посоветуйте, что почитать из космоопер ?


14-1126240287
CHES
2005-09-09 08:31
2005.10.02
Откуда спамеры узнают адреса?


14-1126274755
Chuvak
2005-09-09 18:05
2005.10.02
Чат для локалки