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

◆ process() [1/2]

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

Run segment -> attribute -> sort and return the attributed RegionGroup.

Parameters
containerSource signal data.
analysis_typeAttribution category.
configPipeline scalar parameters.
qualifierScalar to extract. Empty uses type default.
Returns
GranularDatum containing the attributed, sorted RegionGroup.

Definition at line 852 of file GranularWorkflow.cpp.

857{
858 auto matrix = make_granular_matrix(config.attribution_context);
859
860 auto ctx = make_granular_context(config, analysis_type, qualifier);
861
862 auto seg_op = matrix->get_operation<SegmentOp>("segment");
863 auto attr_op = matrix->get_operation<AttributeOp>("attribute");
864 auto sort_op = matrix->get_operation<SortOp>("sort");
865 apply_context_parameters(seg_op, ctx);
866 apply_context_parameters(attr_op, ctx);
867 apply_context_parameters(sort_op, ctx);
868
869 return matrix->with(make_granular_input(container))
870 .template then<SegmentOp>("segment")
871 .template then<AttributeOp>("attribute")
872 .template then<SortOp>("sort")
873 .to_io();
874}
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: