Oriented Noise Stimulus

Description

An oriented noise stimulus, as described in O’Rawe et al. 2023.

Each frame is generated by filtering an array of random pixels using a band-pass filter with variable orientation and spatial frequency. The result is a stimulus with constant mean orientation information, where pixel intensities change from frame to frame.

Random pixels are chosen independently from a uniform distribution, or can be passed into the stimulus as images. Supplying the random pixels as images allows precise control of each stimulus frame, for repeatability or reconstruction during data analysis.

Signature

stimulus/oriented_noise

Required Parameters

f_0

Peak spatial frequency. Must be greater than or equal to zero.

sigma_f

Standard deviation of spatial frequency around f_0. Must be greater than zero.

theta_0

Peak orientation (degrees). Must be between 0 and 180 (inclusive).

sigma_theta

Standard deviation of orientation around theta_0 (degrees). Must be greater than zero and less than or equal to 90.

Optional Parameters

directory_path

Path to directory containing base noise images. The images must be of uniform width and height. Additionally, the width and height (in pixels) of each image must be a power of two.

If omitted, random base noise will be generated every time the stimulus is drawn.

noise_image_selection

Options:
sequential
random_with_replacement
random_without_replacement
Default:

random_with_replacement

Method used to select base noise images from directory_path. If sequential is specified, images will be selected in lexicographic order by filename.

rand_seed

Seed value for the random number generator. If omitted, the current system time in nanoseconds is used.

color

Default:

1.0,1.0,1.0

The color of the stimulus, expressed as a comma-separated list of red, green, and blue components. Each component may be described by any valid expression, but the expression must result in a value between 0 and 1 (inclusive).

alpha_multiplier

Default:

1.0

By default, the alpha multiplier controls the transparency of the stimulus. 1.0 is fully opaque, while 0.0 is fully tranparent.

Changes to the parameters source_blend_factor and dest_blend_factor can alter how (or if) the alpha multiplier is used.

source_blend_factor

Options:
zero
one
source_color
one_minus_source_color
dest_color
one_minus_dest_color
source_alpha
one_minus_source_alpha
dest_alpha
one_minus_dest_alpha
Default:

source_alpha

Source blending factor.

The parameters source_blend_factor, dest_blend_factor, source_alpha_blend_factor, and dest_alpha_blend_factor provide detailed control over how the color components and alpha multiplier of each fragment of the stimulus (the “source”) are combined with the color and alpha values already present in the framebuffer (the “destination”), which in turn result from blending the stimulus display background with any stimuli drawn beneath the source stimulus. These parameters correspond directly to the four arguments of the OpenGL function glBlendFuncSeparate. Please refer to that function’s reference page for explanations of the different blend factor options.

Note: Irrespective of the blend factors used, the blend equation is always GL_FUNC_ADD.

dest_blend_factor

Default:

one_minus_source_alpha

Destination blending factor. Accepts the same values as source_blend_factor.

source_alpha_blend_factor

Source alpha blending factor. Accepts the same values as source_blend_factor.

If omitted, the value of source_blend_factor is used.

dest_alpha_blend_factor

Destination alpha blending factor. Accepts the same values as source_blend_factor.

If omitted, the value of dest_blend_factor is used.

x_size

Example:

5.0

Horizontal size (degrees).

If omitted, the value of y_size is used. It is an error to omit both x_size and y_size (unless fullscreen is YES).

y_size

Example:

5.0

Vertical size (degrees).

If omitted, the value of x_size is used. It is an error to omit both x_size and y_size (unless fullscreen is YES).

x_position

Default:

0.0

Horizontal center position (degrees)

y_position

Default:

0.0

Vertical center position (degrees)

rotation

Default:

0.0

Rotation (degrees)

fullscreen

Default:

NO

If YES, the stimulus is sized to fill the display. In this mode, x_size, y_size, x_position, y_position, and rotation are ignored.

deferred

Options:
no
yes
explicit
Default:

no

Controls when the stimulus is loaded. If no, the stimulus is loaded at experiment load time. If yes, the stimulus is loaded the first time it is queued. If explicit, the stimulus must be loaded explictly with Load Stimulus.

display

Name of the display on which the stimulus will be presented. If omitted, the default display (if available) will be used.

autoplay

Default:

NO

If YES, the stimulus will start playing automatically (as if by an implicit Play Dynamic Stimulus action) after it has been queued and Update Stimulus Display has been invoked. It will also stop playing automatically (as if by an implicit Stop Dynamic Stimulus action) after it has been dequeued and Update Stimulus Display is invoked.

Placement

Allowed at top level:

Yes

Allowed parent:

Compound Stimulus, Folder, Frame List Stimulus, Layer Stimulus, List Replicator, Movie Stimulus, Range Replicator, Stimulus Group