Skip to content

Releases: xmos/sw_usb_audio

v8.1.0

01 Jun 16:45
Compare
Choose a tag to compare
  • ADDED: 2AMi18o18mssaax build config (MIDI, SPDIF Rx/Tx & ADAT Rx/Tx)
  • ADDED: 2AMi16o16xxxaax build config (ADAT Rx/Tx)
  • ADDED: 2AMi8o8mxxxxx build config (MIDI)
  • CHANGED: Use lib_sw_pll code for configuring the application PLL
  • FIXED: Use correct number of flash pages for XK-AUDIO-316-MC
  • FIXED: Links to usb.org in documentation
  • Changes to dependencies:
    • lib_adat: 1.1.0 -> 1.2.0
      • CHANGED: example applications now run on xcore.ai hardware
      • CHANGED: example applications build using XCommon CMake
    • lib_sw_pll: 2.1.0 -> 2.2.0
      • FIXED: Enable PLL output after delay to allow it to settle
      • FIXED: Fixed frequency settings for 11,289,600Hz
    • lib_xua: 4.0.0 -> 4.1.0
      • ADDED: MIDI unit and sub-system tests
      • CHANGED: Only the minimum number of ADAT input formats are enabled
        based on the supported sample rates
      • CHANGED: Enabling ADAT tx enables different channel count interface
        alts, based on sample rate
      • CHANGED: Input audio buffer size and the exit condition underflow
        modified to to fix buffer underflow in some configurations
      • CHANGED: CT_END token based handshake in MIDI channels transactions,
        reducing opportuninity for deadlock
      • FIXED: Device fails to enumerate when ADAT and S/PDIF transmit are
        enabled
      • FIXED: Update software PLL at the correct rate for ADAT S/MUX
      • FIXED: Incorrect internal input EP count for input only devices
      • FIXED: Samples transferred to ADAT tx too frequently in TDM mode
      • FIXED: S/MUX not initialised to a value based on DEFAULT_FREQ in
        clockgen
      • FIXED: Trap when moving to DSD mode on XS3A based devices

v8.0.0

26 Mar 12:16
Compare
Choose a tag to compare
  • ADDED: Support for XCommon CMake build system
  • CHANGED: Windows control app now take GUID via a -g option, accommodating
    latest Thesycon driver packages
  • CHANGED: app_usb_aud_xk_316_mc defaults to using xcore.ai AppPLL for
    master clock generation when syncing to digital streams or in USB sync mode,
    rather than the external CS2100 device
  • CHANGED: UserBufferManagmentInit() implementations updated to match API
    change in lib_xua (now takes a sample rate value)
  • CHANGED: app_usb_aud_xk_316_mc: Improvements in interaction with on-board
    power control circuitry
  • Changes to dependencies:
    • lib_adat: 1.0.1 -> 1.1.0
      • ADDED: Support for XCommon CMake build system
    • lib_dsp: 6.2.1 -> 6.3.0
      • ADDED: Support for XCommon CMake build system
    • lib_i2c: 6.1.1 -> 6.2.0
      • ADDED: Support for XCommon CMake build system
      • REMOVED: Unused dependency lib_logging
    • lib_i2s: 5.0.0 -> 5.1.0
      • ADDED: Support for XCommon CMake build system
      • RESOLVED: Added missing shutdown feature to i2s_frame_slave
      • FIXED: Allow input and output ports in the 4-bit port implementation to
        be nullable
      • FIXED: Behaviour of the restart_check() callback function in the example
        applications
      • REMOVED: Unused dependency lib_logging
      • ADDED: Frame synch error field in i2s_config_t for I2S slave
    • lib_locks: 2.1.0 -> 2.2.0
      • ADDED: Tests now run on xcore.ai as well as xcore-200
      • ADDED: Support for XCommon CMake build system
    • lib_logging: 3.1.1 -> 3.2.0
      • ADDED: Support for XCommon CMake build system
    • lib_mic_array: 4.5.0 -> 4.6.0
      • ADDED: Support for XCommon CMake build system
    • lib_spdif: 5.0.1 -> 6.1.0
      • ADDED: Support for XCommon CMake build system
      • ADDED: Support for transmit at 32kHz
      • RESOLVED: Coding optimisations not properly enabled in receiver
      • RESOLVED: Receiver timing issues for sample rates greater than 96kHz
      • RESOLVED: Failure to select correct receive sample rate when the sample
        rate of the incoming stream changes
      • ADDED: Shutdown function for S/PDIF transmitter
      • CHANGED: Receiver rearchitected for improved performance and jitter
        tolerance
      • CHANGED: API function names updated for uniformity between rx and tx
    • lib_sw_pll: Added dependency 2.1.0
      • ADDED: Support for XCommon CMake build system
      • ADDED: Reset PI controller state API
      • ADDED: Fixed frequency (non phase-locked) clock PLL API
      • FIXED: Init resets PI controller state
      • FIXED: Now compiles from XC using XCommon
      • ADDED: Guard source code with XS3A to allow library inclusion in
        non- xcore-ai projects
      • CHANGED: Reduce PLL initialisation stabilisation delay from 10 ms to 500
        us
      • ADDED: Split SDM init function to allow separation across tiles
      • FIXED: Use non-ACK write to PLL in Sigma Delta Modulator
    • lib_xassert: 4.1.0 -> 4.2.0
      • ADDED: Support for XCommon CMake build system
    • lib_xua: 3.5.1 -> 4.0.0
      • ADDED: Support for XCommon CMake build system
      • FIXED: Output volume control not enabled by default when MIXER
        disabled
      • FIXED: Full 32bit result of volume processing not calculated when
        required
      • FIXED: Input stream sending an erroneous zero-length packet when
        exiting underflow state
      • FIXED Build failures when XUA_USB_EN = 0
      • FIXED: Clock configuration issues when ADAT and S/PDIF receive are
        enabled (#352)
      • FIXED: Repeated old S/PDIF and ADAT samples when entering underflow
        state
      • CHANGED: QUAD_SPI_FLASH replaced by XUA_QUAD_SPI_FLASH (default: 1)
      • CHANGED: UserBufferManagementInit() now takes a sample rate parameter
      • CHANGED: xcore.ai targets use sigma-delta software PLL for clock
        recovery of digital Rx streams and synchronous USB audio by default
      • CHANGED: Windows host mixer control application now requires driver
        GUID option
    • lib_xud: 2.2.3 -> 2.3.1
      • FIXED: XS3A based devices not responding to IN packets in SE0_NAK
        test mode
      • ADDED: XMOS proprietary test mode XMOS_IN_ADDR1
      • ADDED: Support for XCommon CMake build system
      • CHANGE: Removed definition and use of REF_CLK_FREQ in favour of
        PLATFORM_REFERENCE_MHZ from platform.h
      • FIXED: Do not include implementations of inline functions when
        XUD_WEAK_API is set

v7.3.1

21 Jun 13:01
Compare
Choose a tag to compare
  • Changes to dependencies:
    • lib_xua: 3.5.0 -> 3.5.1
      • FIXED: Respect I2S_CHANS_PER_FRAME when calculating bit-clock rates

v7.3.0

19 Jun 18:13
Compare
Choose a tag to compare
  • ADDED: Support for 12.288MHz 11.2896MHz to xcore.ai AppPLL master clock
    options
  • CHANGED: app_usb_aud_xk_316_mc: Respect XUA_I2S_N_BITS when configuring
    external audio hardware
  • FIXED: app_usb_aud_xk_316_mc: DAC settings not configured when sample
    rate is lower than 48kHz
  • Changes to dependencies:
    • lib_spdif: 4.2.1 -> 5.0.1
      • FIXED: Reinstated graceful handling of bad sample-rate/master-clock
        pair
      • CHANGED: Updated examples for new XK-AUDIO-316-MC board
      • CHANGED: Updated transmit to simplified implementation (note, no
        longer supports XS1 based devices)
      • CHANGED: Removed headers SpdifReceive.h and SpdifTransmit.h. Users
        should include spdif.h
    • lib_xua: 3.4.0 -> 3.5.0
      • ADDED: Configurable word-length for I2S/TDM via XUA_I2S_N_BITS
      • ADDED: Support for statically defined custom HID descriptor
      • CHANGED: Rearranged main() such that adding custom code that uses
        lib_xud is possible
      • CHANGED: bNumConfigurations changed from 2 to 1, removing a
        work-around to stop old Windows versions loading the composite driver
      • FIXED: Memory corruption due to erroneous initialisation of mixer
        weights when not in use (#152)
      • FIXED: UserHostActive() not being called as expected (#326)
      • FIXED: Exception when entering DSD mode (#327)
    • lib_xud: 2.2.2 -> 2.2.3
      • FIXED: XUD_UserSuspend() and XUD_UserResume now properly marked as
        weak symbols (#374)
      • FIXED: Incorrect time reference used during device attach process
        (#367)

v7.2.0

16 Mar 17:23
Compare
Choose a tag to compare
  • ADDED: Driver information section to documentation
  • CHANGED: AppPLL settings updated to reduce jitter (#112)
  • CHANGED: app_usb_aud_316_mc: Improved DAC configuration sequencing
    following datasheet recommendations
  • CHANGED: app_usb_aud_316_mc: Manual DAC setup rather than using
    auto-config to improve output quality (internal PLL no longer used)
  • FIXED: app_usb_aud_316_mc: Intermittent output from DACs due to DAC
    auto-standby (#110)
  • FIXED: app_usb_aud_216_mc: Define app defaults ahead of lib_xua defaults
  • Changes to dependencies:
    • lib_xua: 3.3.1 -> 3.4.0
      • ADDED: Unit tests for mixer functionality
      • ADDED: Host mixer control applications (for Win/macOS)
      • CHANGED: Small tidies to mixer implementation
      • CHANGED: Improved mixer control channel communication protocol to
        avoid deadlock situations
      • CHANGED: By default, output volume processing occurs in mixer task, if
        present. Previously occurred in decouple task
      • CHANGED: Some optimisations in sample transfer from decouple task
      • FIXED: Exception on startup when USB input disabled
      • FIXED: Full 32bit volume processing only applied when required
      • FIXED: Setting OUT_VOLUME_AFTER_MIX to zero now has the expected
        effect
    • lib_xud: 2.2.1 -> 2.2.2
      • FIXED: Syntax error when including xud.h from C
      • CHANGE: Various API functions optionally marked as a weak symbol
        based on XUD_WEAK_API

v7.2.0rc0

16 Mar 10:55
Compare
Choose a tag to compare
v7.2.0rc0 Pre-release
Pre-release
  • ADDED: Driver information section to documentation
  • CHANGED: AppPLL settings updated to reduce jitter (#112)
  • CHANGED: app_usb_aud_316_mc: Improved DAC configuration sequencing
    following datasheet recommendations
  • CHANGED: app_usb_aud_316_mc: Manual DAC setup rather than using
    auto-config to improve output quality (internal PLL no longer used)
  • FIXED: app_usb_aud_316_mc: Intermittent output from DACs due to DAC
    auto-standby (#110)
  • FIXED: app_usb_aud_216_mc: Define app defaults ahead of lib_xua defaults
  • Changes to dependencies:
    • lib_xua: 3.3.1 -> 3.4.0
      • ADDED: Unit tests for mixer functionality
      • ADDED: Host mixer control applications (for Win/macOS)
      • CHANGED: Small tidies to mixer implementation
      • CHANGED: Improved mixer control channel communication protocol to
        avoid deadlock situations
      • CHANGED: By default, output volume processing occurs in mixer task, if
        present. Previously occurred in decouple task
      • CHANGED: Some optimisations in sample transfer from decouple task
      • FIXED: Exception on startup when USB input disabled
      • FIXED: Full 32bit volume processing only applied when required
      • FIXED: Setting OUT_VOLUME_AFTER_MIX to zero now has the expected
        effect
    • lib_xud: 2.2.1 -> 2.2.2
      • FIXED: Syntax error when including xud.h from C
      • CHANGE: Various API functions optionally marked as a weak symbol
        based on XUD_WEAK_API

v7.1.0alpha0

22 Nov 12:21
Compare
Choose a tag to compare
v7.1.0alpha0 Pre-release
Pre-release
  • ADDED: Build configs for synchronous mode (uses external CS2100 device)
  • ADDED: app_usb_aud_xk_316_mc: Build configs for xCORE as I2S slave
  • CHANGED: app_usb_aud_xk_316_mc: Core voltage reduced to 0.9v (was 0.922v)
  • CHANGED: Seperated build configs into build-tested, partially-test and
    fully-tested
  • CHANGED: Documentation updates (note, "Design Guide" now "User Guide")
  • Changes to dependencies:
    • lib_adat: 1.0.0 -> 1.0.1
      • Removed duplicate header file
    • lib_i2s: 4.3.0 -> 5.0.0
      • ADDED: Support for I2S data lengths less than 32 bit.
      • ADDED: Implementation allowing use of a 4-bit port for up to 4
        simultaneous streaming inputs or outputs.
    • lib_spdif: 4.1.0 -> 4.2.1
      • CHANGED: Documentation updates
      • ADDED: Added shutdown function for S/PDIF Receiver
      • CHANGED: spdif_tx_example updated to use XK-AUDIO-216-MC
    • lib_xua: 3.2.0 -> 3.3.1
      • CHANGED: Documentation updates
      • CHANGED: Define ADAT_RX renamed to XUA_ADAT_RX_EN
      • CHANGED: Define ADAT_TX renamed to XUA_ADAT_TX_EN
      • CHANGED: Define SPDIF_RX renamed to XUA_SPDIF_RX_EN
      • CHANGED: Define SELF_POWERED changed to XUA_POWERMODE and associated
        defines
      • CHANGED: Drive strength of I2S clock lines upped to 8mA on xCORE.ai
      • CHANGED: ADC datalines sampled on falling edge of clock in TDM mode
      • CHANGED: Improved startup behaviour of TDM clocks
      • FIXED: Intermittent underflow at MAX_FREQ on input stream start due
        to insufficient packet buffering
      • FIXED: Decouple buffer accounting to avoid corruption of samples
    • lib_xud: 2.1.0 -> 2.2.1
      • FIXED: Control endpoint ready flag not properly cleared on receipt
        of SETUP transaction (#356)
      • CHANGE: Further API functions re-authored in C (were Assembly)
      • CHANGE: Endpoints marked as Disabled now reply with STALL if the host
        attempts to access them, previously they would NAK (#342)
      • FIXED: Exception if host accesses an endpoint that XUD believes to
        be not in use
      • FIXED: Timeout event properly cleaned up after tx handshake received
        (#312)
      • FIXED: A control endpoint will respect the halt condition for OUT
        transactions when marked ready to accept SETUP transactions (#339)
      • FIXED: USB Disconnect on self-powered devices intermittently causing
        Iso EP's to be set to not-ready indefinitely (#351)

v7.0.0alpha0

14 Jun 11:46
Compare
Choose a tag to compare
v7.0.0alpha0 Pre-release
Pre-release
  • ADDED: Application for XK-AUDIO-316-MC hardware
  • ADDED: Support for XTC Tools 15
  • CHANGED: Removed apps for deprecated hardware
  • CHANGED: HID implementation for MC audio board buttons
  • CHANGED: Moved from using sc_ repos to lib_ repos (see dependency changes
    below)
  • FIXED: Need to drive VBUS_OUT low on xCORE-200 MC AUDIO board (#17697)
  • Changes to dependencies:
    • lib_adat: Added dependency 1.0.0
      • Initial release
    • lib_device_control: Removed dependency
    • lib_dsp: Added dependency 6.2.1
      • CHANGED: Jenkinsfile used for CI
    • lib_i2c: Added dependency 6.1.1
      • RESOLVED: Fixed timing for repeated START condition
    • lib_i2s: Added dependency 4.3.0
      • CHANGED: Use XMOS Public Licence Version 1
    • lib_locks: Added dependency 2.1.0
      • CHANGED: Use XMOS Public Licence Version 1
    • lib_logging: 2.0.1 -> 3.1.1
      • CHANGED: Jenkinsfile used for CI
      • CHANGED: Use XMOS Public Licence Version 1
      • REMOVED: not necessary cpanfile
      • CHANGED: Pin Python package versions
      • CHANGED: Build files updated to support new "xcommon" behaviour in xwaf.
      • CHANGE: Test runner script now terminates correctly on Windows
      • ADDED: Now supports the %p format specifier
      • CHANGE: Ignore the case of the format specifiers
      • CHANGE: Ignore padding and alignment characters
    • lib_mic_array: 2.0.1 -> 4.5.0
      • REMOVED: Use of Brew for CI
      • CHANGED: XMOS Jenkins Shared Library version used in CI
      • CHANGED: XN files to support 15.x.x tools
      • CHANGED: Use XMOS Public Licence Version 1
      • FIXED: Compiler warnings when MIC_DUAL_ENABLED is not defined
      • CHANGED: Pin Python package versions
      • REMOVED: not necessary cpanfile
      • CHANGED: Jenkinsfile pinned to Jenkins shared library 0.10.0
      • CHANGED: Updated the minimum version of libraries this library depends
        upon.
      • ADDED support for global define to set single/dual output buffer for
        mic_dual
      • Added mic_dual, an optimised single core, 16kHz, two channel version
        (not compatible with async interface)
      • 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.
      • 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
      • Updated lib_dsp dependancy from 3.0.0 to 4.0.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.
      • Update DAC settings to work for mic array base board as well.
      • 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.
      • 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.
    • lib_spdif: Added dependency 4.1.0
      • CHANGED: Use XMOS Public Licence Version 1
      • CHANGED: Rearrange documentation files
    • lib_voice: Removed dependency
    • lib_xassert: 2.0.1 -> 4.1.0
      • CHANGED: Use XMOS Public Licence Version 1
      • REMOVED: not necessary cpanfile
      • CHANGED: Pin Python package versions
      • CHANGED: Build files updated to support new "xcommon" behaviour in xwaf.
      • CHANGE: Correct dates in LICENSE.txt files
      • CHANGE: Renamed DEBUG_UNIT to XASSERT_UNIT to prevent conflict with
        lib_logging
    • lib_xua: Added dependency 3.2.0
      • CHANGED: Updated tests to use lib_locks (was legacy module_locks)
      • CHANGED: Exclude HID Report functions unless the HID feature is
        enabled
      • CHANGED: Explicit feedback EP enabled by default (see
        UAC_FORCE_FEEDBACK_EP)
      • FIXED: Incorrect conditional compilation of HID report code
      • FIXED: Input/output descriptors written when input/output not
        enabled. (Audio class 1.0 mode using
        XUA_USB_DESCRIPTOR_OVERWRITE_RATE_RES)
    • lib_xud: Added dependency 2.1.0
      • CHANGE: Various optimisations to aid corner-case timings on XS3 based
        devices
      • CHANGE: Some API functions re-authored in C (from Assembly)
      • CHANGE: Testbench now more accurately models XS3 based devices
    • sc_adat: Removed dependency
    • sc_i2c: Removed dependency
    • sc_spdif: Removed dependency
    • sc_usb: Removed dependency
    • sc_usb_audio: Removed dependency
    • sc_usb_device: Removed dependency
    • sc_util: Removed dependency
    • sc_xud: Removed dependency