MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
UniversalExtractor.hpp File Reference

Modern, digital-first universal extractor framework for Maya Flux. More...

+ Include dependency graph for UniversalExtractor.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MayaFlux::Yantra::UniversalExtractor< InputType, OutputType >
 Template-flexible extractor base with instance-defined I/O types. More...
 

Namespaces

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

Typedefs

template<ComputeData OutputType = Kakshya::DataVariant>
using MayaFlux::Yantra::DataExtractor = UniversalExtractor< std::vector< Kakshya::DataVariant >, OutputType >
 Extractor that takes DataVariant and produces any ComputeData type.
 
template<ComputeData OutputType = std::shared_ptr<Kakshya::SignalSourceContainer>>
using MayaFlux::Yantra::ContainerExtractor = UniversalExtractor< std::shared_ptr< Kakshya::SignalSourceContainer >, OutputType >
 Extractor for signal container processing.
 
template<ComputeData OutputType = Kakshya::Region>
using MayaFlux::Yantra::RegionExtractor = UniversalExtractor< Kakshya::Region, OutputType >
 Extractor for region-based extraction.
 
template<ComputeData OutputType = Kakshya::RegionGroup>
using MayaFlux::Yantra::RegionGroupExtractor = UniversalExtractor< Kakshya::RegionGroup, OutputType >
 Extractor for region group processing.
 
template<ComputeData OutputType = std::vector<Kakshya::RegionSegment>>
using MayaFlux::Yantra::SegmentExtractor = UniversalExtractor< std::vector< Kakshya::RegionSegment >, OutputType >
 Extractor for segment processing.
 
template<ComputeData InputType = std::vector<Kakshya::DataVariant>>
using MayaFlux::Yantra::MatrixExtractor = UniversalExtractor< InputType, Eigen::MatrixXd >
 Extractor that produces Eigen matrices.
 
template<ComputeData InputType = std::vector<Kakshya::DataVariant>>
using MayaFlux::Yantra::VectorExtractor = UniversalExtractor< InputType, Eigen::VectorXd >
 Extractor that produces Eigen vectors.
 
template<ComputeData InputType = std::vector<Kakshya::DataVariant>>
using MayaFlux::Yantra::NumericExtractor = UniversalExtractor< InputType, std::vector< double > >
 Extractor that produces numeric vectors.
 

Enumerations

enum class  MayaFlux::Yantra::ExtractionType : uint8_t {
  MayaFlux::Yantra::DIRECT , MayaFlux::Yantra::REGION_BASED , MayaFlux::Yantra::FEATURE_GUIDED , MayaFlux::Yantra::PATTERN_BASED ,
  MayaFlux::Yantra::TRANSFORM , MayaFlux::Yantra::RECURSIVE , MayaFlux::Yantra::CUSTOM
}
 Categories of extraction operations for discovery and organization. More...
 
enum class  MayaFlux::Yantra::ExtractionScope : uint8_t { MayaFlux::Yantra::FULL_DATA , MayaFlux::Yantra::TARGETED_REGIONS , MayaFlux::Yantra::FILTERED_CONTENT , MayaFlux::Yantra::SAMPLED_DATA }
 Scope control for extraction operations. More...
 

Detailed Description

Modern, digital-first universal extractor framework for Maya Flux.

The UniversalExtractor system provides a clean, extensible foundation for data extraction in the Maya Flux ecosystem. Unlike traditional feature extractors, this focuses on digital-first paradigms: data-driven workflows, composability, and type safety.

Core Philosophy

An extractor gives the user a specified ComputeData through two main pathways:

  1. Direct extraction: Using convert_data/extract from DataUtils
  2. Copy extraction: Copy data via extract in DataUtils

Concrete extractors can optionally integrate with analyzers when they need to extract regions/features identified by analysis.

Key Features

  • Universal input/output: Template-based I/O types defined at instantiation
  • Type-safe extraction: C++20 concepts and compile-time guarantees
  • Extraction strategies: Direct, region-based, feature-guided, recursive
  • Composable operations: Integrates with ComputeMatrix execution modes
  • Digital-first design: Embraces computational possibilities beyond analog metaphors

Usage Examples

// Extract specific data type from DataVariant
auto extractor = std::make_shared<MyExtractor<Kakshya::DataVariant, std::vector<double>>>();
// Extract matrix from container
auto matrix_extractor = std::make_shared<MyExtractor<
std::shared_ptr<Kakshya::SignalSourceContainer>,
Eigen::MatrixXd>>();

Definition in file UniversalExtractor.hpp.