Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
ridged_noise.h File Reference

Ridged fractal stimulus built from a centered squared ridge profile. More...

#include "coords.h"
#include "oakfield/operator_split.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
Include dependency graph for ridged_noise.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SimStimulusRidgedNoiseConfig
 Configuration for seeded ridged fractal noise stimuli. More...
 

Typedefs

typedef struct SimStimulusRidgedNoiseConfig SimStimulusRidgedNoiseConfig
 Configuration for seeded ridged fractal noise stimuli.
 

Functions

SimResult sim_add_stimulus_ridged_noise_operator (struct SimContext *context, const SimStimulusRidgedNoiseConfig *config, size_t *out_index)
 Register a ridged fractal noise stimulus operator.
 
SimResult sim_stimulus_ridged_noise_config (struct SimContext *context, size_t operator_index, SimStimulusRidgedNoiseConfig *out_config)
 Copy the current ridged-noise configuration from a registered operator.
 
SimResult sim_stimulus_ridged_noise_update (struct SimContext *context, size_t operator_index, const SimStimulusRidgedNoiseConfig *config)
 Replace or renormalize a registered ridged-noise stimulus configuration.
 

Detailed Description

Ridged fractal stimulus built from a centered squared ridge profile.

Synthesizes narrow multi-octave ridges using R(x) = sum_o A 2^{-H o} ((1 - |cos(2*pi*lambda^o*x + phi_o)|)^2 - mean_r).

For complex fields, the imaginary channel uses the corresponding centered squared ridge profile of the sine basis.

Function Documentation

◆ sim_add_stimulus_ridged_noise_operator()

SimResult sim_add_stimulus_ridged_noise_operator ( struct SimContext context,
const SimStimulusRidgedNoiseConfig config,
size_t *  out_index 
)

Register a ridged fractal noise stimulus operator.

The implementation copies and normalizes config, initializes octave phases from the configured seed, and registers the ridged-noise operator.

Parameters
contextSimulation context that will own the operator.
configOptional ridged-noise configuration; NULL selects normalized defaults.
[out]out_indexOptional destination for the registered operator index.
Returns
SIM_RESULT_OK on success, or an error code from validation, allocation, octave setup, or split-operator registration.

◆ sim_stimulus_ridged_noise_config()

SimResult sim_stimulus_ridged_noise_config ( struct SimContext context,
size_t  operator_index,
SimStimulusRidgedNoiseConfig out_config 
)

Copy the current ridged-noise configuration from a registered operator.

Parameters
contextSimulation context containing the operator.
operator_indexIndex returned by sim_add_stimulus_ridged_noise_operator().
[out]out_configReceives the operator's normalized configuration.
Returns
SIM_RESULT_OK on success, SIM_RESULT_INVALID_ARGUMENT for NULL pointers, SIM_RESULT_NOT_FOUND for a missing operator, or SIM_RESULT_INVALID_STATE when the operator has no stimulus state.

◆ sim_stimulus_ridged_noise_update()

SimResult sim_stimulus_ridged_noise_update ( struct SimContext context,
size_t  operator_index,
const SimStimulusRidgedNoiseConfig config 
)

Replace or renormalize a registered ridged-noise stimulus configuration.

Passing NULL for config keeps the existing configuration and reapplies normalization. A successful update refreshes octave data and invalidates the scheduler plan.

Parameters
contextSimulation context containing the operator.
operator_indexIndex of the ridged-noise operator to update.
configOptional replacement configuration.
Returns
SIM_RESULT_OK on success, or an error code if lookup, octave setup, or state validation fails.