All notable changes to the 3DTuneIn Toolkit will be documented in this file.
General:
- Target Unity build is now 2019.4.
- Spatializer plugin now shares HRTF data between audio sources.
- Audio sources can be created dynamically while a scene is running.
- It is no longer necessary to make any C# calls when instantiating an audio source.
- When the scene starts, the spatializer component will create a silent audio source to trigger the one-time loading of the HRTF data by the spatializer plugin
- HRTFs are bundled in 'bytes' format rather than converted manually in the Editor.
- Replaced manual specification of file location for HRTF files with dropdown menu that is automatically populated
- Removed now obsolete test applications and created a simple sample scene to test the spatializer, hearing aid and hearing loss plugins.
- Streamlined build process:
- Visual Studio solutions automatically copy built binaries into the BuildUnityWrapper package for x86 and x64.
- On Mac, there is a shell script
copy_bundle_from_build_into_BuildUnityWrapperPackage.sh
which will combine iOS simulator and device binaries into a single bundle, as well as copying in the MacOS bundle into the BuildUnityWrapperPackage project.
- C++ project files updated to:
- Visual Studio 2019 (Windows, Android)
- Xcode 11 (MacOS, iOS)
General:
- Fixed compiling error in new Unity versions
Hearing aid simulation:
- Fixed Fig6 button bug
General:
- Uses new version of the Toolkit that fixes axes issues.
- Fixed no sound bug
Hearing aid simulation:
- Added Fig6 button to Dynamic Equalizer
Hearing loss simulation:
- Fixed temporal distortion bug
General:
- Uses new repository
- GUI now admits different HRTF and ILD files for each permitted sample rate
Binaural Spatialization:
- New API functions to get buffer size and sample rate
- Sample rates different than 44.1, 48 or 96kHz are not permitted
Documentation:
- Reference manual: added description of the new functions
General:
- Added 11 .png files to Assets/3DTuneIn/Resources with images of the hearing loss clasiffication scale curves
Hearing aid simulation:
- Added global title in GUI: HEARING AID SIMULATION
Hearing loss simulation:
- Added support for HL Classification Scale in: plugin, API and GUI
- Added support for Temporal Distortion presets (in GUI and API)
- Added support for Frequency Smearing presets (in GUI and API)
- Removed audiometry presets, from GUI and API
- SetTemporalDistortionAutocorrelationFilterCutoff method renamed to SetTemporalDistortionBandwidth
- Added support for 12800Hz value in BandUpperLimit parameter of Temporal Distortion
- Split of HL GUI into Audiometry controls and HL controls
- Removed the concept of Basic and Advanced HL controls in GUI and API
- Moved calibration to global controls, in GUI and API documentation
- Changed range of dBHL levels in audiometry, from 0 to 160 dB (maximum possible with classification scale)
- Added global titles in GUI: AUDIOMETRY and HEARING LOSS SIMULATION
- Improved some error log messages
Documentation:
- Reference manual: reestructuration of section 4, removing the concept of Basic vs Advanced HL API
- Reference manual: added description of HL classification scale methods and types
- Reference manual: added methods for setting HL presets in temporal distortion and frequency smearing, in HL
- Reference manual: changed example of HL API (section 4.7) after removing audiometry presets
- Quick start guide and Reference manual: changed screenshots of HL and HA GUIs
Binaural spatialization:
- Fixed bug in Toolkit core: directionality enable/disable was always affecting only to left ear
- Fixed bug causing some toggles in GUI to show values not coherent with API and plugin
Hearing loss simulation:
- Fixed bug of GUI styles initialization in HL editor script (when HL was alone in the scene, without HA).
- Fixed bug causing some toggles in GUI to show values not coherent with API and plugin
Hearing aid simulation:
- Fixed bug of consistency between GUI and API in Tone Control parameters.
- Dynamic EQ band gains are now editable in GUI text boxes
- Fixed bug causing some toggles in GUI to show values not coherent with API and plugin
Binaural spatialization:
- Fixed problem in scenes created from scratch in Unity 2017, where spatialization was not initialized on Start.
Hearing loss simulation:
- Fixed bug: HL GUI was not shown in Audio Mixer if HA API script was not added to the scene.
- Fixed bug: HL GUI was partially shown even if HL API script was not added to the scene.
- Plugin rebuilt to fix a bug internal to the toolkit, where the frequency smearing window was not properly normalized.
Hearing aid simulation:
- Fixed bug: HA GUI was partially shown even if HA API script was not added to the scene.
General:
- Tested in Unity 2017.
Hearing loss simulation:
- New temporal distortion module, with corresponding API and GUI controls.
- New frequency smearing module, with corresponding API and GUI controls.
- New switches for enabling/disabling non-linear attenuation (multiband expander) for each ear.
- Reestructuration of HL modules, with new names, in GUI.
Documentation:
- Reference manual: added description of new methods and types in HL API.
- Reference manual: changed screenshots of the HL editor GUI.
- Quick start guide: changed screenshots of the HL editor GUI.
General:
- Added file Assets/3DTuneIn/Editor/Common3DTIGUI.cs with common definitions for shared look and feel of all editor GUIs.
- Added About button (with associated file Assets/3DTuneIn/Editor/About3DTI.cs) to all GUIs.
- Removed files GUIHelpers.cs and MathHelpers.cs from Assets/3DTuneIn/Editor.
Binaural spatialization:
- New High Performance mode, replacing HRTF convolution and near field filter with a single high performance ILD filter.
- New No Spatialization mode, disabling HRTF convolution and all ILD filters.
- The former spatialization mode (HRTF and near field ILD) is now called High Quality mode.
- Included resource file "HRTF_ILD_44100.3dti-ild" (in 3DTuneIn/Data/HighPerformance/ILD) for modelling listener in High Performance mode.
- Moved resource files for High Quality mode to folder 3DTuneIn/Data/HighQuality.
- Replaced file "default.3dti-ild" (for near field ILD) with "NearFieldCompensation_ILD_44100.3dti-ild".
- Added new method for changing spatialization mode (SetSpatializationMode), between High performance, High quality and None (see Reference Manual).
- Modified implementation of EnableSpatialization and DisableSpatialization. These methods now do not enable/disable far LPF and distance attenuation.
- The SetModHRTF has been removed from the API. Now HRTF convolution can de disabled by calling: SetSpatializationMode(SPATIALIZATION_MODE_NONE).
- The look and feel of the editor GUI has been fully changed.
- Tooltips included in most controls of the GUI.
- Added option for calling API methods independently for each AudioSource.
Hearing aid simulation:
- When attaching API_3DTI_HA.cs to a game object, the only public parameter shown in Inspector is the mixer.
- Fixed bug in HA limiter, causing saturation.
- The look and feel of the editor GUI has been fully changed.
- Tooltips included in most controls of the GUI.
Hearing loss simulation:
- Hearing loss simulator is redone from scratch. All API methods and GUI controls are new.
- When attaching API_3DTI_HL.cs to a game object, the only public parameter shown in Inspector is the mixer.
- The look and feel of the editor GUI has been fully changed.
- Tooltips included in most controls of the GUI.
Documentation:
- Reference manual: added description of the three spatialization modes in section 3.1.
- Reference manual: added description of AudioSource optional parameters in section 3.1.
- Reference manual: changed description of EnableSpatialization and DisableSpatialization methods in section 3.1.
- Reference manual: added description of method SetSpatializationMode in section 3.2.
- Reference manual: added description of "source" optional parameter to all methods having it.
- Reference manual: changed description of LoadHRTFBinary method in section 3.2.
- Reference manual: method LoadILDBinary is now called LoadILDNearFieldBinary and its description is changed in section 3.2.
- Reference manual: added description of method LoadILDHighPerformanceBinary in section 3.2.
- Reference manual: changed description of method SetCustomITD in section 3.2.
- Reference manual: method SetModILD is changed to SetModNearFieldILD in section 3.3.
- Reference manual: method SetModHRTF removed from section 3.3.
- Reference manual: changed description of method GetLimiterCompression in section 3.3.
- Reference manual: title of section 3.4 changed from "Hearing Aid Directionality" to "Directionality".
- Reference manual: improved example in section 3.5.
- Reference manual: section 4 is fully rewritten, after implementing the new HL simulator from scratch.
- Reference manual: changed example in section 5.5.
- Reference manual: changed all screenshots of the editor GUI.
- Quick start guide: changed most screenshots.
- Quick start guide: brief explanation of the spatialization modes and new resource files in section 2.
- Quick start guide: added description of how the spatialization plugin interacts with default AudioSource parameters in section 2.
- Quick start guide: all text is revised.
General:
- Added API_3DTI_Common.cs script with common definitions for all APIs.
- All "int ear" parameters in all APIs are replaced with T_ear type from API_3DTI_Common.
- Simplified iOS builds with AppDelegate to avoid the need of modifying the XCode project built by Unity.
- Reorganization of Assets folder structure
- Fixed clicks when changing filter coefficients, i.e: when changing HA LPF or HPF cutoff, when moving fast along far or near distances (from Toolkit).
Binaural spatialization:
- Fixed bug of crash after multiple calls to StartBinauralSpatializer.
- Fixed bug of crash when trying to spatialize an AudioSource with no clip assigned.
- Fixed bug of crash when an audio source is inside the listener's head (now a warning is reported to the debug log).
- Improved debug log of binaural spatializer.
- Resources folder is automatically created when the first .bytes file is generated.
- Added optional limiter control, both in GUI and API.
- Changed default magnitude for anechoic distance attenuation to -3dB.
- Added HRTF resampling step, both in GUI and API.
Hearing aid simulation:
- New type and constant definitions in API.
- Method SetEQFromFig6 method now returns the list of gains calculated for each band.
- High level control in HA for EQ Tone (low, mid, high), both in GUI and API.
- Full debug log messages for HA.
- Removed dynamic EQ ON/Off switch, both from GUI and from API, now replaced with Compression Percentage control.
- Added normalization control for Dynamic EQ curves, both in GUI and API.
- Sliders shown in HA editor GUI for EQ band gains and quantization noise bits, now show integer values.
- Added optional imiter control, both in GUI and API.
- Fixed bug related with coherency in parameters between plugin, GUI and API scripts.
Hearing loss simulation:
- Replaced constant definitions in API with enumerated types.
- Fixed bug in API and GUI, not handling correctly the relation between the global HL switch and the independent switches for each subprocess.
- Fixed bug related with coherency in parameters between plugin, GUI and API scripts.
Documentation:
- New section in Reference Manual (Section 2) explaining the common definitions of API_3DTI_Common: T_ear.
- Added new methods to Binaural Spatializer API in Reference Maunal (Section 3.3): SwithOnOffLimiter, GetLimiterCompression.
- Improved description of SetHADirectionalityExtend method in Reference Manual (Section 3.4).
- Improved example of use of Binaural Spatializer API in Reference Manual (Section 3.5).
- Improved section in Reference Manual (Section 4.1) with updated type and constant definitions for HL: T_HLEffect, T_HLProcessChain, T_HLEQBand, EQ presets and NUM_EQ_BANDS.
- Updated example of use of HL in Reference Manual (Section 4.4).
- New section in Reference Manual (Section 5.1) explaining the type and constant definitions for HA: T_HAToneBand, T_HADynamicEQBand, T_HADynamicEQLevel, NUM_EQ_CURVES, NUM_EQ_BANDS.
- Added new Global Settings method in HA Reference Manual (Section 5.2): SwitchLimiterOnOff.
- Added new methods to Dynamic EQ in HA Reference Manual (Section 5.3): SetTone, SetCompressionPercentage, SwitchNormalizationOnOff, SetNormalizationLevel, GetNormalizationOffset.
- Removed method SetStandardEQBandGain from HA Reference Manual (Section 5.3).
- Improved example of use of HA API (Section 5.5).
- Removed old section 5 (Building Apps for Target Platforms) from Quick Start Guide.
- Added tips on audio clip import options to Quick Guide (new Section 5), thanks to Riccardo Braga.
- First version with full support for iOS target platform.
- All audio plugins are joined into one single plugin (audioplugin3DTIToolkit).
- Added method StartBinauralSpatializer to Spatializer API to support enabling/disabling audio sources, enabling/disabling spatialize attribute, creating new spatialized audio sources on runtime, and switching off the PlayOnAwake attribute.
- Fixed error in standalone builds in Windows, where the path of the resource files was not found (Now, .bytes resource files are created for all platforms to avoid future issues).
- Fixed wrong name of one method in HA API (SetStaticEQBandGain, now is SetStandardEQBandGain). Now, all methods have the names written in the Reference Manual.
- Added "ILD" to the Spatializer GUI text, where appropriate.
- Fixed bug in GUI Editor scripts with potential risk of showing toggles with incorrect values.
- Reduced output from Toolkit debugger while processing (for Android logcat).
- New section on Quick Start Guide regarding target builds.
- Fixed bug in HA GUI causing the toggles for each ear not sending appropriate commands to the plugin.
- Now all methods of the Spatializer API return a bool for checking communication errors.
- Code cleaning of all Editor and API scripts.
- First version with this README file.
- Fixed issue with code signing in Mac OS Sierra
- Fixed bug in creation of binary files for Spatializer in Android builds
- Cleaning of warnings from editor GUI scripts
- Fixed bug in core with distance attenuation
- Full support for Hearing Aid Simulation (both spatialization and postprocessing effects).
- Hearing Loss Simulation for Mac OSX platform.
- Added "Write Debug Log" to GUI to help support.
- Spatializer plugin is now called "3DTi Binaural Spatializer".
- HRTF memory usage dramatically reduced.
- HL GUI code included in package.
- Added Scale Factor parameter to Spatializer