Commit graph

324 commits

Author SHA1 Message Date
Zakk
2a2aa7eb91 Added plugin API for outputting sound to an audio device, using a simple CAAudioGraph
Virtual camera output uses above API to output the layout's audio to a user selected system audio device
2020-05-22 05:08:11 -04:00
Zakk
62972f1dfb Fixed dumb bug that was causing metal rendering to be disabled.
Pass output layout name to Stream service plugins so they can potentially use it for naming etc.
More work on Virtual Camera output
Add more pixel formats to Passthrough compressor
2020-05-17 03:28:31 -04:00
Zakk
970bea7db2 Drop frames if the compressor queue gets too deep (hardcoded to 10 frames, may make it dynamic later?)
Re-enable proper restoration of audio input source settings (oops)
Clear layout source list if a layout recording is stopped and there is no longer a recorder attached to the layout
Fix OAuth request percent encoding for auth codes
Don't change ffmpeg input source size on input file swap
Uninit audio unit with setting input stream format
Start of virtual camera plugin (soooooon). Disabled for now
Update Youtube output plugin
2020-05-15 00:11:52 -04:00
Zakk
d9715fd5c7 Bump version 2.1.13 2020-04-09 19:50:23 -04:00
Zakk
3615c209ef Add LUT CIFilter 2020-04-09 18:25:01 -04:00
Zakk
92546d324b Matrix detail view now shows input audio levels for each input channel 2020-02-24 18:44:08 -05:00
Zakk
6931cc3aa2 Convert PCM player free loop to a background dispatch_timer
Track input->outputTrack associations via a custom object.
More cleanup
2020-02-22 02:06:27 -05:00
Zakk
51e4356993 Initial work on clean/modernization of the audio engine.
Audio Graph now keeps track of connections via connection objects.
Connecting nodes now requires an AudioFormat, and the format is set on both ends of the connection. No more explicit setting of stream formats.
CAMultAudioPCM is now based on AVAudioPCMBuffer
Most instances of AudioStreamBasicDescription are replaced with AVAudioFormat
2020-02-21 08:55:40 -05:00
Zakk
4226e7facc Update TPCircularBuffer to get rid of deprecation warnings
Fix some warnings
2020-02-03 03:24:09 -05:00
Zakk
200611c911 version 2.1.12 2020-01-22 17:01:39 -05:00
Zakk
c1662f957a Update sparkle for notarization 2020-01-20 18:15:20 -05:00
Zakk
bc386b2828 Bump to version 2.1.11 2019-12-09 04:42:20 -05:00
Zakk
2822956358 Control-clicking instant record button now brings up a menu of various durations of live buffer to write to a recording.
AppleScript instantRecord command now takes integer argument of duration. Defaults to the configured buffer length if unset
2019-10-31 09:16:16 -04:00
Zakk
414ab28774 Set deployment target to 10.12
Don't save default system audio input in the system audio uuid maps; it gets added automatically and doesn't need restoring on launch
2019-10-24 20:51:31 -04:00
Zakk
de9605ad1a Don't call InputSource commonInit twice: this causes double KVO of constraints and leads to...bad things 2019-10-23 17:28:33 -04:00
Zakk
abb0e07c19 When creating temporary/clone audio engines, mirror the system output tracks into them.
Change layout renderer back to CARenderer: SceneKit now does complex colorspace/gamma and not all capture sources provide the proper formatting to look correct.
Change layout capture source so it pretends to an OutputDestination attached to a Passthrough compressor.
Added default Passthrough compressor with noCopy set.
2019-10-16 13:21:43 -04:00
Zakk
a1114d9cbc Store metal renderer setting in NSUderPreferences, so it is available to loaded XIBs early on in application startup.
Refactor main window and main menu xibs. MainMenu.xib creates Application,AppDelegate,Sparkle Updater. MainWindow.xib is loaded by AppDelegate in applicationWillLaunch and creates CaptureController and the Main window.
2019-09-16 05:25:47 -04:00
Zakk
5f30700387 Use a SceneKit renderer to render layouts. This works around a bug in CARenderer where CIFilter based transitions would not render at all 2019-08-03 23:22:08 -04:00
Zakk
fe99869347 Update settings files for localization changes Xcode was complaining about.
When restoring audio engine, don't re-attach the default output track
2019-06-06 05:54:15 -04:00
Zakk
ae1228abea Remove 12 layout minimum.
Bump to version 2.1.9 (sooooon)
2019-06-05 04:30:22 -04:00
Zakk
66404cef3a Add AppleScript glue to list audio tracks
Add 'create debug' menu item. Writes a zip file to the user's desktop with saved settings and log data
2019-05-28 05:16:33 -04:00
Zakk
cbf6f41f03 When creating layout transition subtype menu, set the transition name explicitly so it doesn't fall back to instantiating an actual LayoutSource and creating a bunch of audio engines.
Dealloc transition menu when it closes
2019-05-26 17:26:36 -04:00
Zakk
d51bd2a43c Refactor output tracks to use a real class.
Give output tracks a unique identifier that is reference internally instead of a name.
2019-04-03 05:30:31 -04:00
Zakk
60d8fcb8c4 Slight rework of audio graphs:
The encode mixer is now a "down mixer".
Various changes to base node class and down mixer to handle keeping track of multiple inputs and outputs.
Added methods to down mixer for enabling input and output busses, and connecting them via crosspoint volume settings.
2019-03-03 00:58:34 -05:00
Zakk
0954c9025c Removed some NSLogs.
Don't spam observers/mouseevents on an already moused-on source
2019-02-24 05:22:58 -05:00
Zakk
7ca4930c9a Instant record files are now added as transient input library items (they do not save across application shutdown) 2019-02-09 14:07:39 -05:00
Zakk
01bfad1ca2 Run input source frameTicks in parallel.
Improve formatting of some output statistics.
Add an encoder delay output statistic
2019-02-04 03:16:31 -05:00
Zakk
15362aca26 Added ImageFilter transition: uses a Core Image filter (blur, distortion etc) as a transition effect. Can be toggled 2019-01-23 04:24:05 -05:00
Zakk
b61e6217d5 Fix some warnings.
Restore dark UI mode when running non-Mojave systems.  Still ugly, tho.
On older systems (earlier than 10.12) set CALayer preview view contents to the IOSurface, not the CVPixelBuffer
2018-12-30 05:41:48 -05:00
Zakk
31d31afdad Select 'most optimal' pixel format for webcam capture sources.
If metal and the proper CARenderer features are available, render the SourceLayout via Metal instead of an OpenGL context.
If metal is available, use a normal CALayer to render PreviewView content.
Preview renderers are no long responsible for drawing 'snap lines'; Preview View creates an overlay view that renders them on top of the layout.
2018-12-29 04:11:56 -05:00
Zakk
953a61dee6 Add WKWebView based capture source plugin 2018-11-11 04:29:30 -05:00
Zakk
33a1aae02b Translate the midi mapping file names so devices with '/' in their name don't cause errors. 2018-10-20 18:23:06 -04:00
Zakk
25c1a230b7 Support setting light/dark mode independently of 10.14s new global settings. Choices are: Light - always use the normal 'aqua' appearance. Dark - always use the new DarkAqua appearance. System - change with the user's global settings.
Some clean up for Xcode 10
2018-09-28 03:10:31 -04:00
Zachary Girouard
589bb590b5 Only load a plugin class once, order of priority is:
User plugin directory (~/Library/Application Support/CocoaSplit/Plugins)
System plugin directory (/Library/Application Support/CocoaSplit/Plugins)
CocoaSplit app bundle Plugins directory

This allows users to put custom/newer versions of a plugin in their private Plugin directory and have it loaded instead of the bundled one
2018-08-28 00:34:08 -04:00
Zakk
152213fa7d Update sparkle
Fix constraint conflict in multi pane of input popup window
2018-08-22 18:52:02 -04:00
Zakk
4883820f07 Fix some warnings.
Don't crash if an image capture file path doesn't exist
2018-07-31 23:20:26 -04:00
Zakk
325ae7b539 Added a contextual menu to source lists with common operations for the source (delete/pin/settings) 2018-04-14 08:22:55 -04:00
Zakk
db113d6d7e Fixed some warnings 2018-04-14 05:17:11 -04:00
Zakk
7d44e66c8a Purge all "LayoutSequence" related code; that functionality is best placed in toggled transitions now.
Remove 'Scripts' item from view menu.
Change save file name in case there's one person out there that actually wrote a script
2018-04-14 04:04:43 -04:00
Zakk
db9493832b Added output plugin for Mixer (mixer.com). Only RTMP for now. FTL possible in the future 2018-04-13 09:23:32 -04:00
Zakk
dc5a27d1db Create a CIFilter category to present a consistent displayName, since CIFilter.attributes apparently changes every access, so it can't be bound via IB.
Clean up CIFilter list buttons
2018-04-09 04:17:33 -04:00
Zakk
c309d17161 Add AppleScript commands for transitions, toggle/toggleLive/activate/deactivate 2018-04-08 05:00:44 -04:00
Zakk
42e2b1b9bb Input/layout transition config popovers now include the full input configuration view. 2018-04-01 22:52:49 -04:00
Zakk
dd9b89c258 Update project settings for new Xcode.
added dummyAnimation function to animation input wrapper.
slightly reworked how input.waitAnimation() works; the previous implementation possibly messed with other input timings.
converted input transitions to use input specific waits and dummy animations. This allows scripts/other transitions to run simultaneously
2018-03-31 08:14:13 -04:00
Zakk
19521cf75f Added script transition type.
Added javascript functions for getting a transition by name, and applying a transition by name
2018-03-29 11:20:23 -04:00
Zakk
3304ef5cb1 Create a transition type for generic inputs, make the layout transition a subclass of it 2018-03-27 22:06:35 -04:00
Zakk
5b129021c3 catchup 2018-03-20 23:41:18 -04:00
Zakk
ed50307884 catchup commit moving hosts 2018-03-19 22:00:53 -04:00
Zakk
39406b2799 Added CIFilter based transition.
Added transition configuration action and view(s)
2018-03-18 16:02:29 -04:00
Zakk
c4e215b1b1 Added start of transition switcher view 2018-03-17 23:04:04 -04:00