Fixed an embarassing bug that prevented Metal rendering from activating
Fixed rate crash that could occur when a layout was deleted
Added Virtual Camera support. May be of limited utility due to Apple's increasing neglect of CoreMediaIO plugins in the face of increased process security. Download the virtual camera driver at CSVirtualCamera
New feature: Layout capture can now crop to a specific source in the layout being used as the input. The source is selectable via user specified patterns in the source name
Window list for window capture source is now filtered to only visible desktop windows
Text file source now supports various file formats (HTML, RTF/RTFD, DOC, XML etc)
Instant record saving now supports multiple durations. Control-click the instant record button for a menu of supported durations.
The live record buffer is now a pair of rotating MKV files
File output now supports segmentation
It is now possible to add multiple instances of the same audio input. This allows routing them to different output tracks with distinct volume/effects etc
Improved behavior of AutoFit for static input types
Desktop capture region selection now gets along better with multiple desktop spaces
Layout rendering is now done with Metal if it is available
Metal device used for rendering is selectable in preferences
OpenGL based rendering is toggleable in perferences
Fixed a crash that could sometimes occur when editing a compressor
Added easy access recording of layouts, including live layout. Outputs now have a 'stream' and 'recording' toggle. The Stream and Record buttons in the main window will start their respective outputs. An output can be both a recording and stream output (it is started only once if that is the case)
Create a new output track from advanced audio config settings
Assign audio inputs to tracks via the input's configuration view
Assign audio tracks to outputs in the output's configuration view
There is a default audio track that is always created. All inputs are assigned to the default output track. All outputs automatically use the default audio track
Instant record and quick recordings always use Default track
Added Profile and tune defaults in x264 encoder
Added default duration to input based transitions
Fixed bug that caused resizing a layout to fail
Fixed layout export and layout fullscreen menu entries
Layout transitions now default to auto fit
Source auto fit now waits until the size of the capture input is known
Fixed drag and drop of inputs and layouts onto the transition view
Stop preview rendering if the main window is occluded
Support forcing of light or dark theme, ignoring the system's global setting. You can also make CocoaSplit follow the system setting properly (which is the default)
Improved plugin loader so it always prefers the highest version number if multiple plugins of the same type are found
Updated ffmpeg version. Compiled ffmpeg with support for older architectures/macs
Layout merge depth is now controllable. Layout buttons will now display an up or down arrow when when you mouse over them with shift held down. Up arrow: merge above all current inputs. Down arrow: merge below
Some bugfixes for persistent inputs now being honored in a live layout
Audio input changes: The audio mixer no longer shows all possible inputs, they must be added now
Audio mixer always shows a 'System Input' input: This input corresponds to the default systen input (set in the "Sound" System Preference)
Improved audio meters: Left/Right channels now shown
If the selected audio monitor output no longer exists, use the system default
Added support for Mixer.com streams. Only RTMP, no FTL support yet
Layout input source now captures audio from the layout's sources and creates an audio input in its parent layout
Elapsed time input has an option to use the stream go live time as the start time
Transitions have been completely reworked
Transition types:
Core Animation - Basic Apple provided transitions
Core Image - More complex Apple provided transitions
Layout - One of your defined layouts
Script - Cocoasplit javascript animation script
Input - If you drag and drop an input onto the transition area, a transition is created that uses the dragged input as the transition
Clicking on a transition enables it. Enabled transitions are used for all layout merges,switches and removes. It is also used for staging to live transition.
Transitions can also have pre and post transitions attached to them. As an example, if you configure pre and post transitions to a layout transition, the pre transition is executed as the layout is added, then the post transition is executed as it is removed. This allows input and layout transitions to fade in/out etc
Transitions of type Layout, Input and Script can also be shift-clicked. Shift clicking these transitions adds them to the currently active layout immediately, and they stay there until shift-clicked again. When used with an input or layout type, it means the input is added to the current layout until removed via shift-click. This is a quick way to add lower third type graphics
Added a passthrough compressor: not actually a compressor
Layouts now have user definable video filter chains
Video sources are now 'pinnable'. A pinned source persists across layout changes/merges/removal
CocoaSplit is now more aggressive about reusing underlying video source plugin instances. This means if you create multiple instances of a webcam, even if those instances are in different layouts, only one CaptureSource is used. This should improve performance and memory churn. Plugins can opt out of reuse if required
There are now alternate source clone options that ignore the cache
Added a user flag on video sources to keep them permanently cached. Even if all visible instances of the source are removed, the CaptureSource is maintained and reused in the future. This is useful for cameras or other devices that may have a small delay in coming online.
Video sources can now create child audio sources if they have one. Only re
levant for NDI and Movie sources for now
Fixed: Movie source would not advance to the next item in the playlist
Fixed: Drag and drop reordering in the source list was sometimes breaking if one of the sources was animated via javascript
All audio inputs now have a configurable effect chain. Any AudioUnit effect can be part of the effect chain
There is also a configurable effect chain that applies to the entire stream audio. You can access it via the advanced audio configuration
The dedicated equalizer on inputs and output is removed, you can apply an equalizer via the effect chain now
Some improvements to audio handling to save some CPU cycles
Added a start/stop record button to the layout edit window
Layout edit windows now have an audio configuration section. You can use this to drag+drop audio inputs to the source list. If the layout is 'live' (via recording or a dedicated output) you can also manipulate the outgoing audio here
Added some applescript functionality for controlling audio output
CocoaSplit 2.1 has arrived! Forged in the fire of AppleScript automated testing!
CocoaSplit 2.1 does not overwrite your 2.0 settings, in case you need to revert back for any reason
Added a dark mode theme, for use in your basement
Various UI updates/cleanup
There are always a minimum of twelve layouts
Added quick layout switcher: dedicated window with a live preview of all layouts
Transition configuration and use is hidden by default. Right click the preview window and select the 'Enable Transitions' menu item to use them
Replaced generic OSX application icon with lower quality non-generic icon
Added a delay setting to individual audio sources
Update ffmpeg libraries to version 3.4
Source draw order is changable via drag+drop in the source list
You can now drag+drop an entry in the source list on top of another entry: doing this makes the dragged source a child of the one it is dropped on
Dropping an audio file in the audio input list now adds that file as an audio source
All audio sources have a configurable graphical EQ
Main audio output also has a configurable graphical EQ
Layouts can now contain audio sources: When the layout is made live (via a switch to it or via merging it) the saved settings of any audio sources are applied. When the layout is no longer live the audio source's settings are restored to their previous values
Added audio source controls to the MIDI interface
Added a layout input type. This allows you to render another layout inside the current one; it acts just like any other video source
Video delay: Some video sources support delaying their output by a configurable number of frames. Sources that render directly to textures may not support this.
It is now possible to rename sources directly from the source list
Double clicking an entry in the source list now brings up the configurating window for that source
Text file source now allows specifying start and stop line numbers
Added drag and drop support for many source types. (Images, movies, text files, etc)
Images are now saved within an exported layout
Outputs can now use any layout as their input. This allows you to stream any layout to any output.
Layouts are now recordable without being attached to any output. The recording is saved in your Movies folder. Recording always use Apple ProRes codec
Added a retry on error flag to outputs. If the output disconnects due to frame dropping this will make it auto-reconnect
Command clicking a layout takes it directly live, bypassing the staging view. Command-shift clicking merges directly into the live view
New transition type: layout. This uses one of your layouts as a transition.
Added lots more applescript integration.
Plugins of all types can now be written in python. Place them in ~/Library/Application Support/CocoaSplit/Python
Animations have been changed. All animations are now written in JavaScript
Every source can have javascript animations configured for various lifecycle events (Merged into layout, about to be removed, just switched into layout etc). You can use these scripts to have an input react to going live by animating itself in some way
New source type: script. This is a source type you can add to a layout that exists only to execute animation scripts
Audio source volume is now animatable via animation scripts
The shape sources now use javascript to draw the shape. You can create your own path sources by placing javascript files in ~/Library/Application Support/CocoaSplit/Paths
General improvements in memory use
In the grand tradition of Apple changelogs: Various bugfixes and improvements