(8.D.2.5) Counter
Overview
Counter module with optional wrap around
Discussion
This module counts up starting from 0 at a specified rate in milliseconds. The count value is output as an integer value on the output pin. The module has an input pin whose only purpose is to get the current sample rate and blockSize. This information is used to determine the time base for the processing. The sample rate of the output pin equals the sample rate of the input divided by the input block size.
The module determine time by counting input samples. The hidden variable .sampleCounterPeriod equals the number of samples which most closely approximates .incTime.
The module variable .wrap can be used to implement circular wrapping. If .wrap = 0, then no wrapping is performed. If .wrap = N, then the module counts up to N-1 and then wraps to 0.
The internal module counter is initialized to 0 and the module outputs the sequence 0, 1, 2, ..., N-1, 0, 1, 2, ..., N-1, 0, etc.
When muted the module outputs all zeros. When bypassed the module continues to run.
Type Definition
typedef struct _ModuleCounter
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
FLOAT32 incTime; // Time in msec to wait between increments
UINT32 wrap; // Counting is performed modulo this value
UINT32 count; // Current counter value
UINT32 sampleCounter; // Internal variable used to maintain time
UINT32 sampleCounterPeriod; // Number of samples corresponding to incTime
} ModuleCounterClass;
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
incTime | float | parameter | 0 | 1000 | 0:10000 | msec |
wrap | uint | parameter | 0 | 5 | Unrestricted | Â |
count | uint | state | 0 | 0 | Unrestricted | Â |
sampleCounter | uint | state | 1 | 0 | Unrestricted | Â |
sampleCounterPeriod | uint | state | 1 | 48000 | Unrestricted | Â |
Pins
Input Pins
Name: in
Description: Ignored input
Data type: {float, int, fract32}
Channel range: Unrestricted
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
Output Pins
Name: count
Description: Count value
Data type: int
MATLAB Usage
File Name: counter_module.m
M = counter_module(NAME)
Audio Weaver module which counts up, and wraps around, at a specified
rate. The count value is output on a pin. Arguments:
NAME - name of the module
Â