TUSBAudio - Thesycon USB Audio 2.0 Class Driver for Windows Revision History ----------------------------------------------------- V1.61.0 (September 10, 2012) ----------------------------------------------------- * Chg: SignTools v1.5.0 is now used to create .cat files for Windows 8 and Windows Server 2012 See signing subdirectory! * New: PIDs 0x0006 and 0x0008 used for SU1 chip added to XMOS_EVAL_KITS package * Fix: KS driver operates in event-driven mode now. Timer-driven mode caused issues in Win8 if playback runs for several hours. ----------------------------------------------------- V1.60.1 (August 29, 2012) ----------------------------------------------------- * Chg: SignTools v1.4.0 is now used to create .cat files for Windows 8 and Windows Server 2012 ----------------------------------------------------- V1.60.0 (August 17, 2012) ----------------------------------------------------- * Fix: Installer does not display license.txt file under specific conditions. * Fix: Incorrect parameter check in child device SELECT_INTERFACE handling. * Chg: Driver expects an empty Audio Class Control interface prior to the MIDI streaming interface. ----------------------------------------------------- V1.59.0 (July 24, 2012) ----------------------------------------------------- * New: Manifest of all applications (setup, control panel etc.) adapted to support Windows 8. * Fix: Installer: If the setup is running in GUI mode the user is now informed if he tries to install in a folder for which he has not the required privileges. Installation is not started in this case. * Fix: Installer error handling fixed for the case that the user disconnects the device during installation. * Chg: Child device is created for Audio/DFU interface, too, if this interface is not claimed by the driver ----------------------------------------------------- V1.58.0 (June 18, 2012) ----------------------------------------------------- * New: XMOS_L1_HIFI configuration added to customization kit. * New: Master volume and mute control of Feature Unit routed to Windows controls, if no single channel controls are available. * New: Driver is able to select ASIO buffer size automatically (useful if no control panel is implemented). Manual selection is the default. * New: Streaming hold on interval can be configured via registry, hold on behavior can be turned off. * Fix: Driver checks for availability of SSE2 instruction set and fails to load if unavailable. ----------------------------------------------------- V1.57.0 (May 22, 2012) ----------------------------------------------------- * Fix: Thread synchronization problem in DFU firmware downloader * New: Installer supports Windows 8. Driver works on Windows 8 consumer preview version 32 bit and 64 bit * New: MIDI port names configurable via .inf file * New: Spy statistics enhanced: plugin Process runtime * Chg: Registry parameters AllowMidiInPortSharing, AllowMidiOutPortSharing removed, new setting under port-specific subkey: AllowMidiPortSharing ----------------------------------------------------- V1.56.0 (April 13, 2012) ----------------------------------------------------- * Chg: Set USB Streaming Mode, Set Stream Format, Set Clock Source now possible while an ASIO client or Windows client is active. * Chg: customization scripts: number of supported VID/PID increased from 5 to 16 * Chg: customization scripts: If vendor certificate is not available then a driver package without signature will be created, sys files will be signed with Thesycon certificate. * Chg: Documentation of customization scripts improved. * Fix: problem in Volume/Mute notification handler * Chg: stall SetSampleRate now ignored if device only supports one sample rate * Chg: Sound devices will be created in reverse order to make the first one the default device under Win7 * New: ASIO DLL supports private extensions kThesyconAsioGetThreadPrio, kThesyconAsioSetThreadPrio, see thesycon_asio_ext.h ----------------------------------------------------- V1.55.0 (February 17, 2012) ----------------------------------------------------- * New: Graphic in setup wizard can be customized. * New: Support for silent uninstall in setup wizard improved. * Fix: potential deadlock in PnP path when device is removed, caused by work item callbacks in steaming engine ----------------------------------------------------- V1.54.0 (January 12, 2012) ----------------------------------------------------- * Fix: driver v1.53 does not load for class 1.0 devices * Fix: driver does not accept feedback endpoint for class 1.0 devices because of missing usage type in bmAttributes * Fix: error in feedback data processing for class 1.0 OUT-only devices causes BSOD * Fix: error in float-to-int conversion results in corrupted samples * Chg: feedback statistics improved (more readable now) * Chg: Documentation update ----------------------------------------------------- V1.53.0 (December 22, 2011) ----------------------------------------------------- * Chg: Handling of sample format (class 1.0 and 2.0) changed internally * Chg: Separate source packages, internal libraries branched ----------------------------------------------------- V1.52.0 (December 19, 2011) ----------------------------------------------------- * Chg: Driver loads in case of invalid USB Audio Class descriptor but does not expose audio devices, this allows firmware update in this case ----------------------------------------------------- V1.51.0 (December 19, 2011) ----------------------------------------------------- * New: stream processing supports IEEE float format ----------------------------------------------------- V1.50.0 (October 14, 2011) ----------------------------------------------------- * New: sound device category and name GUIDs can be configured via .inf file * Chg: DriverPackageBuilder .cmd scripts reworked and .inf file templates enhanced to support sound device profiles and names * Fix: Default algorithm does not create playback sound devices for channel 9 and above. Recording sound devices were created instead. ----------------------------------------------------- V1.49.0 (September 28, 2011) ----------------------------------------------------- * New: sample rate changes through KS can be disabled via registry ----------------------------------------------------- V1.48.0 (September 20, 2011) ----------------------------------------------------- * Fix: resource leak on sample rate change may cause the driver to stop working * Fix: DriverPackageBuilder reported TPP.EXE as missing * Chg: We do not longer round up IN stream buffers to 1024 bytes, because this does not work on FrescoLogic USB 3.0 host controllers. * Chg: Windows sound devices do no longer support bit resolutions that are not supported by the device (Windows XP only) ----------------------------------------------------- V1.47.0 (August 24, 2011) ----------------------------------------------------- * Fix: risk of deadlock in KS framework on stream format changes (IOCTL_TUSBAUDIO_SELECT_STREAM_FORMAT_xx) Note: this is not yet fully fixed but the probability is reduced to a minimum ----------------------------------------------------- V1.46.0 (August 18, 2011) ----------------------------------------------------- * Fix: device name in Sound and Audio Device Properties (Windows XP only) was corrupted for specific configurations ----------------------------------------------------- V1.45.0 (August 11, 2011) ----------------------------------------------------- * Fix: risk of BSOD on driver load, caused by invalid memory access * Chg: Workaround in the driver for ISO endpoints with bInterval>4 removed. Windows bus driver supports bInterval<=4 only. Workaround (descriptor patch) does not work with USB 3 controller drivers. ----------------------------------------------------- V1.44.0 (August 05, 2011) ----------------------------------------------------- * Fix: DTM Device Path Exerciser causes BSOD * New: WDM sound device configuration can be defined via registry (.inf file) per device model that is supported by a driver package * New: driver supports synchronization type 'Adaptive' for ISO OUT endpoint * New: driver ensures that the data path (USB streaming) is stopped before restarting the device in DFU mode ----------------------------------------------------- V1.43.0 (June 27, 2011) ----------------------------------------------------- * Fix: Driver does not load if a feedback stream exists ----------------------------------------------------- V1.42.0 (June 20, 2011) ----------------------------------------------------- * Fix: potential BSOD if AC notification comes in while device is removed. * New: watchdog timer restarts streams if streaming hangs for any reason, e.g. USB 3.0 bus driver issues. * Fix: control panel GUI problems on Windows 7 if text size is set to a value larger than 100% ----------------------------------------------------- V1.41.0 (June 10, 2011) ----------------------------------------------------- * Fix: KS Capture path does not work. This bug was introduced in V1.34.0. * Chg: default ASIO channel names start at index 1 instead at index 0 ----------------------------------------------------- V1.40.0 (June 5, 2011) ----------------------------------------------------- * Chg: New buffer settings concept: - streaming buffer size replaced by USB Streaming Mode - ASIO buffer size can be set in samples * Chg: Incompatible API change! REMOVED API functions: TUSBAUDIO_GetStreamingBufferSizeSet TUSBAUDIO_GetStreamingBufferSize TUSBAUDIO_SetStreamingBufferSize TUSBAUDIO_GetAsioBufferSizeSet TUSBAUDIO_GetAsioBufferSize TUSBAUDIO_SetAsioBufferSize NEW API functions: TUSBAUDIO_GetUsbStreamingMode TUSBAUDIO_SetUsbStreamingMode TUSBAUDIO_GetASIOBufferSize TUSBAUDIO_SetASIOBufferSize TUSBAUDIO_GetMinimumASIOBufferSize RENAMED: enum TUsbAudioStreamingMode --> TUsbAudioDeviceStreamingMode * Chg: New buffer settings dialog in control panel ----------------------------------------------------- V1.34.0 (June 1, 2011) ----------------------------------------------------- * Fix: BSOD because KS driver does not check for zero-length buffers submitted by applications in the playback path * Fix: BSOD because of race in KS driver between SetPower and DeleteFilter * New: customer-specific workaround: swap center and LFE channels in the playback path if enabled in the .inf file via EnableSwapCenterLfeWorkaround ----------------------------------------------------- V1.33.0 (May 27, 2011) ----------------------------------------------------- * New: ASIO supports 32 bits per sample transparent data path. * Chg: WDM sound device supports 24 bits per sample only if this format is supported by the device. * Fix: there was a risk of a driver crash (BSOD) in case of errors in MIDI initialisation ----------------------------------------------------- V1.32.0 (May 20, 2011) ----------------------------------------------------- * Chg: disabled use of 'Valid Alternate Settings Control' until it is implemented by firmware * Chg: if a clock selector has one input pin only the driver does not send clock selector requests * Chg: using Windows Driver Kit version 7.1.0 to build the kernel modules (was version 7.0.0 formerly) * Chg: if no string descriptor is provided for a USB terminal the driver tries the string descriptor of the AudioControl interface for sound device name before using the hard-coded default name * Chg: for all DFU USB requests the maximum timeout interval that is allowed by the USB specification (5 seconds) is used ----------------------------------------------------- V1.31.0 (April 18, 2011) ----------------------------------------------------- * New: added support for OUT-only configurations with data endpoint synchronization type 'Synchronous', no feedback endpoint is required for such configurations ----------------------------------------------------- V1.30.0 (April 15, 2011) ----------------------------------------------------- * New: sample rate can be set through private API, new function: TUSBAUDIO_SetSampleRate ----------------------------------------------------- V1.29.0 (March 18, 2011) ----------------------------------------------------- * Fix: there was a memory leak in API DLL, function TUSBAUDIO_ReadDeviceNotification * Chg: avoid setting sample rate twice on streaming startup, this decreases the delay between streaming request and streaming active ----------------------------------------------------- V1.28.0 (March 16, 2011) ----------------------------------------------------- * Chg: record data path carries NULL samples during 3 seconds hold-off period (after client app disappeared) * Chg: the sample rate of the device is set before the streams are activated (for USB Audio Class 2.0 devices) and after (for USB Audio Class 1.0 devices) respectively * New: API extended to control the streaming mode of the device (power saving, always on), new functions: TUSBAUDIO_GetDeviceStreamingMode TUSBAUDIO_SetDeviceStreamingMode ----------------------------------------------------- V1.27.0 (March 09, 2011) ----------------------------------------------------- * Fix: there was a risk of a driver crash (BSOD) after the PC has returned from standby/hibernate * Fix: if there is only one stream format (alternate setting) per direction the 'Valid Alternate Settings Control' request will not be used to further validate the list of supported sample rates * Fix: the driver installer enters a wait state if it detects that the system is performing an installation, this improves behavior of first time driver installation (when device is connected for the first time) ----------------------------------------------------- V1.26.0 (February 23, 2011) ----------------------------------------------------- * Chg: driver startup behaviour regarding sampling rate revised, initial SET request is removed * Chg: revised selection of default feature units for volume and mute control, a single extension unit is allowed in the path now * Chg: extended sound device creation for input direction, the driver creates an 8-channel analogue sound device for channel 0..7 and 2-channel digital sound devices for remaining channels * Fix: ASIO work-around for ProTools 9 implemented * Fix: BSOD in AcTerminal::GetInsertedConnectors() (mismatch trace format <-> trace arguments) * Fix: BSOD in AudioFunctionController::Cleanup (NULL pointer in AsTerminalStream destructor) * Fix: USB Audio Class requests through driver API are no longer allowed while the device is not in audio mode * Fix: USB Audio Class 1.0 devices only: the sample rate of the ISO endpoints is set after AS>0 was selected * Fix: USB full-speed mode only: streaming startup procedure revised, this fixes occasional errors while starting streaming * Fix: XP only: Initial position of setup wizard is in the upper left corner. This is to avoid that the wizard hides the WHQL warning dialog. ----------------------------------------------------- V1.25.0 (January 05, 2011) - internal release ----------------------------------------------------- * New: for clock sources of type 'External' the driver will query the external rate by issuing a GET CUR CS_SAM_FREQ_CONTROL request with CN set to 1 * New: for each stream format (alternate setting) the list of supported sample rates is stored separately, the driver uses the 'Valid Alternate Settings Control' for this ----------------------------------------------------- V1.24.0 (December 22, 2010) ----------------------------------------------------- * New: added support for additional USB functions, will be exposed as child devices ----------------------------------------------------- V1.23.0 (December 21, 2010) ----------------------------------------------------- * Chg: dsp_al.h: DBGPRINT(x) macro redefined as DBGPRINTF(x) * Chg: for high-speed devices it is allowed to have a polling interval slower than per microframe * Fix: the installer will install the driver for a device although there is a more trusted driver available * New: added jack sensing support ----------------------------------------------------- V1.22.0 (December 2, 2010) ----------------------------------------------------- * Chg: revised USB Audio Class descriptor parsing, now supports USB Audio Class 1.0 devices * Chg: revised streaming layer to allow full-speed streaming and to support USB Audio Class 1.0 devices, improved streaming at low latencies (at small streaming buffer size) * Chg: ASIO worker thread priority increased, increases stability when smallest ASIO buffer size is used * Chg: ASIO DLL now reports buffer sizes that are compatible with Pro Tools 9. * Chg: custom.ini now supports absolute or relative path in AsioControlPanel= New setting AsioControlPanelArgs= added to specify optional arguments * Fix: On specific error conditions, ASIO CreateBuffers can return null pointers for ASIO buffers which causes ASIO host to crash * Fix: No more audio samples were flowing after the ASIO host has changed the sample rate (observed with Cubase and Nuendo) * Chg: added support for volume/mute control via private control API, TUSBAUDIO_AudioControlRequestSet can address feature units * New: added volume/mute change notifications through private control API TUSBAUDIO_RegisterDeviceNotification support new category TUSBAUDIO_NOTIFY_CATEGORY_VOLUME_CHANGE ----------------------------------------------------- V1.21.0 (October 15, 2010) ----------------------------------------------------- * New: added support for floating point arithmetic in DSP code ----------------------------------------------------- V1.20.0 (October 12, 2010) ----------------------------------------------------- * New: added support for Digital Signal Processing (DSP) plugin, plugin is implemented as a kernel mode driver * Chg: USB streaming layer implementation revised, audio latency improved ----------------------------------------------------- V1.19.0 (October 20, 2010) ----------------------------------------------------- * Fix: Driver crashes if device does not report a valid sample rate, or initial set sample rate request fails * Fix: Invalid return value (e.g. zero) from GET CLOCK_SELECTOR_CONTROL caused control panel to crash. * Fix: BSOD if ASIO host is closed after device was unplugged. * Chg: API changed: currentIndex parameter removed from: TUSBAUDIO_GetSupportedSampleRates TUSBAUDIO_GetSupportedClockSources TUSBAUDIO_GetSupportedStreamFormats * Chg: API changed: TUsbAudioClockSource revised * New: ASIO multi-client support can be disabled via registry * Fix: AsioReset not delivered to second ASIO client on sample rate change ----------------------------------------------------- V1.18.0 (September 08, 2010) ----------------------------------------------------- * Fix: Foobar 2000 playback through ASIO hangs when sample rate changes * New: ASIO control panel supported (through custom.ini) * Chg: MIDI Cable Number interpretation changed after clarification by Apple/Roland, Cable Number is now used as a zero-based index into the baAssocJackID array of the endpoint descriptor * New: device volume/mute change notifications are reflected in the Windows mixer ----------------------------------------------------- V1.17.0 (September 1, 2010) ----------------------------------------------------- * New: control panel supports stream format switching (based on alternate settings) * New: control panel supports firmware upgrade ----------------------------------------------------- V1.16.0 (August 11, 2010) ----------------------------------------------------- * New: SDK package available * Chg: private driver API support direct access to device descriptors and allows to send AudioClass control requests to specific nodes * Chg: control panel redesigned ----------------------------------------------------- V1.15.0 (July 27, 2010) ----------------------------------------------------- * New: WDM audio devices for SPDIF (PCM-only format) added * New: firmware image to be touched by DFU procedure can be selected * New: list of available clock sources is displayed in control panel (including clock source status information), current clock source can be selected * New: interrupt endpoint of AudioControl interface is polled for messages, control panel processes these messages * Chg: Demo/Eval restrictions relaxed: beep starts after 60 mins and is then repeated every 5 mins * Fix: DFU Console shortcut does not start dfucons.exe because of an invalid PATH variable * Fix: Windows XP WDM audio OUT was locked to 16 bit resolution * Fix: Windows XP WDM multichannel signal was mixed to channel 1/2 (stereo) * Fix: accidental BSOD while dynamically unloading WDM sound devices ----------------------------------------------------- V1.14.x ----------------------------------------------------- internal releases ----------------------------------------------------- V1.14.0 (June 30, 2010) ----------------------------------------------------- * Chg: timeout for AudioClass control USB requests can be configured per device type * Chg: DFU interface number is detected dynamically ----------------------------------------------------- V1.13.x ----------------------------------------------------- internal releases ----------------------------------------------------- V1.12.0 (June 14, 2010) ----------------------------------------------------- internal beta release * New: MIDI support included, tested with XDK only ----------------------------------------------------- V1.11.0 (June 03, 2010) ----------------------------------------------------- * Fix: Windows Vista volume playback and record devices often started muted (XMOS issue [8380]) * Fix: driver can't play and record at same time (XMOS issue [8425]) ----------------------------------------------------- V1.10.1 (June 02, 2010) ----------------------------------------------------- * Fix: distorted sound in out-only configuration (XMOS issues [8404], [8414]) ----------------------------------------------------- V1.10.0 (May 28, 2010) ----------------------------------------------------- * Fix: Line in was labeled "Speaker" * Fix: W7: Sample rate list was incomplete * Fix: XP: 24 bit format was not working * Chg: Control Panel displays current sample rate only, but does not allow sample rate switching ----------------------------------------------------- V1.00.0 (May 12, 2010) ----------------------------------------------------- * New: device sample rate can be set at the WDM audio interface (Windows Vista and higher only) * New: device volume and mute can be controlled by using the standard Windows controls * New: added customization support, this allows a licensee to create a customized driver package * New: added reference manual which includes a detailed description of the customization procedure * Chg: Test Kit is replaced by Customization Kit * Fix: control panel did not handle device hot-plug correctly when start in hidden mode ----------------------------------------------------- V0.50 (April 30, 2010) ----------------------------------------------------- * New: Device Firmware Upgrade (DFU) support added * Chg: delivery package consists of two parts - Package extractor: unpacks all files to disk, optionally starts driver installer - Driver Installer: installs drivers and tools, creates Start Menu entries, starts control panel ----------------------------------------------------- V0.40 (April 20, 2010) ----------------------------------------------------- * New: 64-bit ASIO support added * New: bit-perfect playback via ASIO interface verified * New: a free evaluation version of the driver package is available * Chg: driver-internal calculation of streaming buffer size and count revised to avoid lengthy DPCs * Fix: control panel did not handle device hot-plug correctly ----------------------------------------------------- V0.31 (February 23, 2010) ----------------------------------------------------- * New: control panel displays global driver status and error information * New: control panel reacts to driver activities (sampling rate change, ...) * New: package installer may execute driver setup * Fix: driver setup does not install device driver on Windows XP * Fix: revised ASIO sample counting and buffer pointer handling ----------------------------------------------------- V0.30 (February 12, 2010) ----------------------------------------------------- * New: added full-featured driver installer * Chg: driver sets MUTE=OFF and VOL=0db for all feature units (master channel only) of the device while loading ----------------------------------------------------- V0.24 (January 21, 2010) ----------------------------------------------------- * New: driver sets MUTE=OFF and VOL=MAX for all feature units (master channel only) of the device while loading * New: added support for device hot-plug while ASIO interface is active * Fix: revised sample rate management ----------------------------------------------------- V0.23 (January 19, 2010) - ASIO beta 1 ----------------------------------------------------- * New: added ASIO support (still beta) * New: buffer size can be changed via control panel * Chg: sample rate and buffer size settings are persistent now and will be restored on driver load * Chg: control panel resides in system tray now * New: added package installer to install all files on disk ----------------------------------------------------- V0.22 (December 22, 2009) ----------------------------------------------------- * Fix: audio output stops when playback is paused in playback application * Chg: default streaming buffer size increased to tolerate DPC latencies ----------------------------------------------------- V0.21 (December 15, 2009) ----------------------------------------------------- * New: driver allows to set sample rate via private API * New: driver uses implicit feedback for synchronization if an IN stream is available, device feedback endpoint will not receive IN tokens in this mode * New: control panel added ----------------------------------------------------- V0.20 (December 04, 2009) ----------------------------------------------------- * New: driver exposes a Windows sound device for SPDIF output * New: spy tool including extensive statistics added * New: driver console added ----------------------------------------------------- V0.10 (November 06, 2009) ----------------------------------------------------- Initial release.