Wieso hast du eigentlich keine
Funktion, die aus BPM und Notendauer die Länge in Sekunden berechnet??
Meine Vermutung: je komplexer ein Sourcecode, umso "besser" findest du ihn.
Delphi-Quellcode:
function NotenDauer(BPM,note:double):double;
const
SECONDS_PER_MINUTE = 60;
begin
result := note * 4.0 / (BPM / SECONDS_PER_MINUTE);
end;
Weil ich annahm das es nicht notwendig ist.
Eine Procedure hab ich schon.
Und die Funktion zu durchlaufen bei möglichen 4000 Noten ? Jede einzelne Note abfragen?
Delphi-Quellcode:
procedure TMidiTracker.ChangeVelocity;
begin
if PlayingSong then
PlayingSong := False;
// Bei einem Tempo von 120 BPM ist die Länge einer 1/4 Note 500ms.
// Bei 130 BPM (120/130 BPM =) 0.92 * 500ms = 461ms.
TempoWait := ((120 / MidiTracker.Tempo) * 500) / (BeatProMaes[BeatPMSelected].Value) / SmallNoteData[SmallNDSelected].Value;
end;
EDIT:
Wobei die Note dabei eigentlich keine Rolle spielt oder?
Es geht ja um den Takt nicht um die Note.
Danke
gruss