
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.
