AWE Core / AWE Core OS Release Notes
AWECore 8.D.13, AWECoreOS 8.B.23
2025-Dec-31
New Features
-
Added a new optional callback in AWEInstance which is called post destroy from the AWECore. Targets can use this callback to free any resources outside Audio Weaver
-
New modules, FIRV2 and FIRNChanV2 were added with a support for hardware accelerators selection, if available
-
Added a new ProfileThread module to support profiling of threads running outside of the Audio Weaver in a custom module
-
Added a new AlignmentDelay module. This module will align multiple input pins to have same delay at the output
-
Added subcanvas feature with new modules: Subcanvas, SubcanvasParamGet, SubcanvasParamSet, SubcanvasArrayGet and SubcanvasArraySet
-
Added support to access module arguments in the M.arg.varName format
-
Added a new MemoryLoadingV2 module with support to select a heap name and a run time control to switch between reading and writing. This module can now run on the shared heap memory
Enhancements
-
Added more logs in AWECore for debug purposes
-
Updated SystemVariable module to provide information of the layout (thread) in which the module is running. Previously, it always provided the primary layout info regardless of the thread it was running in
-
Added support for a maximum of 32 threads per instance. Previously, there was a limit of a maximum of 15 threads per instance
-
Added more validation to the module access functions to avoid invalid operations
-
Improved AWB loading time
Bug Fixes
-
Fixed a potential bug of corrupted status on the control pin in the ActivationMuteControl module
-
Fixed a bug in the server tuning proxies when reading a file from the target flash file system. The server no longer crashes when reading a file from the target flash file system
-
Fixed a bug in extracting the file name in awe_loadAWBfromFlash
-
Undeprecated the interleaved sink module, which is useful for the Subcanvas feature ArrayGet
-
Fixed issues with shared bit fields in AWECore flags to make them thread safe
-
Fixed a bug in the server when connected to a target while it is booting. The server now fails gracefully if the target is not ready
-
Updated the RMS module inspector text to indicate the value is in dB units
-
Improved file search ability in Native targets
-
Fixed a bug in the multi-instance Native target where the latency between two instances was not constant
-
Fixed a bug in creating a lookup table with correct size to store layout objects
-
Updated WaveFileSink and WaveFileSource modules to handle underflow/overflows more efficiently
-
Fixed an issue in loading AWB from the flash when the layout contains multiple flash based wave players
-
Fixed a SoftClip module inspector issue with currentGain. It is now displayed as a meter instead of a slider
-
Fixed issues with the deferred processing of modules in CRUS. No module will miss deferred processing now
-
Fixed a bug in the SbSmooth module when a custom window type is selected
-
Fixed a bug in the DelayNChanV2 module maxDelay parameter usage. The maximum delay setting is now an argument in the module
-
Updated Modulelist.h generation to avoid dependency on other header files
-
Fixed a bug in AWECore where the audio pump failed to start after an overflow occurred and a reset happened under certain conditions
AWECore 8.D.12, AWECoreOS 8.B.22
2025-Jun-30
New Features
-
Added support for fract16 wires, and created fract16 Source and Sink modules. Also updated TypeConvert, Interleave and Deinterleave to support fract16 inputs/outputs
-
New ScalerNSymmetricFadingN module supports per-channel fading times
-
New ParamGetV2 module will use correct mask value when calling module Get function
-
Added detection and clean recovery in case of an instance crashing in multi-instance systems. This includes the new ChangeThreadV2 module
-
New callback to forward tuning packets in multi-instance systems. Can be used rather than polling
-
Added a new API to check if all instances are started or not in a multi-instance system
-
Added support for loading module packs dynamically by creating a linked list of module tables. Also added AWEPlugin library to help with loading libraries on target
Enhancements
-
Added ability to attenuate the tone level in the evaluation timeout beeps
-
Improved the accuracy of coefficient calculations for Biquad HP (high precision) modules
Bug Fixes
-
Fixed potential crash in AWECoreOS when lifetimes of multiple instances do not overlap
-
Fixed memory corruption issue with AWECoreOS logging callbacks while loading AWBs
-
Improved the implementation of some reference applications to have cleaner shutdowns
-
Fixed a crash issue on SMP systems using multi-instance that don't support TLS keyword
-
Fixed an issue with profiling being incorrect on multi-instance targets when tuning master instance is > 0
-
Added support for correctly profiling memory usage for modules that allocate memory in Set functions
-
Corrected sampleRate calculation in SweepGen module when the triggerPin argument is true
-
Fixed an audio glitch in MuteLinearFade module when quickly changing the gain value
-
Updated CRUS to support modules that use flash file system
-
Refactored Meter module for improved performance on some targets
-
Improved module documentation for Source and Sink modules
-
Fixed biquad module documentation to differentiate between Bessel high pass and low pass filter types
-
Added clarity to coefficient ordering in the SbComplexFIR module documentation
AWECore 8.D.11, AWECoreOS 8.B.21
2025-MARCH
New Features
-
New BiquadCascadeV2 and SecondOrderFilterSmoothedCascadeV3 provide additional control over biquad processing, including DF1 and TDF2 forms
-
New ActivationMute module safely activates and deactivates modules and subsystems. Expands ActivationMux module by allowing targeted modules and subsystems to be at any hierarchy level
-
Created new ShiftBits module that supports logical and arithmetic shifts, and int32 and fract32 inputs
-
Added support for reset functions in modules, and created an API to trigger reset of the entire layout
-
Added support for peak profiling for modules rather than average. Also added more control to existing profiling options with API awe_setProfilingOptions
Enhancements
-
When pointer module variables are set during module construction, the module Set function is now called with the mask set to the pointer variable
-
Improved heap allocation algorithm to save between 1-10% memory usage
-
Updated modules with potentially wide inspectors to split them into multiple rows for better visibility
-
Modules that require file systems will now still load and run on bare metal targets, but will not do any processing
-
Updated MaxAbs module to improve performance on some targets
Bug Fixes
- Updated some module prebuild error messages to provide more clarity
AWECore 8.D.10, AWECoreOS 8.B.20
2024-DECEMBER-
New Features
-
Updated AWE Core multi-instance implementation to support Progressive Loading for Early Audio use cases
-
Added an API that can be called from modules to return the parent layout's index
-
New logging callbacks added in AWE Core to provide log messages to user application
-
New Event module can trigger new event callbacks on the target system
-
New AGCAttackHoldRelease implements a new AGC with additional control parameters
-
New PeriodicFuncGen module implements an efficient table-lookup based wave generator
-
New BufferSourceV2 modules add flexibility, including option to store the data as interleaved or deinterleaved buffer
-
New ParamSetV2 module adds support for variable mask in deferred set calls
-
New ActivationMux module can be used to safely control changing status of multiple subsystems
-
New MuteNSymmteric module adds per channel control to MuteSymmetric module
-
New RebufferedSink module combines a rebuffer module and a sink module, which can greatly reduce memory and CPU usage
Enhancements
-
Improved reliability and usability of WaveFileSink module
-
Updated ParamSetTableV2 to always rewrite values when the array is updated, even if index is unchanged
-
Added support for M55 targets that do not support Helium
-
Updated DelayMixerSmoothed module code to protect against negative delays
-
Improved performance of Router in certain configurations
Bug Fixes
-
Updated DelayStateWriter to fix potential issues in FIRReader modules
-
Fixed Biquad module to work with 12 or more channels
-
Fixed issue with AGCLimiterCoreV2 when saved in AWJ files
-
Fixed crash in FilterbankFIR modules that could happen if module failed during construction
-
Fixed potential memory leak when loading AWBs from file on Linux targets
-
Fixed issues with AWECoreOS tuning logging and packetBufferSize configuration option
-
Fixed SystemVariable module to get system information from current layout when appropriate
-
Updated BiquadLoading module to avoid potential small differences between input and output
-
Updated Subtract module to fail builds if input pin is not float
-
No longer overwriting internal parameter ranges for BiquadSparseV5/6 modules during prebuild
-
Fixed integer display issues in module .html documentation
-
Corrected reply length of PFID_FetchValue in Tuning Syntax documentation
-
Fixed issue with synchronization resets on multi-instance targets with > 2 instances with different base clock dividers
AWECore 8.D.9, AWECoreOS 8.B.19
2024-AUGUST-15
New Features
-
New Constant DC Source module that enables users to control module variables with Layout Arguments
-
Added support for Cortex-M55, SHARC-FX, and Kalimba targets
-
New AGC Core V2 Fract32 module that allows for more gain using Q8.24 output format
-
Added new
PFID_GetAllMatchingModulesfor returning the objectIDs of all modules in a layout that match the provided classID
Enhancements
-
Overflows are now measured per instance, and profiling corrects for time lost to preemption
-
Improved AWE Core Integration Guide with troubleshooting tips
-
Created new icons for the ChangeThread module
Bug Fixes
-
Fixed crash when checking the heaps on an invalid instance
-
Fixed issue in AWE_Server where heap usage would not appear when loading an AWB from flash memory
AWECore 8.D.8, AWECoreOS 8.B.18
2024-JUNE-10
New Features
-
New Conditional Replace module to deterministically replace the output with a constant value
-
New API function awe_getBuildVersionInfo returns library build and version information
-
New Change Thread module to buffer data to any specified target instance and/or thread
Enhancements
-
Updated Flash File System API functionality for valid pointers
-
Updated PFID_GetProfileValues' documentation for the correct datatype of the reply values
-
Updated documentation to clarify that Control API can only access the active core's instances
-
Updated documentation to clarify that Preemption API can be called by any instance shared by the same core
Bug Fixes
-
Fixed AWE_Server's Flash Manager tool to access multi-instance target files
-
Fixed regression test failure for WetDry, SecondOrderFilter, and SecondOrderFilterCascade modules
-
Improved reliability of CrossoverFilter module's regression test
-
Fixed issue where Mute Symmetric module could audio "pop" if driven by a Param Set in deferred update mode
-
Fixed Module System Test failure for Wave File Source modules
-
Fixed issue where FilterbankFIRNChan modules weren't calling destroy for internal FFT modules
-
Fixed issue when loading a layout on multi-instance targets that shared Packet and Reply buffer memory
AWECore 8.D.7, AWECoreOS 8.B.17
2024-MARCH-15
New Features
-
New Scaler Symmetric Fading V2 module that enables external control of the gain value
-
New ClipAsymInt32 module that performs Asymmetric Clipping for integer values
-
New PFID_GetProfileValuesPreCalc message to support consistent profiling across irregular pump calls
-
New AWE Core API Callbacks to capture audio interrupts for accurate profiling
Enhancements
-
AWE Core can now allocate memory aligned up to 128 words
-
Added support to run Module Regression Tests on Multi-Instance targets
-
Added Frequency Response functionality to Biquad Sparse V6 module
-
Allow users to adjust Compiled Reusable Subsystem parameters with ParamSet
-
Added optional support to control scalar values with ArraySet
Bug Fixes
-
Fixed crash when loading certain AWB files containing Flash-based Wave Player modules
-
Updated user documentation with more details on the SPI Tuning Protocol
-
Fixed issue when instantiating Compiled Reusable Subsystems that control variables in nested subsystems
-
Fixed default range of ClipAsymFract32 to (-1, 1)
-
Fixed issue in module documentation that incorrectly stated that gain filter type uses linear units
-
Fixed issue where BiquadLoading modules were using First Order implementations on some targets
-
Fixed regression test failures for the following modules:
-
BufferDownV2
-
BufferUpV2
-
CycleBurnerSet
-
MeasureSampleRate
-
MultichannelMixerSmoothed
-
SystemVariable
-
FileStreaming
-
AWECore 8.D.6, AWECoreOS 8.B.16
2024-JANUARY-26
New Features
-
Added support for QNX-based targets
-
New API that supports multirate processing on different instances
-
New 8 channel biquad VectorLib function for certain filter modules
Enhancements
-
Updated default channel names for some modules
-
Fixed issue with stale coefficients in subsystem by forcing recalculation during prebuild
-
Reduced the duration of certain module regression tests
-
Improved robustness of IPC buffers against multi-instance synchronization issues
-
IPCBuffer subsystem can now set Clock Divider and sublayout Thread ID
Bug Fixes
-
Fixed issue when controlling WaveFileSink with another module
-
Fixed regression tests for Delay Reader modules
-
Fixed issue where Audio Start/Stop callbacks weren't being called on secondary instances
-
Fixed typo that affected building for 64-bit targets
-
Fixed issue where overflows on secondary instances could halt primary instance
AWECore 8.D.5, AWECoreOS 8.B.15
2023-NOVEMBER-8
New Features
-
New FIR Reader module allows users to share state betwen multiple FIR filter modules
-
New GraphicEQFract32V2 module that adds frequency array to previous version
Enhancements
-
Updated AWE Core OS architecture to reduce audio dropouts during extended deferred processing
-
Controlling modules (ArraySet, ParamGet, ParamSet, ParamSetTableV2, StatusSetV2) can now specify when to execute relative to the module being controlled
-
Allow loading .awb's on non-multi-instance targets, even if the .awb instance ID does not align with the target's instance ID
Bug Fixes
- Fixed an issue when loading Compiled Reusable Subsystems on multi-instance targets
AWECore 8.D.4, AWECoreOS 8.B.14
2023-SEPTEMBER-18
New Features
-
(BETA) New Multi-Instance feature allows processing of audio across multiple AWE Core instances on different cores in a single layout
-
New Shared Heap in AWEInstance used to enable this feature
-
Performs all IPC of audio using new IPC Buffer module
-
Released as a beta feature, with known limitations:
-
IPC Buffer module will be updated in compatibility breaking ways in future releases
-
Multi-instance audio processing approach may require application updates in future releases
-
Module regressions can only be run on Instance 0
-
-
New LogicAndConst Module for performing a bitwise AND operation against a provided constant value
-
New AGCLimiterCoreV2 module for implementing a multichannel limiter
-
New callback function for cache invalidation
Enhancements
-
Deferred calling of Module Set functions now called with 0xFFFFFF00 mask
-
Updated documentation for compatibility issue when loading older encrypted layouts
-
Updated description of MapperControl module in documentation
-
Inspector window for the Router module can now be resized
Bug Fixes
-
Fixed regression test failures for DelayReader, IIRDecimator, and IIRInterpolator modules
-
Fixed incorrect error code when loading certain invalid layouts
AWECore 8.D.3, AWECoreOS 8.B.13
2023-JULY-21
Enhancements
-
Clarified SbSmoothV2 module's unused "sampleRate" argument in documentation
-
Improved profiling capabilities for multi-instance usage of AWE Core OS
-
Deprecated Param Set Table V1 module
-
Clarified usage of Band to Bin and Bin to Band modules in documentation
-
Corrected name of operation in Block Statistics module to "Sum of Squares"
-
Improved visibility and controllability of large source and overwrite control module inspectors
Bug Fixes
-
Fixed issue when setting Allpass Delay modules to zero delay
-
Fixed regression test failures for ADSR, Delay Mixer Smoothed, and Pink Noise Fract32 modules
-
Fixed regression test failure for Mute Linear Fade module
-
Module Set functions are now called with 0x7fffffff when called from deferred processing, separate from calls during module construction
-
Fixed delay propagation for Multiplexor V2 module
-
Fixed issue where the AWE Core version wasn't encoded properly on SHARC targets
AWECore 8.D.2, AWECoreOS 8.B.12
2023-JUNE-2
New Features
-
Added support for HiFi Mini processors
-
New Mute Symmetric Module for matching fade-in/fade-out times
Enhancements
-
Updated documentation with Flash File System integration details
-
Improved accuracy when profiling Multi-Threaded and Multi-Instance integrations
-
Added Frequency Response feature to FIR Sparse module
-
Redesigned exponential functions for bit-exact matching between host and target module code
Bug Fixes
-
Fixed an issue with loading a Compiled Reusable Subsystem from a different folder path
-
Fixed an issue with building layouts containing a module with no input or output pins
-
Fixed the FIR Interpolator module's latency calculation
-
Fixed an issue with the Symmetric Scaler module's gradient calculation of negative numbers
-
Fixed an issue with loading saved parameters in BandToBin modules from AWJ layouts
-
Made allocation of memory for the Compiled Reusable Subsystem more flexible to avoid errors on memory limited systems