WAVInterp16OneShotSourceFract32
Overview
Periodic one shot WAV playback with linear interpolation
Discussion
Module Pack
Advanced
ClassID
classID = 1353
Type Definition
typedef struct _ModuleWAVInterp16OneShotSourceFract32
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
FLOAT32 smoothingTime; // Time constant of the smoothing process
INT32 circularBufferSize; // Size of the upstream circular buffer, in 16-bit words.
INT32 extensionSize; // Size of the extension region of the circular buffer, in 16-bit words
FLOAT32 currentFRatio; // Specifies rate at which audio is read from the input buffer
FLOAT32 smoothingCoeff; // Smoothing coefficient
INT32 fIndex; // 32-bit fractional state index
INT32 psObjectID; // Object ID of the upstream PeriodicStreaming module
ModuleInstanceDescriptor ** psObjectPtr; // Points to the upstream PeriodicStreaming module
void * pOwnerPtr; // Pointer to hold owner AWEInstance pointer
} ModuleWAVInterp16OneShotSourceFract32Class;
Variables
Properties
| Name |
Type |
Usage |
isHidden |
Default Value |
Range |
Units |
| smoothingTime |
float |
parameter |
0 |
10 |
0:1000 |
msec |
| circularBufferSize |
int |
const |
0 |
0 |
Unrestricted |
|
| extensionSize |
int |
parameter |
0 |
0 |
Unrestricted |
|
| currentFRatio |
float |
parameter |
1 |
1 |
Unrestricted |
|
| smoothingCoeff |
float |
derived |
1 |
0.09516 |
Unrestricted |
|
| fIndex |
int |
state |
1 |
0 |
Unrestricted |
|
| psObjectID |
int |
state |
1 |
-1 |
Unrestricted |
|
| psObjectPtr |
ModuleInstanceDescriptor ** |
state |
1 |
|
Unrestricted |
|
| pOwnerPtr |
void * |
state |
1 |
|
Unrestricted |
|
Pins
|
|
| Name |
ptr |
| Description |
Pointer to the streaming transfer object |
| Data type |
int |
| Channel range |
1 |
| Block size range |
1 |
| Sample rate range |
Unrestricted |
| Complex support |
Real |
|
|
| Name |
trigger |
| Description |
Boolean trigger signal |
| Data type |
int |
| Channel range |
1 |
| Block size range |
1 |
| Sample rate range |
Unrestricted |
| Complex support |
Real |
|
|
| Name |
fRatio |
| Description |
Specifies sample rate ratio |
| Data type |
float |
| Channel range |
1 |
| Block size range |
1 |
| Sample rate range |
Unrestricted |
| Complex support |
Real |
Output Pins
|
|
| Name |
out |
| Description |
output data |
| Data Type |
fract32 |
Matlab Usage
File Name: wav_interp16_oneshot_source_fract32_module.m
M=wav_interp16_oneshot_source_fract32_module(NAME, NUMCHANNELS, BLOCKSIZE, SAMPLERATE)
Creates a source module that connects to a streaming buffer module and outputs blocks
of data. The function includes linear interpolation allowing playback to be slowed down and
speeded up. This version uses 16-bit WAV data and a 32-bit fIndex register for efficient
implementation. This version is a "one shot player" in which the playback is triggered
by an input pin and then stops after the WAV data has been played once. Arguments:
NAME - name of the module.
NUMCHANNELS - number of interleaved channels in each output pin.
By default, NUMCHANNELS = 1;
BLOCKSIZE - number of samples per output channel. By default,
BLOCKSIZE = 32.
SAMPLERATE - sample rate of the output signal, in Hz. By default,
SAMPLERATE = 48000.
Copyright (c) 2026 DSP Concepts, Inc.