Skip to content

BufferUp

Overview

Buffers the input into larger block sizes. Non-overlapping

Discussion

This module is the interface between small block processing and large block processing. The module buffers up small blocks of data into larger non-overlapping 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 module is similar to the rebuffer_module.m. The rebuffer_module buffers up into OVERLAPPING blocks while this module buffers up into NONOVERLAPPING blocks.

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 times (-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 _ModuleBufferUp
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
} ModuleBufferUpClass;

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_up_subsystem.m 
 SYS=buffer_up_subsystem(NAME, OUTBLOCKSIZE) 
 Create a module which buffers up data into a larger block size.  The buffering 
 is non-overlapping and the downstream processing occurs at a decimated block  
 rate.  Arguments: 
    NAME - name of the module. 
    OUTBLOCKSIZE - specifies the blockSize of the output pin.  If OUTBLOCKSIZE 
       is positive, then the blockSize of the output pin equals OUTBLOCKSIZE. 
       If OUTBLOCKSIZE is negative, then the blockSize of the output pin equals 
       (-OUTBLOCKSIZE) times the blockSize of the input pin. 

Copyright (c) 2026 DSP Concepts, Inc.