Delay/Latenz Test (Audio/Video) für: Android, C64, MacOS

Als die Diskussion mit dem neuen The C64 Mini  bzgl. des Joystick Delays immer größer wurde, wollte ich es genauer wissen. Auf YouTube konnte man einige Delay Tests betrachten, die mit Hilfe von Videoaufnahmen gemacht wurden. Was ich jedoch wollte war eine automatische Elektronik, die mir die Zeit in Millisekunden anzeigt. Für Video und Audio separat. 

Und hier ist meine Lösung, ein universeller “Delay Test” für Android, C64 und MacOS mit einem Arduino Leonardo Board:


(auf diesem Bild sieht man einen ODroid C2 Hardware basierten C64 Emulator)

 


(das ist ein alter C64-II angeschlossen an einen FBAS LCD Screen)

 


(und hier ist der “The C64 Mini” getriggert über das originale USB Joystick Board)

 

Mit diesem Delay-Test Board kann man Audio- und Videoverzögerungen von einigen Systemen  (Android, C64 und MacOS) messen. Die Arduino Sketch Datei (.hex) und die  Apps für Android (apk), C64 (.prg) und MacOS (.app) kann man weiter unten downloaden als “Delay Test Package”.

Eine Verzögerung von 100-150 ms ist absolut in Ordnung. Ich habe keine Probleme mit Pitfall II oder Blue Max und es fühlt sich nach Echtzeit an. Jedoch ohne ein paar Optimierungen am Emulator hatte ich ein Delay von 250-300 ms, was dann schon nicht mehr so toll ist.

The C64 Mini hat ein Video Delay von ~110 ms, was perfekt ist. Aber das Audio Delay ist ein bisschen länger: ~280 ms. Deshalb ist das Audio-Signal etwas spät. Vielleicht kann der Hersteller noch den Audio Buffer etwas kleiner machen.

 

Wie es funktioniert:

Das Prinzip ist eigentlich ganz einfach. Über einen Arduino Pin oder die USB Schnittstelle wird ein Trigger-Signal (Digital Output High/Low A2 Pin, USB-Joystick, USB Keyboard, USB Mouse oder USB Midi) vom Arduino Board zum System geschickt, dass die Delay-Test App aktiviert und einen Ton ausgibt, sowie die Hintergrundfarbe von Schwarz auf Weiß ändert. Über das Audio-Kabel und über den Lichtsensor werden diese Signale dann vom Arduino Board empfangen und die Zeit gemessen die zwischen dem gesendeten Trigger-Signal und dem eingehenden Audio- und Lichtsignal vergangen ist.

Hinweis: Für einen USB Midi Delay Test benötigt man keine Delay-Test App auf dem Ziel-System. Dazu reicht ein Midi-Sequenzer der bei eingehenden Midi-Signalen einen Ton ausgibt, der dann vom Arduino Board gemessen wird.

Android: Einige Android Geräte produzieren selbst wenn sie kein Audio Signal ausgeben einen Audio-Pegel von 20-60, dann benötigt man einen “Golvery Ground Loop Noise Isolator” den man dazwischen schalten muss, um auf einen Ausgangs-Pegel von 0 zu kommen.

 

Was man benötigt:

  • 1 x Arduino Leonardo
  • 1 x TSL 2561 (Licht Sensor)
  • 1 x OLED 1306 Display 128×64 (I2C)
  • 2 x Buttons
  • 1 x Audio Stereo Stecker

 

Was man tun muss:

  • Lade Dir das Software-Paket von dieser Seite (siehe unten)
  • Übertrage die Arduino Hex Datei auf den Arduino Leonardo
  • Verbinde das OLED mit den Arduino Pins: SCA, SCL, 3,3V, GND
  • Verbinde den TLS 2561 Sensor mit den Arduino Pins: SCA, SCL, 3,3V, GND
  • Verbinde den Audiostecker mit den Arduino Pins (A0, GND)
  • Verbinde die 2 Buttons mit den Arduino Pins (D11, GND, D12, GND)
  • Installiere eine der Delay-Test Apps auf dem Ziel-System
  • Verbinde Arduino USB, Audio-Stecker und Licht Sensor mit dem Ziel-System

 

Arduino Board einschalten, bereit zum Messen.

 

   

   

 

Download: <Um alles was dazu gehört zu finanzieren, werden die Downloads nach einer Spende aktiviert>

Danke für Deine Unterstützung!