- [x] High level API that takes an `Renderer::Parameters` and renders an Edit on a background thread - [x] Returns immediately with a handle - [x] Runs on a an internal background thread - [x] Takes a std::function that it calls on completion - [x] Handle: - [x] Progress - [x] Thumbnail - [ ] Move Renderer::Parameters to its own file - [ ] Add sensible defaults - [ ] Add builder pattern for options - [ ] Remove separateTracks - [ ] Take a vector of Tracks rather than bits - [ ] Make static functions to create common Render::Parameters - [ ] Ideally rendered files will be scoped so completion has to take ownership of them or they will be deleted - [ ] Options to add upstream/downstream tracks - [ ] Tests: - [ ] Two clips on two audio tracks - [ ] `Submix/folder`: **Include sub tracks by default** - [ ] Clip on audio track inside submix - [ ] Render audio track - [ ] Include upstream submix parent (should be audible with gain change) - [ ] Exclude upstream submix parent (should be as if it wasn't in a submix i.e. no gain change) - [ ] Render submix - [ ] Include downstream (clips should be audible) - [ ] Tracks that feed in to other tracks - [ ] Two audio tracks, one with a clip which feeds in to the other - [ ] Render the source track, should be as if track was rendered by itself (without feeding in to the other) - [ ] Render destination track, should render both - [ ] `Side chain`: **Source side chain tracks should be included by default** - [ ] One track with sin tone and sidechain compressor, second track with kick samples feeding side chain - [ ] Rendering just the sin track should give the pumping - [ ] Rendering just the second should be the normal kick - [ ] Rendering both should give the kick and the pumped sin - [ ] `Mute/solo/isolate`: **Rendering should not affect the mute/solo states by default** - [ ] `Aux send/return`: **Include aux sends by default** - [ ] Option to disable them - [ ] `Rack source tracks`: **Don't include Rack source tracks by default** - [ ] Option to include other Rack source tracks
Renderer::Parametersand renders an Edit on a background threadSubmix/folder: Include sub tracks by defaultSide chain: Source side chain tracks should be included by defaultMute/solo/isolate: Rendering should not affect the mute/solo states by defaultAux send/return: Include aux sends by defaultRack source tracks: Don't include Rack source tracks by default