Skip to main content
Skip table of contents

TriggeredFileSink

Overview

Writes data to a WAV file when triggered

Discussion

This modules writes a few seconds of audio to a file once the trigger signal is asserted. This module only works under Windows and Linux and is not available on embedded targets. You specify the number of seconds to record as a module argument. The module records any number of channels and the first written is in WAV format with 32-bit integer samples. The module accepts any type of input audio data and converts to fract32 as it is recording.

The module has two input pins. The first is the trigger and has 1 channel of integer data. When the first sample of the trigger signal is non zero, the module will start storing data to an internal state buffer. The module stores data for the number of seconds specified as a module argument. Once the data is stored, the data will be written to the output file in the module's set function. After the WAV file is written the module can be triggered again.

Type Definition

CODE
typedef struct _ModuleTriggeredFileSink
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    INT32 fileIndex;                              // Index of file to record
    INT32 samplesStored;                          // Number of samples stored in the state buffer
    INT32 recordingActive;                        // Indicates whether we are actively recording a file
    INT32 errorCode;                              // Return error condition
    FLOAT32 duration;                             // Length of each recording, in seconds
    INT32 durationSamples;                        // Length of each recording, in samples
    INT32 fullFileSize;                           // Size of the array to hold the full file path of the output .wav file
    INT32 dataType;                               // Data type of the input pin
    INT32* fullFileName;                          // Complete file path of the output .wav file to be written data
    fract32* state;                               // Stores data prior to writing to disk
} ModuleTriggeredFileSinkClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

BlockSize

int

const

0

32

Unrestricted

NumChannels

int

const

0

1

Unrestricted

SampleRate

float

const

0

48000

Unrestricted

IsComplex

int

const

0

0

Unrestricted

enable

int

parameter

1

0

Unrestricted

value

float*

state

0

[32 x 1]

Unrestricted

yRange

float*

parameter

0

[1 x 2]

Unrestricted

Pins

Input Pins

Name: trigger

Description: triggers recording

Data type: int

Channel range: 1

Block size range: 1

Sample rate range: Unrestricted

Complex support: Real

Name: in

Description: audio input

Data type: {float, int, fract32}

Channel range: Unrestricted

Block size range: Unrestricted

Sample rate range: Unrestricted

Complex support: Real

MATLAB Usage

File Name: triggered_file_sink_module.m

CODE
 M = triggered_file_sink_module(NAME, DURATION, FILEPATH, BASENAME)
 This module writes data to disk for a specified number of seconds.  The write
 is triggered by an external pin and the file name is incremented each time
 allowing multiple files to be written.
 
 Arguments:
    NAME - name of the module.
    DURATION - duration, in seconds, to record (By default = 1.0 for one
         second.)
    FILEPATH - File path where the output .csv file will be created.
    BASENAME - Base name of the output file.  The final file name
         used is of the form:  BASENAME_0000.wav, BASENAME_0001.wav, etc.
 The internal variable .duration controls how many seconds of audio
 are recorded per trigger.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.