Skip to content

v1.1.3 - VideoPlayer 2x Speed Fix & Audio Device Sync

Latest

Choose a tag to compare

@danartriyudistira danartriyudistira released this 11 Jul 06:13

v1.1.3 — 2026-07-11

Critical Fix: VideoPlayer 2x Speed

Video playback previously ran at approximately 2x speed due to a mismatch between user-configured sample rate/buffer size and the actual audio device values. The global \gSampleRate\ and \gBufferSize\ variables were set from user preferences but never corrected when JUCE's audio device used different values.

Root Cause: \MainComponent.cpp\ only logged a warning when the actual device sample rate/buffer size differed from preferences — it did not update the global timing variables. This caused \gTime\ to advance at the wrong rate, making all time-dependent modules (including VideoPlayer) run too fast or too slow.

Fixes Applied

File Fix
MainComponent.cpp Sync \gSampleRate/\gBufferSize\ from actual audio device after \initialise()\
ModularSynth.cpp Sync \mIOBufferSize\ from \gBufferSize\ every callback; use \gBufferSize\ for \elapsed\
VideoPlayerModule.cpp Remove FloatSliderUpdated→SetPosition feedback loop that triggered seek every frame
VideoPlayerModule.cpp Remove double-seek in SetPosition (direct call + atomic flag)
MovieClip.cpp Fix \isFrameAvailable()\ — removed broken bounds check mixing native rate vs time_base
FFmpegReader.cpp Fix \�v_seek_frame\ — convert samples to stream time_base via \�v_rescale_q\

Portable Build

This portable zip includes full Python 3.13 stdlib (for scripting support) and FFmpeg DLLs (for video playback).

Note

Extract and run \Syntetika.exe\ directly — no installation required.