MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ process() [2/2]

MAYAFLUX_API GranularDatum MayaFlux::Yantra::Granular::process ( const std::shared_ptr< Kakshya::SignalSourceContainer > &  container,
AttributeExecutor  executor,
const GranularConfig config = {} 
)

Run segment -> attribute -> sort using a span-level attribution lambda.

Parameters
containerSource signal data.
executorLambda receiving grain samples and context, returning a scalar.
configPipeline scalar parameters.
Returns
GranularDatum containing the attributed, sorted RegionGroup.

Definition at line 850 of file GranularWorkflow.cpp.

854{
855 auto matrix = make_granular_matrix(config.attribution_context);
856
857 auto ctx = make_granular_context(config, std::move(executor));
858
859 auto seg_op = matrix->get_operation<SegmentOp>("segment");
860 auto attr_op = matrix->get_operation<AttributeOp>("attribute");
861 auto sort_op = matrix->get_operation<SortOp>("sort");
862 apply_context_parameters(seg_op, ctx);
863 apply_context_parameters(attr_op, ctx);
864 apply_context_parameters(sort_op, ctx);
865
866 return matrix->with(make_granular_input(container))
867 .template then<SegmentOp>("segment")
868 .template then<AttributeOp>("attribute")
869 .template then<SortOp>("sort")
870 .to_io();
871}
Computes a scalar attribute per grain and writes it onto each Region.
Segments container audio into fixed hop-size grain windows.
Sorts grains by a named attribute key, with optional GPU dispatch.
ExecutionContext make_granular_context(const GranularConfig &config, AnalysisType analysis_type, const std::string &qualifier={})
Construct an ExecutionContext for the granular pipeline using a built-in AnalysisType.
GranularDatum make_granular_input(const std::shared_ptr< Kakshya::SignalSourceContainer > &container, const std::string &group_name="grains")
Construct the initial GranularDatum from a container.
std::shared_ptr< GranularMatrix > make_granular_matrix(ComputationContext attribution_context, GranularOutput output, GrainTaper taper)
Construct a GranularMatrix with grammar rules appropriate for the requested output type.
void apply_context_parameters(std::shared_ptr< OperationType > operation, const ExecutionContext &ctx)
Applies context parameters to an operation.

References MayaFlux::Yantra::apply_context_parameters(), MayaFlux::Yantra::Granular::GranularConfig::attribution_context, make_granular_context(), make_granular_input(), and make_granular_matrix().

+ Here is the call graph for this function: