Document toolboxDocument toolbox

(8.D.1.2) WaveIndexVector

Overview

Common index vector for looping wave player

Discussion

This module computes the common sample index vector based on the greatest common divisor of all wave files.

The input to the module can be either .fRatio or .RPM dependent on the useRPM argument.

The argument MAXRATE specifies the maximum playback rate in the units of playbackRatio or RPM. MAXRATE is used to determine the extension size of the circular index array. The module internally clips the value at to lie within the range [0 MAXRATE]. That is, if you exceed MAXRATE then the sound no longer increases in frequency (and you will not have buffer overrun artifacts). The module computes the sample-by-sample stride internally based on gcd(NUMWAVPLAYER), .rpm and the sample rate.

Type Definition

typedef struct _ModuleWaveIndexVector { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure INT32 smoothingTime; // Time constant of the pitch smoothing process INT32 smoothingFactor; // Update rate for smoothing coeffs (per block) INT32 maxIndex; // Usually length of the WAV file in samples INT32 numWavPlayer; // Size of base rate array FLOAT32 currentFStep; // Current (smoothed) rate FLOAT32 currentIndex; // Current vector index FLOAT32 maxRate; // Max rate or number of rotations in units of RPM FLOAT32 scaleFactor; // Inverse of the wave file rpm FLOAT32 smoothingCoeff; // Smoothing (pitch) coefficient INT32 vectorLength; // Length of the index table INT32* normRate; // Array of normalized playback rate / number of rotations of each wave player. } ModuleWaveIndexVectorClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

smoothingTime

int

parameter

0

10

0:1000

msec

smoothingFactor

int

parameter

0

4

1:512

 

maxIndex

int

const

0

48000

Unrestricted

 

numWavPlayer

int

const

0

2

Unrestricted

 

currentFStep

float

state

0

1

Unrestricted

 

currentIndex

float

state

0

0

Unrestricted

 

maxRate

float

const

1

1

Unrestricted

 

scaleFactor

float

const

1

0.01667

Unrestricted

 

smoothingCoeff

float

derived

1

0.1248

Unrestricted

 

vectorLength

int

derived

1

48000

Unrestricted

 

normRate

int*

parameter

0

[2 x 1]

Unrestricted

 

Pins

Input Pins

Name: ratio

Description: Specifies the playback speed

Data type: float

Channel range: 1

Block size range: 1

Sample rate range: Unrestricted

Complex support: Real

Output Pins

Name: index

Description: Sample index vector

Data type: float

MATLAB Usage

File Name: wave_index_vector_module.m