tracktion_engine icon indicating copy to clipboard operation
tracktion_engine copied to clipboard

[FR]: Add a simple way to render an Edit on a background thread

Open drowaudio opened this issue 1 year ago • 0 comments

  • [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

drowaudio avatar Aug 06 '24 16:08 drowaudio