MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Kakshya Namespace Reference

Classes

struct  ContainerDataStructure
 Container structure for consistent dimension ordering. More...
 
class  ContiguousAccessProcessor
 
class  DataAccess
 Type-erased accessor for NDData with semantic view construction. More...
 
struct  DataConverter
 
struct  DataConverter< From, To, std::enable_if_t< ArithmeticData< From > &&ArithmeticData< To > &&!std::is_same_v< From, To > &&!GlmType< From > &&!GlmType< To > > >
 
struct  DataConverter< From, To, std::enable_if_t< ArithmeticData< From > &&ComplexData< To > &&!GlmType< From > &&!GlmType< To > > >
 
struct  DataConverter< From, To, std::enable_if_t< ArithmeticData< From > &&GlmType< To > &&!GlmType< From > > >
 
struct  DataConverter< From, To, std::enable_if_t< ComplexData< From > &&ArithmeticData< To > &&!GlmType< From > &&!GlmType< To > > >
 
struct  DataConverter< From, To, std::enable_if_t< ComplexData< From > &&ComplexData< To > &&!GlmType< From > &&!GlmType< To > &&!std::is_same_v< From, To > > >
 
struct  DataConverter< From, To, std::enable_if_t< GlmType< From > &&ArithmeticData< To > &&!GlmType< To > > >
 
struct  DataConverter< From, To, std::enable_if_t< GlmType< From > &&GlmType< To > &&!std::is_same_v< From, To > &&(glm_component_count< From >()==glm_component_count< To >())> >
 
struct  DataConverter< T, T >
 
struct  DataDimension
 Minimal dimension descriptor focusing on structure only. More...
 
class  DataInsertion
 Type-erased writer for NDData with semantic construction. More...
 
class  DataProcessingChain
 Manages collection of data processors or flexible, composable pipelines. More...
 
class  DataProcessor
 Interface for processing data within SignalSourceContainer objects. More...
 
class  DynamicRegionProcessor
 Extends RegionOrganizationProcessor with dynamic, runtime reorganization capabilities. More...
 
class  DynamicSoundStream
 Dynamic capacity streaming audio container with automatic resizing and circular buffering. More...
 
class  FileContainer
 Marker interface for containers backed by file storage (in-memory only). More...
 
class  NDDataContainer
 Abstract interface for N-dimensional data containers. More...
 
struct  OrganizedRegion
 A structured audio region with metadata and transition information. More...
 
struct  Region
 Represents a point or span in N-dimensional space. More...
 
struct  RegionCache
 Stores cached data for a region, with metadata for cache management. More...
 
class  RegionCacheManager
 Manages caching of region data for efficient access and eviction. More...
 
struct  RegionGroup
 Organizes related signal regions into a categorized collection. More...
 
struct  RegionHash
 
class  RegionOrganizationProcessor
 Data-driven processor for organizing and processing non-linear audio regions. More...
 
class  RegionProcessorBase
 Base class for N-dimensional region processors. More...
 
struct  RegionSegment
 Represents a discrete segment of audio data with caching capabilities. More...
 
class  SignalSourceContainer
 Data-driven interface for managing arbitrary processable signal sources. More...
 
class  SoundFileContainer
 File-backed audio container with complete streaming functionality. More...
 
class  SoundStreamContainer
 Concrete base implementation for streaming audio containers. More...
 
class  StreamContainer
 Data-driven interface for temporal stream containers with navigable read position. More...
 
class  StructuredView
 Span-like view that interprets flat data as structured types (glm::vec3, etc.) More...
 
struct  VertexAttributeLayout
 Semantic description of a single vertex attribute. More...
 
struct  VertexLayout
 Complete description of vertex data layout in a buffer. More...
 

Typedefs

using DataVariant = std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > >
 Multi-type data storage for different precision needs.
 
using RegionOrganizer = std::function< void(std::vector< OrganizedRegion > &, std::shared_ptr< SignalSourceContainer >)>
 Function type for dynamic region reorganization.
 

Enumerations

enum class  GpuDataFormat : uint8_t {
  FLOAT32 , VEC2_F32 , VEC3_F32 , VEC4_F32 ,
  FLOAT64 , VEC2_F64 , VEC3_F64 , VEC4_F64 ,
  INT32 , UINT32
}
 GPU data formats with explicit precision levels. More...
 
enum class  MemoryLayout : uint8_t { ROW_MAJOR , COLUMN_MAJOR }
 Memory layout for multi-dimensional data. More...
 
enum class  OrganizationStrategy : uint8_t { INTERLEAVED , PLANAR , HYBRID , USER_DEFINED }
 Data organization strategy for multi-channel/multi-frame data. More...
 
enum class  DataModality : uint8_t {
  AUDIO_1D , AUDIO_MULTICHANNEL , IMAGE_2D , IMAGE_COLOR ,
  VIDEO_GRAYSCALE , VIDEO_COLOR , TEXTURE_2D , TENSOR_ND ,
  SPECTRAL_2D , VOLUMETRIC_3D , VERTEX_POSITIONS_3D , VERTEX_NORMALS_3D ,
  VERTEX_TANGENTS_3D , VERTEX_COLORS_RGB , VERTEX_COLORS_RGBA , TEXTURE_COORDS_2D ,
  TRANSFORMATION_MATRIX , UNKNOWN
}
 Data modality types for cross-modal analysis. More...
 
enum class  RegionSelectionPattern : uint8_t {
  ALL , SEQUENTIAL , RANDOM , ROUND_ROBIN ,
  WEIGHTED , OVERLAP , EXCLUSIVE , CUSTOM
}
 Describes how regions are selected for processing or playback. More...
 
enum class  RegionTransition : uint8_t {
  IMMEDIATE , CROSSFADE , OVERLAP , GATED ,
  CALLBACK
}
 Describes how transitions between regions are handled. More...
 
enum class  RegionState : uint8_t {
  IDLE , LOADING , READY , ACTIVE ,
  TRANSITIONING , UNLOADING
}
 Processing state for regions. More...
 
enum class  ProcessingState : uint8_t {
  IDLE , READY , PROCESSING , PROCESSED ,
  NEEDS_REMOVAL , ERROR
}
 Represents the current processing lifecycle state of a container. More...
 

Functions

std::string_view modality_to_string (DataModality modality)
 Convert DataModality enum to string representation.
 
bool is_structured_modality (DataModality modality)
 Check if a modality represents structured data (vectors, matrices).
 
bool is_segment_complete (const OrganizedRegion &region, size_t segment_index)
 
std::unordered_map< std::string, std::any > extract_processing_state_info (const std::shared_ptr< SignalSourceContainer > &container)
 Extract processing state information from container.
 
std::unordered_map< std::string, std::any > extract_processor_info (const std::shared_ptr< SignalSourceContainer > &container)
 Extract processor information from container.
 
bool transition_state (ProcessingState &current_state, ProcessingState new_state, std::function< void()> on_transition=nullptr)
 Perform a state transition for a ProcessingState, with optional callback.
 
std::unordered_map< std::string, std::any > analyze_access_pattern (const Region &region, const std::shared_ptr< SignalSourceContainer > &container)
 Determine optimal memory access pattern for region.
 
DataVariant extract_channel_data (const std::shared_ptr< SignalSourceContainer > &container, uint32_t channel_index)
 Extract data from a specific channel.
 
std::pair< std::shared_ptr< SignalSourceContainer >, std::vector< DataDimension > > validate_container_for_analysis (const std::shared_ptr< SignalSourceContainer > &container)
 Validates container for analysis operations with comprehensive checks.
 
std::vector< std::span< double > > extract_numeric_data (const std::shared_ptr< SignalSourceContainer > &container)
 Extracts numeric data from container with fallback handling.
 
void validate_numeric_data_for_analysis (const std::vector< double > &data, const std::string &operation_name, size_t min_size=1)
 Validates numeric data for analysis operations.
 
template<typename T >
std::vector< T > interleave_channels (const std::vector< std::vector< T > > &channels)
 Interleave multiple channels of data into a single vector.
 
template<typename T >
std::vector< std::vector< T > > deinterleave_channels (std::span< const T > interleaved, size_t num_channels)
 Deinterleave a single vector into multiple channels.
 
uint64_t coordinates_to_linear (const std::vector< uint64_t > &coords, const std::vector< DataDimension > &dimensions)
 Convert N-dimensional coordinates to a linear index for interleaved data.
 
std::vector< uint64_t > linear_to_coordinates (uint64_t index, const std::vector< DataDimension > &dimensions)
 Convert a linear index to N-dimensional coordinates for interleaved data.
 
std::vector< uint64_t > calculate_strides (const std::vector< DataDimension > &dimensions)
 Calculate memory strides for each dimension (row-major order).
 
bool validate_region_bounds (const Region &region, const std::vector< DataDimension > &dimensions)
 Validate region bounds against container dimensions.
 
bool validate_slice_bounds (const std::vector< uint64_t > &slice_start, const std::vector< uint64_t > &slice_end, const std::vector< DataDimension > &dimensions)
 Validate slice coordinates against container bounds.
 
void clamp_coordinates_to_bounds (std::vector< uint64_t > &coords, const std::vector< DataDimension > &dimensions)
 Clamp coordinates to valid container bounds.
 
std::vector< uint64_t > transform_coordinates (const std::vector< uint64_t > &coords, const std::vector< double > &scale_factors={}, const std::vector< int64_t > &offset_values={}, const std::unordered_map< std::string, std::any > &rotation_params={})
 Transform coordinates using scaling, translation, rotation.
 
std::vector< uint64_t > wrap_position_with_loop (const std::vector< uint64_t > &position, const Region &loop_region, bool looping_enabled)
 Wrap a position within loop boundaries if looping is enabled.
 
std::vector< uint64_t > advance_position (const std::vector< uint64_t > &current_positions, uint64_t frames_to_advance, const ContainerDataStructure &structure, bool looping_enabled, const Region &loop_region)
 Advance current positions by a number of frames, with optional looping.
 
std::vector< uint64_t > advance_position (const std::vector< uint64_t > &current_positions, const std::vector< uint64_t > &frames_per_channel, const ContainerDataStructure &structure, bool looping_enabled, const Region &loop_region)
 Advance current positions by specified frames per channel, with optional looping.
 
uint64_t time_to_position (double time, double sample_rate)
 Convert time (seconds) to position (samples/frames) given a sample rate.
 
double position_to_time (uint64_t position, double sample_rate)
 Convert position (samples/frames) to time (seconds) given a sample rate.
 
uint64_t calculate_frame_size_for_dimension (const std::vector< DataDimension > &dimensions, size_t primary_dim=0)
 Calculate the frame size for a specific primary dimension.
 
std::unordered_map< std::string, std::any > create_coordinate_mapping (const std::shared_ptr< SignalSourceContainer > &container)
 Create coordinate mapping information for container.
 
std::vector< int > extract_dimension_roles (const std::vector< DataDimension > &dimensions)
 Extract dimension roles as integers.
 
std::vector< uint64_t > extract_dimension_sizes (const std::vector< DataDimension > &dimensions)
 Extract dimension sizes.
 
std::vector< std::unordered_map< std::string, std::any > > create_dimension_info (const std::vector< DataDimension > &dimensions)
 Create structured dimension information.
 
std::pair< size_t, uint64_t > coordinates_to_planar_indices (const std::vector< uint64_t > &coords, const std::vector< DataDimension > &dimensions)
 Convert coordinates to planar indices (channel vector + frame index).
 
uint64_t calculate_total_elements (const std::vector< DataDimension > &dimensions)
 Calculate the total number of elements in an N-dimensional container.
 
uint64_t calculate_frame_size (const std::vector< DataDimension > &dimensions)
 Calculate the frame size (number of elements per frame) for a set of dimensions.
 
std::type_index get_variant_type_index (const DataVariant &data)
 Get type index from DataVariant.
 
void safe_copy_data_variant (const DataVariant &input, DataVariant &output)
 Safely copy data from a DataVariant to another DataVariant, handling type conversion.
 
void set_metadata_value (std::unordered_map< std::string, std::any > &metadata, const std::string &key, std::any value)
 Set a value in a metadata map (key-value).
 
int find_dimension_by_role (const std::vector< DataDimension > &dimensions, DataDimension::Role role)
 Find the index of a dimension by its semantic role.
 
DataModality detect_data_modality (const std::vector< DataDimension > &dimensions)
 Detects data modality from dimension information.
 
std::vector< DataDimensiondetect_data_dimensions (const DataVariant &data)
 Detect data dimensions from a DataVariant.
 
std::vector< DataDimensiondetect_data_dimensions (const std::vector< DataVariant > &variants)
 
template<ProcessableData T>
constexpr std::span< T > extract_frame (std::span< T > data, uint64_t frame_index, uint64_t frame_size) noexcept
 Extract a single frame of data from a span.
 
template<ProcessableData T>
std::span< T > extract_frame (const std::vector< std::span< T > > &channel_spans, uint64_t frame_index, std::vector< T > &output_buffer) noexcept
 Extract a single frame from planar data (returns interleaved).
 
template<typename From , typename To >
std::span< To > convert_data (std::span< From > source, std::vector< To > &storage, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Convert a span of one data type to another (with type conversion).
 
template<typename From , typename To >
requires (ComplexData<From> && ArithmeticData<To>)
void convert_complex (std::span< From > source, std::span< To > destination, Utils::ComplexConversionStrategy strategy)
 Legacy interface - redirects to convert_data.
 
template<ProcessableData T>
std::span< T > convert_variant (DataVariant &variant, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Get const span from DataVariant without conversion (zero-copy for matching types)
 
template<ProcessableData T>
std::span< T > convert_variant (const DataVariant &variant, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 
template<ProcessableData T>
std::vector< std::span< T > > convert_variants (const std::vector< DataVariant > &variants, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 
template<ProcessableData From, ProcessableData To>
std::span< To > extract_data (std::span< const From > source, std::vector< To > &destination, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Concept-based data extraction with type conversion.
 
template<ProcessableData T>
std::span< T > extract_from_variant (const DataVariant &variant, std::vector< T > &storage, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Get typed span from DataVariant using concepts.
 
template<typename T >
std::optional< T > extract_from_variant_at (const DataVariant &variant, uint64_t pos)
 Extract a value of type T from a DataVariant at a specific position.
 
std::span< const double > safe_copy_data_variant_to_span (const DataVariant &input, std::vector< double > &output)
 Safely copy data from a DataVariant to a span of doubles.
 
template<typename T >
void safe_copy_typed_variant (const DataVariant &input, DataVariant &output)
 Safely copy data from a DataVariant to another DataVariant of a specific type.
 
std::span< double > convert_variant_to_double (DataVariant &data, Utils::ComplexConversionStrategy strategy=Utils::ComplexConversionStrategy::MAGNITUDE)
 Convert variant to double span.
 
template<typename T >
std::optional< T > get_metadata_value (const std::unordered_map< std::string, std::any > &metadata, const std::string &key)
 Get a value from a metadata map by key.
 
std::vector< Kakshya::DataDimensiondetect_data_dimensions (const std::vector< Kakshya::DataVariant > &variants)
 Detect data dimensions from a vector of DataVariants.
 
void set_region_attribute (Region &region, const std::string &key, std::any value)
 Set an attribute value on a Region.
 
std::vector< Regionfind_regions_with_label (const RegionGroup &group, const std::string &label)
 Find all regions in a RegionGroup with a given label.
 
std::vector< Regionfind_regions_with_attribute (const RegionGroup &group, const std::string &key, const std::any &value)
 Find all regions in a RegionGroup with a specific attribute value.
 
std::vector< Regionfind_regions_containing_coordinates (const RegionGroup &group, const std::vector< uint64_t > &coordinates)
 Find all regions in a RegionGroup that contain the given coordinates.
 
Region translate_region (const Region &region, const std::vector< int64_t > &offset)
 Translate a Region by an offset vector.
 
Region scale_region (const Region &region, const std::vector< double > &factors)
 Scale a Region about its center by the given factors.
 
Region get_bounding_region (const RegionGroup &group)
 Get the bounding region that contains all regions in a RegionGroup.
 
void sort_regions_by_dimension (std::vector< Region > &regions, size_t dimension)
 Sort a vector of Regions by a specific dimension.
 
void sort_regions_by_attribute (std::vector< Region > &regions, const std::string &attr_name)
 Sort a vector of Regions by a specific attribute (numeric).
 
void add_reference_region (std::vector< std::pair< std::string, Region > > &refs, const std::string &name, const Region &region)
 Add a named reference region to a reference list.
 
void remove_reference_region (std::vector< std::pair< std::string, Region > > &refs, const std::string &name)
 Remove a named reference region from a reference list.
 
std::optional< Regionget_reference_region (const std::vector< std::pair< std::string, Region > > &refs, const std::string &name)
 Get a named reference region from a reference list.
 
std::vector< std::pair< std::string, Region > > find_references_in_region (const std::vector< std::pair< std::string, Region > > &refs, const Region &region)
 Find all references in a reference list that overlap a given region.
 
void add_region_group (std::unordered_map< std::string, RegionGroup > &groups, const RegionGroup &group)
 Add a RegionGroup to a group map.
 
std::optional< RegionGroupget_region_group (const std::unordered_map< std::string, RegionGroup > &groups, const std::string &name)
 Get a RegionGroup by name from a group map.
 
void remove_region_group (std::unordered_map< std::string, RegionGroup > &groups, const std::string &name)
 Remove a RegionGroup by name from a group map.
 
Region calculate_output_region (const std::vector< uint64_t > &current_pos, const std::vector< uint64_t > &output_shape)
 Calculate output region bounds from current position and shape.
 
Region calculate_output_region (uint64_t current_frame, uint64_t frames_to_process, const std::shared_ptr< SignalSourceContainer > &container)
 Calculate output region for frame-based processing.
 
bool is_region_access_contiguous (const Region &region, const std::shared_ptr< SignalSourceContainer > &container)
 Check if region access will be contiguous in memory.
 
std::vector< std::unordered_map< std::string, std::any > > extract_all_regions_info (const std::shared_ptr< SignalSourceContainer > &container)
 Extract all regions from container's region groups.
 
std::unordered_map< std::string, std::any > extract_group_bounds_info (const RegionGroup &group)
 Extract bounds information from region group.
 
std::vector< std::unordered_map< std::string, std::any > > extract_segments_metadata (const std::vector< RegionSegment > &segments)
 Extract metadata from region segments.
 
std::unordered_map< std::string, std::any > extract_region_bounds_info (const Region &region)
 Extract structured bounds information from region.
 
std::optional< size_t > find_region_for_position (const std::vector< uint64_t > &position, const std::vector< Region > &regions)
 Find optimal region containing given position.
 
std::optional< size_t > find_region_for_position (const std::vector< uint64_t > &position, std::vector< OrganizedRegion > regions)
 Find the index of the region containing the given position.
 
Region remove_channel_dimension (const Region &region, const std::vector< DataDimension > &dimensions)
 Remove the channel dimension from a Region.
 
std::vector< DataDimensionget_non_channel_dimensions (const std::vector< DataDimension > &dimensions)
 Get all non-channel dimensions from a list of dimensions.
 
template<typename T >
std::vector< T > flatten_channels (const std::vector< std::vector< T > > &channel_data)
 Flatten a vector of channel data into a single vector.
 
template<typename T >
std::vector< T > extract_region_data (const std::span< const T > &source_data, const Region &region, const std::vector< DataDimension > &dimensions)
 Extract a region of data from a flat data span using a Region and dimension info.
 
template<typename T >
std::vector< std::vector< T > > extract_region_data (const std::vector< std::span< const T > > &source_data, const Region &region, const std::vector< DataDimension > &dimensions, bool flatten=false)
 Extract region data from planar storage (separate per channel/variant)
 
template<typename T >
std::vector< std::vector< T > > extract_group_data (const std::vector< std::span< const T > > &source_spans, const RegionGroup &group, const std::vector< DataDimension > &dimensions, OrganizationStrategy organization)
 Extract data for multiple regions from multi-channel source data.
 
template<typename T >
std::vector< std::vector< T > > extract_segments_data (const std::vector< RegionSegment > &segments, const std::vector< std::span< const T > > &source_spans, const std::vector< DataDimension > &dimensions, OrganizationStrategy organization)
 Extract data for multiple segments from multi-channel source data.
 
template<typename T >
std::vector< T > extract_region (const std::vector< T > &data, const Region &region, const std::vector< DataDimension > &dimensions)
 Extract a region of data from a vector using a Region and dimension info.
 
template<typename T >
std::vector< std::vector< T > > extract_region (const std::vector< std::vector< T > > &source_data, const Region &region, const std::vector< DataDimension > &dimensions)
 Extract a region of data from vector of vectors (planar data).
 
template<typename T >
auto extract_region_data (const std::vector< std::span< const T > > &source_spans, const Region &region, const std::vector< DataDimension > &dimensions, OrganizationStrategy organization)
 Extract a region of data with organization strategy.
 
template<typename T >
void set_or_update_region_data (std::span< T > dest_data, std::span< const T > source_data, const Region &region, const std::vector< DataDimension > &dimensions)
 Write or update a region of data in a flat data span (interleaved).
 
template<typename T >
void set_or_update_region_data (std::vector< std::span< T > > &dest_spans, const std::vector< std::span< const T > > &source_data, const Region &region, const std::vector< DataDimension > &dimensions)
 Write or update a region of data in planar storage.
 
template<typename T >
void set_or_update_region_data (std::vector< std::span< T > > &dest_spans, const std::vector< std::span< const T > > &source_data, const Region &region, const std::vector< DataDimension > &dimensions, OrganizationStrategy organization)
 Write or update a region of data with organization strategy.
 
uint64_t calculate_region_size (const Region &region)
 Calculate the total number of elements in a region.
 
template<typename T >
std::optional< T > get_region_attribute (const Region &region, const std::string &key)
 Get an attribute value from a Region by key.