Nachtschicht
- Registriert
- 20.08.11
- Beiträge
- 8.292
- Reaktionen
- 4.765
- Punkte
- 22.728
(nebenbei, wenn der kleine OT-ausflug erlaubt sei, freu ich mich sehr von rainer hier zu lesen. good times!)
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: This feature may not be available in some browsers.
core audio hat also keinen pufferjitter? interessant. ich dachte bisher, das wäre technisch gar nicht möglich.
quelle? interessiert mich (wenn auch nur theoretisch, in der praxis halte ich pufferjitter für irrelevant bzw eine phantomdiskussion, da er bei kleinen puffern deutlich unter der ungenauigkeit von midi selbst liegt). aber quelle möchte ich trotzdem gerne haben, weil mich technisch interessieren würde wie das gemacht wurde.
deine beschreibung ist auf jeden fall nicht das, was ich unter pufferjitter verstehe, da hast du was falsch verstanden. hier nochmal in a nutshell:
- ein system spuckt daten in form von paketen zu je (z.b.) 256 samples aus
- das system empfängt ausserdem mididaten
- nun kann das system zwar wie du schreibst, die mididaten in höherer präzision als 256 samples empfangen. selbstverständlich reden wir da nicht von einem abwechselndem datenverkehr, ist ja albern.
- ABER: das ist nicht zuende gedacht. zum musizieren gehören hier ja zwei teile. erstens, der empfang der mididaten (sagen wir zum rechnen pauschal mit präzision 1ms). aber zweitens: die wiedergabe des durch diese mididaten ausgelösten audio-events. das, was du in deinem test mit aufgezeichnet hast. und DIESES kann selbstverständlich bei einer puffergrösse von 256 samples nur entweder in einem oder dem nächsten puffer ausgelöst werden, das liegt ja in der natur des pufferprinzips. sonst müsstest du den puffer kleiner machen.
wenn du nun also das pech hast, dass dein miditrigger minimal nach versenden des letzten 256-sample-päckchens eintrifft, dann muss dieser trigger fast 256 samples lang auf das entsprechende audiosignal warten, denn natürlich kann dieses audiosignal erst mit dem nächsten pufferpäckchen verschickt werden. wenn du hingegen glück hast, traf dein signal minimal vor versenden des nächsten pufferpakets ein und wird noch mit versendet, ...
Wenn ein Midi-Ereignis eintrifft, kann der Sequencer pauschal die 1 ms abziehen, und eine weitere Verzoegerung, die ihm der Treiber mitteilt.
Wenn ich ueber MIdi was einspiele, dann arbeitet die Latenzkompensation sehr gut, solange keine Plugins waherend der Aufnahme im Spiel sind (Logic).
Ja, genau. ASIO, eine Windowsgeschichte. Schoen, dass du endlich selbst drauf kommst .
Mac = CoreAudio/CoreMidi = kein ASIO = kein Windows = kein Jitter.
[...]
Ich kann den Asiotest nicht mehr machen, weil ich jetzt nur mit Macs arbeite und der PC ist woanders. Bei Mac ist dieser Jitter nicht abhaengig von der Audiolatenz, frag mich nicht, warum.
Ich seh auch nicht, warum dies technisch nicht moeglich sein soll. Es ist eine Frage, wie oft das System zum Beispiel den USB Bus abfragt. Es gibt an sich keinen Zusammenhang zwischen Midi und Audiopuffer, ausser dass sie sich quasi den gleichen Bus teilen, USB oder PCIe. Wenn da ein Zusammenhang besteht, dann wurde dieser quasi kuenstlich durch den ASIO Standard erschaffen, aber er muss gar nicht sein. Und der Bus hat ne Riesenbandbreite.
Klar kann man denken, nach 256 Samples duerfen dann erst Mididaten folgen etc. Also abwechselnder Datenverkehr. In dem Fall waere so ein Jitter dann die Folge, da die Mididaten in dieses Zeitschlitzverfahren gezwungen werden. Aber es gibt sich andere Moeglichkeiten, das zu vermeiden. Zum Beispiel, indem die Samplepakete bei der Uebertragnug kleiner gewaehlt werden, auf Kosten eines etwas groesseren Overheads.
Ich meinte, der Audiosequencer speichert die Midinoten korrekt ab, indem die 1 ms abgezogen wird.
Da die Latenzzeiten bekannt sind, kann der Sequencer also beim Playback korrekt wiedergeben. Ausserdem wird berücksichtigt, dass der Hörer den Tick ja verspätet gehört hat, das muß auch ausgeglcihen werden.
Anstatt mir dauernd vorzuwerfen, was ich alles nicht verstehe, einfach sich mal in Ruhe Gedanken machen und alle Fälle aufrollen.
Mach den Buffertest, 1024 Samples. Ist der Jitter größer als vorher, ja oder nein.
Und die werden beide um genau die Audiolatenz auseinanderfallen. Die Audioausgabe des Plugins kommt erst nach 5ms. Wenn Du die dann aufnimmst (hoffentlich nicht auch noch einmal eine Runde über das Audiointerface), dann ist sie IMMER um die Audiopuffergröße hinter der MIDI-Aufnahme und damit auch hinter dem, was das Rendering aus selbiger macht.
Es wird dabei auch Jitter geben, aber auch das ist Audiojitter. Matthias Carstens von RME hat dazu vor zig Jahren mal einen Artikel für KEYBOARDS geschrieben. Je nachdem an welchem Punkt der Zeitscheibe das Event eintrifft, schwankt auch die effektive Ausgabe-Latenz. Glaub' mir, Du misst den Audio-Jitter und -Latenz, nicht MIDI.
Du sagst ganz richtig "beim Playback". Da kann er das, da hat er die MIDI-Events aber auch schon alle beisammen und gibt sie halt früher aus. Beim live spielen - und das vergleichst Du ja mit dem nachträglichen Playback - kann der Sequenzer das aber nicht. Daher wird das immer auseinanderlaufen.
Weißt Du, ich beschäftige mich seit über 20 Jahren mit Computern und MIDI, die Hälfte davon beruflich. In der Zeit hatte ich wahrlich genug Ruhe, um mir Gedanken zu machen und die Fälle aufzurollen. Und ich habe mir auch nicht aus den Fingern gezogen, wie die Sache funktioniert. Ich habe die Entwickler gefragt.
Bleibt die Frage, inwieweit eine solche (sicher fuer einige interessante) Detaildiskussion dem Threadersteller weiterhilft...
Ich habe zur zeit nen win 7 64bit laptop mit dem ich aufnehme aber langsam schmiert er weg und möchte mir was neues holen.
der Punkt ist, nicht ich, du hast da was falsch verstanden .
Wenn es jetzt so wäre wie du schreibst, nämlich das ein Audioevent es mal noch in diesen Puffer der jenen Puffer geschafft hat, und dementsprechend mal früher oder später geplaybacked wird, also zum Beispiel das Antriggern von VSTs oder AUs, dann wäre es ein Desaster und außerdem technisch nicht machbar. Denn das würde heissen, dass sehr lange Buffergrößen zu extremen Schwankungen führen würden
Aber es gibt sich andere Moeglichkeiten, das zu vermeiden. Zum Beispiel, indem die Samplepakete bei der Uebertragnug kleiner gewaehlt werden, auf Kosten eines etwas groesseren Overheads.
ich gebe offen zu, dass ich gewisse probleme damit habe, DICH zu verstehen, da du nicht sauber zu unterscheiden scheinst zwischen den verschiedenen fällen (echtzeitreaktion auf midiinput, wiedergabe vom sequencer usw).
Was interessiert es mich, ob da ein paar Milli-Latenzen mehr oder weniger sind, oder ob eine DAW ein paar mehr Plugins abspielen kann.
Heutzutage sind wir in CPU-Bereiche gestoßen, wo selbst kleine Rechner komplette Produktionen rein virtuell ermöglichen.
Mir ist es wichtiger, dass mir mein Hauptarbeitswerkzeug zusagt, nämlich die DAW ansich - und nicht irgendwelche Messwerte....
Jeder Sequenzer gleicht alle Latenzen beim Abspielen aus, für´s Einspielen mit niedrigen Latenzen usw. gibt es genug Massnahmen, welche man als ernsthafter User sowieso kennen und anwenden sollte.
Ja, aber das ist schon seit Längerem längst im Umbruch: die Adobe-Pakete gibt´s für beide Plattformen, Audio-DAWs mittlerweile ja auch. Viele Designer/Fotografen (der Printbereich erst recht) und sowieso verstärkt der Broadcast/Radio-Bereich uvam. nutzen mittlerweile hochgerüstete PC-Systeme. Wobei die Serveranbindungen dort auch viel besser sind.Mac finden im Producing-Bereich - also Design, Programmierung, Audio&Video etc. - sehr hohen Einsatz. Für normale privat User ist es nicht verkehrt.
Das ist ein sehr triftiger Grund vieler Nutzer, auch und gerade im Pro-Bereich.Aber halt ein hoher Kostenfaktor. Pc mit gleicher Leistung kriegt man schon halb sogünstig..
Kann mir nicht vorstellen, dass das Anfänger, welche hier ja auch mitlesen, bis ins letzte technische Detail, interessiert.