$Page Video Slicer $TargetName Video Slicer *PLATFORM NOTE - macOS only* This example relies on loading a video file in Simpler. Live is not optimized for working with video files on Windows, so this example only works well on macOS. *Syncing video playback to Simpler slices* Since Max for Live lets you access the slice information of Simpler, and Simpler can load audio from video files, we can build a device that synchronises the video of that file to the Simpler playback. Video-Slicer.png To see the loaded video without interpolation artifacts, enable the output window and set it to the same size as the video. In this example, the size of the video is 640 x 360 pixels. -> The VideoOutput.maxpat abstraction in the bpatcher is built around [jit.world], which outputs a bang just before the computer screen updates. Performing any real-time calculations from this bang is the best way to get the correct values just in time for a screen refresh. -> Note that in Max for Live, video processing happens in the same thread as where Live's interface is drawn, meaning that when Live's interface needs a lot of updates, the video output could stutter. -> When streaming a movie from disk, jumping is slow. So instead of using [jit.movie], we import the frames into memory with [jit.matrixset]. The drawback is that this uses quite some RAM and takes time to load. So this approach is suited mostly for short movies with a low resolution. By default, Max uses the AVF engine on Mac and the DirectShow engine on Windows to play video. These are not optimized to jump through video files quickly. To improve jumping speeds without having to load all the frames in RAM, Max comes with a different video engine: $Link Viddll . However, this engine is not available by default in the Max distribution that is bundled with Live, so it only works when you install the Viddll engine via the $Link Max package manager .