BufferDown
Overview
Buffers the input into smaller block sizes. Non-overlapping
Discussion
This module is the interface between large block processing and small block processing. The module breaks up large blocks of data into smaller blocks. The larger blocks are executed in a lower priority thread compared to the smaller blocks. The module works on any 32-bit data type including integer, fract32, and floating-point.
The argument OUTBLOCKSIZE determines the blockSize of the output pin. If OUTBLOCKSIZE is positive, then the output blockSize equals OUTBLOCKSIZE. If OUTBLOCKSIZE is negative, then the output blockSize equals the input blockSize divided by (-OUTBLOCKSIZE).
When the module is Bypassed, it behaves same as Active. i.e. module process function is called even when the module is bypassed, to make sure corresponding FiFoIn and FiFoOut module are in sync.
Note, not all targets support this. Check the target documentation to see how many levels of audio processing are supported.
Module Pack
Advanced
ClassID
classID =
Type Definition
typedef struct _ModuleBufferDown
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
} ModuleBufferDownClass;
Variables
Properties
| Name | Type | Usage | isHidden | Default Value | Range | Units |
|---|---|---|---|---|---|---|
| outBlockSize | int | const | 0 | -1 | Unrestricted |
Pins
Input Pins
| Name | in |
| Description | audio input |
| Data type | {float, int, fract32} |
| Channel range | Unrestricted |
| Block size range | Unrestricted |
| Sample rate range | Unrestricted |
| Complex support | Real and Complex |
Output Pins
| Name | out |
| Description | audio output |
| Data Type | {float, int, fract32} |
Matlab Usage
File Name: buffer_down_subsystem.m
SYS=buffer_down_subsystem(NAME, OUTBLOCKSIZE)
Create a module which buffers data into a smaller block size. The buffering
is non-overlapping and the downstream processing occurs at a higher block
rate. Arguments:
NAME - name of the module.
OUTBLOCKSIZE - specifies the blockSize of the output pin. If
OUTBLOCKSIZE is positive, then the output blockSize equals
OUTBLOCKSIZE. If OUTBLOCKSIZE is negative, then the output blockSize
equals the input blockSize times (-OUTBLOCKSIZE).
Copyright (c) 2026 DSP Concepts, Inc.