MayaFlux 0.4.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 822 of file GranularWorkflow.cpp.

827{
828 auto matrix = make_granular_matrix(config.attribution_context);
829
830 auto ctx = make_granular_context(config, analysis_type, qualifier);
831
832 auto seg_op = matrix->get_operation<SegmentOp>("segment");
833 auto attr_op = matrix->get_operation<AttributeOp>("attribute");
834 auto sort_op = matrix->get_operation<SortOp>("sort");
835 apply_context_parameters(seg_op, ctx);
836 apply_context_parameters(attr_op, ctx);
837 apply_context_parameters(sort_op, ctx);
838
839 return matrix->with(make_granular_input(container))
840 .template then<SegmentOp>("segment")
841 .template then<AttributeOp>("attribute")
842 .template then<SortOp>("sort")
843 .to_io();
844}
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: