Einzelnen Beitrag anzeigen

Benutzerbild von arc
arc

Registriert seit: 6. Nov 2009
Ort: Elbflorenz
62 Beiträge
 
FreePascal / Lazarus
 
#1

MIDI Ereignisse präzise timen / Timer allgemein

  Alt 25. Dez 2010, 18:12
Delphi-Version: 7
Ich arbeite an einem kleinen Midi Projekt und möchte die Daten, die an den Midi Ausgang gesendet werden möglichst zeitlich korrekt senden. Ich lese die zu sendenden Midi Daten alle ein, sie liegen im Speicher, ich weiß in welcher zeitlichen Reihenfolge was gesendet werden muß.

Nun möchte ich eigentlich keine Schleife bauen die 1ms wartet und dann immer schaut ob das nächste Midi Ereignis dran ist. Als Alternative ist mir eingefallen, daß sich die Schleife mit timeout/sleep von Ereignis zu Ereignis hangelt. Also ein Ereignis senden und dann solange schlafen bis das nächste dran ist. Dann wieder senden und so weiter.

Ich befürchte aber, daß ich so einen relativen Fehler bekomme der sich immer weiter aufsummiert - der ganze Ablauf soll synchron zu anderen Geräten erfolgen und ich möchte eine möglichst geringe Abweichung vom "idealen" Timing.

Jetzt kommt aber noch etwas dazu, ich möchte auch eine Art "Mixer" einbauen, der zwei Midi Dateien ineinander überblenden kann. Das heißt je nach Interaktion des Nutzers kommen dynamisch neue Ereignisse hinzu oder verschwinden alte.

Das ganze muß also möglichst präzise und dazu noch flexibel sein. Ich bin ehrlich gesagt etwas ratlos, fast hätte ich für jedes Ereignis einen TTimer angelegt aber das kann doch auch nicht effizient sein oder?

Ich bedanke mich schonmal für alle Tips!

Geändert von arc (26. Dez 2010 um 13:37 Uhr)
  Mit Zitat antworten Zitat