MayaFlux 0.5.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 880 of file GranularWorkflow.cpp.

884{
885 auto matrix = make_granular_matrix(config.attribution_context);
886
887 auto ctx = make_granular_context(config, std::move(executor));
888
889 auto seg_op = matrix->get_operation<SegmentOp>("segment");
890 auto attr_op = matrix->get_operation<AttributeOp>("attribute");
891 auto sort_op = matrix->get_operation<SortOp>("sort");
892 apply_context_parameters(seg_op, ctx);
893 apply_context_parameters(attr_op, ctx);
894 apply_context_parameters(sort_op, ctx);
895
896 return matrix->with(make_granular_input(container))
897 .template then<SegmentOp>("segment")
898 .template then<AttributeOp>("attribute")
899 .template then<SortOp>("sort")
900 .to_io();
901}
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: