Hallo habe mit meinem 2Ghz PC von Siemens, sound on Board,mit üblicher Ausstattung, Windows, mit einem allg. üblichen Musik und sequencer Programm 25 ms Zeitverzögerung zwischen Tastendruck und hörbarem Ton. Bei einem Systemtakt von 2000 Mhz der main cpu und einem soundprozessor in der Soundkarte kann ich nicht verstehen , was da so lange dauert. Mididaten abzufragen und den Ton zu erzeugen ist ja nun wirklich nicht so ein großes Ding. Da kann ja jede poplige SPS mehr. Oder ist die Software einfach nur zu ungünstig geschrieben? Kann jemand sagen wo es genau klemmt? Ich suche eine Erklärung aus Sicht der Prozessor und Code-Programmierer. Die Sache mit ASIO- Treibern und Co wurde in den Musikerforen schon genügend diskutiert. LG Andre
Was für ein "2GHz PC von Siemens"? Prozessor, Arbeitsspeicher, welches Windows? Was für ein Programm? Was für ein Gerät mit Tasten? Wie an den PC angeschlossen, klassisches serielles Midi (mit DIN-Steckern) oder Midi über USB? Was läuft sonst noch so auf dem Windows?
Womit wurden die "25 ms Zeitverzögerung" gemessen? Könnte es sein, daß es in Wirklichkeit nur 24ms sind?
Andre D. schrieb: > Da kann ja jede poplige SPS mehr. Dass ein Echtzeitsystem das kann ist auch kein Wunder, ein normaler Allzweckcomputer ist aber ohne Weiteres keines. Zur effizienteren Verarbeitung werden die Daten gepuffert, je größer der Puffer, desto effizienter (geringere CPU-Auslastung) und desto höher die Latenz. Auf meinem System (Linux, Pulseaudio) beträgt die Latenz laut Software 33,3 ms, ist mir noch nie störend aufgefallen, aber ich habe auch keine Instrumente o. Ä. dran hängen.
Die hohe Latenz kommt von den Buffern, in die Windows (das u.a. KEIN Echtzeitbetriebssystem ist, ebenso wie Linux, da gibt es aber m.W. entsprechende Echtzeitderivate) die berechneten Audiodaten schreibt, diese sind eben entsprechend groß ausgelegt, damit nicht so viele Unterbrechungen für eine reibungslose Soundwiedergabe nötig sind. bei 50ms Latenz z.B muss Windows "nur" 20mal pro Sekunde die Audiodaten "vorberechnen.". Bei passiven Musikhören stört das nicht, dem Hörer ist es egal, wenn die Musik nach drücken auf Start mit 50ms Verzögerung einsetzt. Anders ist beim aktiven Musizieren. Wenn du dort niedrigere Latenz benötigst, dann muss dieser Buffer entsprechend verkleinert und die "Berechnungsrate" erhöht werden. Bei einer Latenz von z.B. nur 1ms muss Windows dann 1000mal pro Sekunde die Audiodaten neu berechnen, und dass kann tatsächlich problematisch in Form von Aussetzern werden, wenn die Daten nicht schnell genug berechnet werden können. Bei solch einen gewünschten Echtzeitbetrieb ist es immer noch besser, dafür spezialisierte Hardware einzusetzen, z.B. eine Musik Workstation, Synthesizer oder auch ein Entertainer- Keyboard. Aus diesem Grund benutze ich auch keine virtuellen Softwaresynthesizer unter Windows, sondern einen echten Korg Kronos. Ich benutze ebenso einen analogen kabelgebundenen Kopfhörer, da ich mal einen digitalen drahtlosen Kopfhörer testweise benutzt hatte und schon dort trat eine störende Latenz auf (Klaviertaste gedrückt, Ton kam später).
:
Bearbeitet durch User
> benutze ich auch keine virtuellen Softwaresynthesizer
Tja, damit lässt du dir das Beste entgehen.
Zum Einspielen kann man sicher besser MIDI in HW nehmen.
Aber für den finalen Mix.
So ein M-Tron und ein Addictive Keys und eine B4 und und und ...
(Liste nach belieben fortsetzen)
Einen MS10 hab ich übrigens auch. Ganz ohne MIDI.
Andre D. schrieb: > Oder ist die Software einfach nur zu ungünstig geschrieben? Was haben wir denn da für eine Software? > > Kann jemand sagen wo es genau klemmt? Mit den dünnen Informationen vermutlich nicht. Ich nehme mal an, das es ein Fujitsu-Siemens ist und ne alte Kiste mit 2GHz. Aber du hast ja weder dein Midi Interface noch die Software beschrieben. Echte Audiokarten kann man einstellen. Ich habe hier 2 Terratec Phase 88 in einem Cubase 3 System mit 4GHz P4-HT (auch 'ne alte CPU) und XP. Die Karten sind gekoppelt (für 16 Kanäle) und auf kleinen Puffer eingestellt. Latenz etwa 1-2ms. Mehr ist beim Einspielen getrennter Spuren auch kaum akzeptabel, ein Gitarrist wird von 2ms schon irritiert, wenn man ihm sein Signal übers System zurückspielt. Die Latenz auf den beiden Midi Interfaces der Karten ist unter 1ms.
:
Bearbeitet durch User
Andre D. schrieb: > Bei einem Systemtakt von 2000 Mhz der main cpu und einem soundprozessor > in der Soundkarte kann ich nicht verstehen , was da so lange dauert. Mit Windows Core Audio sind IIRC einstellige ms Zeiten möglich. Dieses API wird aber bei älteren und einfacheren Sachen nicht verwendet. Soundprozessoren sind in modernen Soundchips nicht mehr üblich, jedenfalls nicht auf on-Motherboard Chips. Windows 10 kann angeblich bis 1,3ms runter: https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/low-latency-audio Andre D. schrieb: > Ich suche eine Erklärung aus Sicht der Prozessor und Code-Programmierer. Der Anwender mag keine lärmenden Lüfter. Mit längeren Puffern kann die CPU tiefer schlafen bevor sie sich um neues Audio kümmern muss.
Wieso reden hier alle von der Audiolatenz wenn es um Midi geht. Irgendwem scheint der Unterschied nicht klar zu sein. Matthias S. schrieb: > Latenz etwa 1-2ms. Mehr ist beim Einspielen getrennter > Spuren auch kaum akzeptabel Zwischendurch bitte auch mal etwas Rechnen. Midi in Hardware läuft mit 31,25KBaud. 1 Byte braucht deshalb schon 0,32ms. 1 mal Note On mit 3 Byte sind dann schon 1ms. Einmal kurz in die Tasten greifen und 4 Töne gleichzeitig sind dann schon 8ms die die Bits allein durch die serielle Schnittstelle brauchen. Vorrausgesetzt es geht rein und raus nur über Midi. Und dann kommen noch die weiteren Latenzen hinzu wie USB hin und wieder zurück. Und dann hoffen wir mal dass keiner an den Wheel-Rädern dreht, die fluten das ganze auch ordentlich mit Daten durch den Flaschenhals. Vor dem Hintergrund sind Softwaresynties teilweise besser, weil wir da zwar auch eine Verzögerung haben, die ist aber auf der Audioseite ziemlich konstant und unabhängig von den gespielten Tasten. Die halbwegs moderner Rechner sind heute in der Lage ein paar Softwaresynthies ohne relevante zusätzliche Verzögerung zu berechnen. Der E. schrieb: > Bei solch einen gewünschten Echtzeitbetrieb ist es immer noch besser, > dafür spezialisierte Hardware einzusetzen, z.B. eine Musik Workstation, > Synthesizer oder auch ein Entertainer- Keyboard. Mit der Aussage wäre ich auch vorsichtig. Solange es per seriellem Midi in die Geräte rein und wieder raus geht sind die Bedingungen die gleichen. Viele Keyboards haben intern eine Tonerzeugung die mit serielen Midi am Eingang arbeitet und eine Tastatur die auch nur seriell sendet. Ob dass dann intern oder extern Verkabelt wird spielt keine Rolle. Da müssten wir schon wirklich über die konkreten Geräte reden.
Feinschmecker schrieb: > Einen MS10 hab ich übrigens auch. Ganz ohne MIDI. Im Kronos sind neun Sound Engines vorhanden: http://www.korg.com/us/products/synthesizers/kronos_x/page_1.php
Der E. schrieb: > Bei einer Latenz von z.B. nur 1ms muss > Windows dann 1000mal pro Sekunde die Audiodaten neu berechnen, Nein, wieso? Der Rechenaufwand zur Erzeugung von Daten hat doch nichts mit der Verzögerung zu tun. Die kommt einzig von der Pufferung und den Zeitscheiben in Windows. Die Prozesse liegen in Listen, die zyklisch abgefragt werden, um zu entscheiden, ob sie bedient werden müssen, oder nicht. Solche Scheiben sind dann schon mal 100ms lang. >Re: PC-Midi-Latenzen-Ursachensuche Du hast in der Regel 3 Stellen: 1) MIDI-Gerät verpackt Tastendruck in MIDI Daten und schickt sie an einen Buffer. Eine Sendevorrichtung macht was Serielles draus. Dann kommt die Bandbreite des Kanals ins Spiel. MIDI hat 30kHz und kann dadurch in 0,3ms pro Wort arbeiten. Nun kommt der PC mit seiner UARt oder virtuellen MIDI-UART. Da kommen etlich ms zusammen. Müsste sich einstellen lassen. Am Ende kommt noch die Tonerzeugung: Die braucht auch noch Reaktionszeit, besonders, wenn Filter drinstecken und mehrere Stimmen arbeiten sollen.
Carlo schrieb: > MIDI hat 30kHz und kann dadurch in 0,3ms pro Wort arbeiten. Ein MIDI-Befehl (Note-On, Note-Off etc.) ist üblicherweise drei Bytes lang; mit der Datenrate von seriellem Midi (31250 kBaud bei 8n1) können 3125 Bytes pro Sekunde bzw. etwas über 1000 Midi-Befehle pro Sekunde übertragen werden.
Matthias S. schrieb: > Mehr ist beim Einspielen getrennter > Spuren auch kaum akzeptabel, ein Gitarrist wird von 2ms schon irritiert, > wenn man ihm sein Signal übers System zurückspielt. Hm. Schallgeschwindigkeit rund 343 m/s. 2ms Latenz ... also ist der Gitarrist auch dann irrigiert, wenn er weiter als - sagen wir mal rund 70 cm von seiner Box entfernt steht. Ach was "stehen"! Um das zu erreichen muss er sich hinknien!
Andre D. schrieb: > soundprozessor in der Soundkarte Das ist heutzutage unüblich. Welche Soundkarte ist es denn?
Clemens L. schrieb: > Das ist heutzutage unüblich. Welche Soundkarte ist es denn? Der TO ist leider nicht sehr gesprächig. Einen Thread zu eröffnen und dann "Toter Mann" spielen ist einfach nur ein mieser Stil!
Hallo Vielen herzlichen Dank für die Antworten. Das ist für mich schon sehr aufschlussreich und erklärend, und habe mir schon sowas gedacht. Also scheinen Echtzeitverarbeitung und Flaschenhals Midi selbst die Hauptgründe zu sein. Ein Universalgerät wie ein PC sehe ich dann mal wie die Eier legende Milchwollsau die letztendlich nicht richtig fliegen, schwimmen und laufen kann, aber eben von jedem ein wenig. Von meiner Seite nochmal besten Dank. Ubrigens bin ich absoluter Freund von analog- modularen Synthesizern. Warscheinlich liege ich da nicht so verkehrt, dieses System noch weiter mit Digitalerweiterungen zu ergänzen. LG Andre
Andre Danker schrieb: > Also scheinen Echtzeitverarbeitung und Flaschenhals Midi selbst die > Hauptgründe zu sein. Das muss so nicht sein, aber da Du nichts über Deine Hard- und Software verraten hast (außer äußerst vagen Angaben, wie Dein "2-GHz-PC", was Geräte, die in den letzten 15 Jahren erschienen sind, beschreiben kann), lässt sich nicht präziser eingrenzen, woher in Deinem spezifischen Fall die Verzögerungen kommen.
Nun ich höre von den unterschiedlichsten Leuten von diesen Problemen, und nehme an, das es auch die verschiedensten PC's sind, welche genutzt werden. Daher ist es eher ein allgemeines Problem, was sicher mit einigem Hardwareaufwand zu beheben ist. Aber einer ewig neuen Materialschlacht möchte ich nicht folgen.Daher Ursachen suchen und daraus die richtige Entscheidung treffen. Und so stehe ich den Ausführungen des Entwicklers recht nahe. Übrigens ließ sich per Software die Latenz noch deutlich unter 15 ms runterstellen, was dann zu Tonaussetzern führte. Anzumerken ist noch, das sowohl cubase, logic als auch Reason Nutzer mit unterschiedlichster Hardware mit diesem Thema zu tun hatten. LG Andre
Gib mal in einer Suchmaschine Deiner Wahl "pc für audio optimieren" ein. Funk-Maus, Funk-Tastatur, Logitech-Webcam, aktives W-Lan und VirenScanner sind Deine Feinde ;-) Bei http://www.virtualdj.com/wiki/DE%20Windows%207%20tuning.html kannst Du mal die Links zu Latenz-Problemen anschauen: http://www.thesycon.de/eng/latency_check.shtml http://resplendence.com/latencymon
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.