lib_mic_array change log
========================

7.0.0
-----

  * CHANGED: Tests from XC to C using lib_xcore
  * REMOVED: XCommon build support. Please use XCommon CMake instead.

  * Changes to dependencies:

    - lib_xcore_math: 2.4.0 -> 2.4.1

6.0.0
-----

  * ADDED: A new API to replace vanilla that is the default recommended way of
    using the mic array.
  * ADDED: Support for mic array shutdown which causes the mic array thread(s)
    to return.
  * ADDED: Test for mic array shutdown
  * ADDED: API to support initialising the mic array with custom decimation
    filters
  * CHANGED: BasicMicArray tests to test the default API
  * CHANGED: app_measure_mips example to run the default API
  * CHANGED: Documentation improvements
  * CHANGED: replaced assert.h with xcore/assert.h
  * FIXED: PDM RX ISR deadlock bug
  * REMOVED: Vanilla API and configuration
  * REMOVED: Prefab API

5.5.0
-----

  * CHANGED: Documentation updated
  * CHANGED: Renamed examples to app_
  * CHANGED: Renamed the scripts/ directory to python/

  * Changes to dependencies:

    - lib_xcore_math: 2.3.0 -> 2.4.0

5.4.0
-----

  * CHANGED: All examples now build under XCommon CMake build system
  * ADDED:   Will build without errors for XS2 targets but no API available
  * DEPRECATED: Previously used custom CMake build support. This will be removed
    in future versions. Please use XCommon CMake build system as provided in XTC
    15.3.0 onwards for new projects.

  * Changes to dependencies:

    - lib_xcore_math: 2.0.0 -> 2.3.0

5.3.0
-----

  * FIXED:   Vanilla configuration now compiles correctly under XTC 15.3.0
  * ADDED:   Support for XCommon CMake build system

5.2.0
-----

  * Added 48 kHz decimator design script
  * Added documentation to cover 32 kHz and 48 kHz deciamtors

5.1.0
-----

  * Added 16ch de-interleave to support 16 DDR mics on a single 8b port
  * Added parallel decimation use example
  * Fixed documentation generation issues

5.0.3
-----

  * Improved default audio filter. Reduces noise floor and improves alias
    attentuation
  * Changed DCOE filter to increase attenuation below 20 Hz

5.0.2
-----

  * Documentation improvements.

5.0.1
-----

  * Updates lib_mic_array to use lib_xcore_math (formerly lib_xs3_math) version
    2.0.2
  * Updates CMake project to use CPM to obtain dependencies (when top level
    project)
  * [issue #171] Changes behavior when mic array consumer gets backed up from a
    quiet deadlock to an ECALL exception
  * Also adds a way to allow blocks of PDM to be quietly dropped instead  (see
    AssertOnDroppedBlock())

5.0.0
-----

  * Mic Array library redesigned from scratch to make efficient use of XMOS XS3
    architecture
  * Many unused features from previous versions have been dropped
  * Initial v5.0 features:
  * Supports 1-, 4-, and 8-bit ports
  * Supports both SDR and DDR microphone configurations
  * Use 1-16 PDM microphones
  * Configurable PDM clock frequency
  * Configurable two-stage decimating FIR
  * Reference filter with total decimation factor of 192 provided
  * Optional DC offset elimination filter
  * Configurable frame size (down to single sample)
  * Extensible C++ design

  * Changes to dependencies:

    - lib_dsp: Removed dependency

    - lib_logging: Removed dependency

    - lib_xassert: Removed dependency

    - lib_xcore_math: Added dependency 2.0.0

4.3.0
-----

  * CHANGED: Use XMOS Public Licence Version 1
  * FIXED: Compiler warnings when MIC_DUAL_ENABLED is not defined

4.2.2
-----

  * CHANGED: Pin Python package versions
  * REMOVED: not necessary cpanfile

4.2.1
-----

  * CHANGED: Jenkinsfile pinned to Jenkins shared library 0.10.0
  * CHANGED: Updated the minimum version of libraries this library depends upon.

4.2.0
-----

  * ADDED support for global define to set single/dual output buffer for
    mic_dual

4.1.0
-----

  * Added mic_dual, an optimised single core, 16kHz, two channel version (not
    compatible with async interface)

4.0.0
-----

  * ADDED: Support for arbitrary frame sizes
  * ADDED: #defines for mic muting
  * ADDED: Non-blocking interface to decimators for 2 mic setup
  * CHANGED: Build files updated to support new "xcommon" behaviour in xwaf.

3.2.0
-----

  * Added xwaf build system support
  * Cleaned up some of the code in the FIR designer.
  * Removed fixed gain in examples
  * Update VU meter example
  * Fix port types in examples
  * Set and inherit XCC_FLAGS rather than XCC_XC_FLAGS when building library

3.1.1
-----

  * Updated lib_dsp dependancy from 3.0.0 to 4.0.0

3.1.0
-----

  * Modified the FIR designer to increase the first stage stopband attenuation.
  * Cleaned up some of the code in the FIR designer.
  * Updated docs to reflect the above.

3.0.2
-----

  * Update DAC settings to work for mic array base board as well.

3.0.1
-----

  * Filter design script update for usability.
  * Documentation improvement.
  * Changed DEBUG_UNIT to XASSERT_UNIT to work with lib_xassert.
  * Added upgrade advisory.
  * Added dynamic range subsection to documentation.

3.0.0
-----

  * Added ability to route internal channels of the output rate of the mic_array
    to the mic_array so that they can benefit from the post processing of the
    mic_array.
  * Enabled the metadata which delivers the frame counter.
  * Small fix to the filter generator to allow the use of fewer taps in the
    final stage FIR.
  * Added significant bits collection to the metadata.
  * Added fixed gain control through define MIC_ARRAY_FIXED_GAIN.
  * Tested and enabled the debug mode for detecting frame dropping. Enabled by
    adding DEBUG_MIC_ARRAY to the Makefile.
  * Moved to using types from lib_dsp.
  * Bug fix in python FIR generator script resulting in excessive output ripple.
  * Default FIR coefficients now optimised for 16kHz output sample rate.
  * Added ability to remap port pins to channels.
  * MIC_ARRAY_NUM_MICS is now forced to a multiple of 4 with a warning if it
    changed.
  * Corrected MIC_ARRAY_DC_OFFSET_LOG2 default value reporting in documentation.

  * Changes to dependencies:

    - lib_dsp: Added dependency 3.0.0

2.0.1
-----

  * Updated AN00221 to use new lib_dsp API for FFTs
  * Updates required for latest lib_mic_array_board_support API

2.0.0
-----

  * Renamed all functions to match library structure
  * Decimator interface functions now take the array of
    mic_array_decimator_config structure rather than
    mic_array_decimator_config_common
  * All defines renames to match library naming policy
  * DC offset simplified
  * Added optional MIC_ARRAY_NUM_MICS define to save memory when using less than
    16 microphones

1.0.1
-----

  * Added dynamic DC offset removal at startup to eliminate slow convergance
  * Mute first 32 samples to allow DC offset to adapt before outputting signal
  * Fixed XTA scripte to ensure timing is being met
  * Now use a 64-bit accumulator for DC offset removal
  * Consolidated generators into a single python generator
  * Produced output frequency response graphs
  * Added 16 bit output mode

1.0.0
-----

  * Major refactor
  * FRAME_SIZE_LOG2 renamed MAX_FRAME_SIZE_LOG2
  * Decimator interface now takes arrays of streaming channels
  * Decimators now take channel count as a parameter
  * Added filter designer script
  * Documentation updates
  * First stage now uses a FIR decimator
  * Changed decimation flow
  * Removed high res delay module
  * Added generator for FIR coefficients
  * Added ability to reduce number of channels active in a decimator
  * Increased number of FIR taps
  * Increased output dynamic range

0.0.2
-----

  * Documentation fixes
  * Fixed frame number fix
  * Added frame metadata

0.0.1
-----

  * Initial Release

  * Changes to dependencies:

    - lib_logging: Added dependency 2.0.0

    - lib_xassert: Added dependency 2.0.0

