TUSBAudio - Thesycon USB Audio 2.0 Class Driver for Windows
Revision History
-----------------------------------------------------
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.