MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
GranularWorkflow.hpp File Reference
+ Include dependency graph for GranularWorkflow.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MayaFlux::Yantra::Granular::AttributeOp
 Computes a scalar attribute per grain and writes it onto each Region. More...
 
struct  MayaFlux::Yantra::Granular::GranularConfig
 Scalar parameters shared across all granular pipeline entry points. More...
 
class  MayaFlux::Yantra::Granular::SegmentOp
 Segments container audio into fixed hop-size grain windows. More...
 
class  MayaFlux::Yantra::Granular::SortOp
 Sorts grains by a named attribute key, with optional GPU dispatch. More...
 

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kakshya
 
namespace  MayaFlux::Yantra
 
namespace  MayaFlux::Yantra::Granular
 

Typedefs

using MayaFlux::Yantra::Granular::AttributeExecutor = std::function< double(std::span< const double >, const ExecutionContext &)>
 Span-level escape hatch for fully custom per-grain feature computation.
 
using MayaFlux::Yantra::Granular::GrainTaper = Kakshya::RegionTaper
 Per-grain taper applied before accumulation in OLA reconstruction.
 
using MayaFlux::Yantra::Granular::GranularContainerDatum = Datum< std::shared_ptr< Kakshya::SignalSourceContainer > >
 Datum specialisation for container-output granular pipelines.
 
using MayaFlux::Yantra::Granular::GranularDatum = Datum< Kakshya::RegionGroup >
 Datum specialisation for granular processing pipelines.
 
using MayaFlux::Yantra::Granular::GranularMatrix = GrammarAwareComputeMatrix
 Matrix type used throughout the granular subsystem.
 

Enumerations

enum class  MayaFlux::Yantra::Granular::GranularOutput : uint8_t {
  MayaFlux::Yantra::Granular::REGION_GROUP , MayaFlux::Yantra::Granular::CONTAINER , MayaFlux::Yantra::Granular::CONTAINER_ADDITIVE , MayaFlux::Yantra::Granular::STREAM ,
  MayaFlux::Yantra::Granular::STREAM_ADDITIVE
}
 Selects the terminal output type produced by make_granular_matrix. More...
 

Functions

ExecutionContext MayaFlux::Yantra::Granular::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.
 
ExecutionContext MayaFlux::Yantra::Granular::make_granular_context (const GranularConfig &config, AttributeExecutor executor)
 Construct an ExecutionContext using a span-level lambda for fully custom attribution.
 
template<ComputeData InputType, ComputeData OutputType>
ExecutionContext MayaFlux::Yantra::Granular::make_granular_context (const GranularConfig &config, std::shared_ptr< UniversalAnalyzer< InputType, OutputType > > analyzer, const std::string &qualifier={})
 Construct an ExecutionContext supplying a pre-configured analyzer instance directly.
 
GranularDatum MayaFlux::Yantra::Granular::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< GranularMatrixMayaFlux::Yantra::Granular::make_granular_matrix (ComputationContext attribution_context=ComputationContext::SPECTRAL, GranularOutput output=GranularOutput::REGION_GROUP, GrainTaper taper={})
 Construct a GranularMatrix with grammar rules appropriate for the requested output type.
 
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.
 
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.
 
std::shared_ptr< Kakshya::SoundFileContainerMayaFlux::Yantra::Granular::process_to_container (const std::shared_ptr< Kakshya::SignalSourceContainer > &container, AnalysisType analysis_type, const GranularConfig &config={}, const std::string &qualifier={}, GranularOutput output=GranularOutput::CONTAINER)
 Offline granular pipeline terminating in a SoundFileContainer.
 
std::shared_ptr< Kakshya::SoundFileContainerMayaFlux::Yantra::Granular::process_to_container (const std::shared_ptr< Kakshya::SignalSourceContainer > &container, AttributeExecutor executor, const GranularConfig &config={}, GranularOutput output=GranularOutput::CONTAINER)
 Offline granular pipeline using a span-level attribution lambda.
 
template<typename CompleteFn >
void MayaFlux::Yantra::Granular::process_to_container_async (const std::shared_ptr< GranularMatrix > &matrix, const std::shared_ptr< Kakshya::SignalSourceContainer > &container, AnalysisType analysis_type, CompleteFn &&on_complete, const GranularConfig &config={}, const std::string &qualifier={}, GranularOutput output=GranularOutput::CONTAINER)
 Async offline granular pipeline (AnalysisType path).
 
template<typename CompleteFn >
void MayaFlux::Yantra::Granular::process_to_container_async (const std::shared_ptr< GranularMatrix > &matrix, const std::shared_ptr< Kakshya::SignalSourceContainer > &container, AttributeExecutor executor, CompleteFn &&on_complete, const GranularConfig &config={}, GranularOutput output=GranularOutput::CONTAINER)
 Async offline granular pipeline (AttributeExecutor path).
 
std::shared_ptr< Kakshya::DynamicSoundStreamMayaFlux::Yantra::Granular::process_to_stream (const std::shared_ptr< Kakshya::SignalSourceContainer > &container, AnalysisType analysis_type, const GranularConfig &config={}, const std::string &qualifier={}, GranularOutput output=GranularOutput::STREAM)
 Offline granular pipeline terminating in a DynamicSoundStream.
 
std::shared_ptr< Kakshya::DynamicSoundStreamMayaFlux::Yantra::Granular::process_to_stream (const std::shared_ptr< Kakshya::SignalSourceContainer > &container, AttributeExecutor executor, const GranularConfig &config={}, GranularOutput output=GranularOutput::STREAM)
 Offline granular pipeline using a span-level attribution lambda, terminating in a DynamicSoundStream.
 
template<typename CompleteFn >
void MayaFlux::Yantra::Granular::process_to_stream_async (const std::shared_ptr< GranularMatrix > &matrix, const std::shared_ptr< Kakshya::SignalSourceContainer > &container, AnalysisType analysis_type, CompleteFn &&on_complete, const GranularConfig &config={}, const std::string &qualifier={}, GranularOutput output=GranularOutput::STREAM)
 Async offline granular pipeline terminating in a DynamicSoundStream (AnalysisType path).
 
template<typename CompleteFn >
void MayaFlux::Yantra::Granular::process_to_stream_async (const std::shared_ptr< GranularMatrix > &matrix, const std::shared_ptr< Kakshya::SignalSourceContainer > &container, AttributeExecutor executor, CompleteFn &&on_complete, const GranularConfig &config={}, GranularOutput output=GranularOutput::STREAM)
 Async offline granular pipeline terminating in a DynamicSoundStream (AttributeExecutor path).