Commit 279f5a27 authored by Dipl.-Ing. Jonas Stienen's avatar Dipl.-Ing. Jonas Stienen

Merge branch 'develop'

parents 6dd09740 d68722ff
conf/VACore.ini
conf/VACore.experimental.ini
conf/*.ini
*.log
*.wav
HTML
*.bat
*.mat
......
......@@ -52,15 +52,20 @@ vista_use_package( ITACTC REQUIRED FIND_DEPENDENCIES )
vista_use_package( ITASampler REQUIRED FIND_DEPENDENCIES )
vista_use_package( OpenDAFF REQUIRED )
vista_use_package( SPLINE REQUIRED )
vista_use_package( Eigen REQUIRED )
# Optional packages
vista_find_package( RavenNet QUIET )
if( ITA_VA_CORE_LIBS_FFT_USES_FFTW3 )
set( ITA_VA_COPYING_GNU_GPL ON PARENT_SCOPE )
endif( )
if( NOT DEFINED ITA_VACORE_VERSION_MAJOR )
set( ITA_VACORE_VERSION_MAJOR "v2017" CACHE STRING "VACore version major (usually 'v' and year)" )
set( ITA_VACORE_VERSION_MAJOR "v2018" CACHE STRING "VACore version major (usually 'v' and year)" )
endif( )
if( NOT DEFINED ITA_VACORE_VERSION_MINOR )
set( ITA_VACORE_VERSION_MINOR "c" CACHE STRING "VACore version minor (usually a,b,c ...)" )
set( ITA_VACORE_VERSION_MINOR "a" CACHE STRING "VACore version minor (usually a,b,c ...)" )
endif( )
# Settings
......@@ -83,11 +88,11 @@ if( NOT DEFINED ITA_VACORE_EVENTS_ENABLED )
set( ITA_VACORE_EVENTS_ENABLED ON CACHE BOOL "VACore event handling" )
endif( )
if( NOT DEFINED ITA_VACORE_MAX_NUM_SOURCES )
set( ITA_VACORE_MAX_NUM_SOURCES 0 CACHE INT "VACore maximum number of sound sources ( 0 = unlimited )" )
if( NOT DEFINED ITA_VACORE_MAX_NUM_SOUND_SOURCES )
set( ITA_VACORE_MAX_NUM_SOUND_SOURCES 0 CACHE INT "VACore maximum number of sound sources ( 0 = unlimited )" )
endif( )
if( NOT DEFINED ITA_VACORE_MAX_NUM_LISTENERS )
set( ITA_VACORE_MAX_NUM_LISTENERS 0 CACHE INT "VACore maximum number of listeners ( 0 = unlimited )" )
if( NOT DEFINED ITA_VACORE_MAX_NUM_SOUND_RECEIVERS )
set( ITA_VACORE_MAX_NUM_SOUND_RECEIVERS 0 CACHE INT "VACore maximum number of sound receivers ( 0 = unlimited )" )
endif( )
if( NOT DEFINED ITA_VACORE_WITH_TTS_SIGNAL_SOURCE )
set( ITA_VACORE_WITH_TTS_SIGNAL_SOURCE ${TTSReleay} CACHE BOOL "VACore with text-to-speech signal source support" )
......@@ -115,8 +120,8 @@ endif( )
if( NOT DEFINED ITA_VACORE_WITH_AUDIO_BACKEND_PORTAUDIO )
set( ITA_VACORE_WITH_AUDIO_BACKEND_PORTAUDIO ON CACHE BOOL "Build VACore with Portaudio audio backend support" )
endif( )
if( NOT DEFINED ITA_VACORE_WITH_AUDIO_BACKEND_DUMMY )
set( ITA_VACORE_WITH_AUDIO_BACKEND_DUMMY OFF CACHE BOOL "Build VACore with dummy audio backend support" )
if( NOT DEFINED ITA_VACORE_WITH_AUDIO_BACKEND_VIRTUAL )
set( ITA_VACORE_WITH_AUDIO_BACKEND_VIRTUAL ON CACHE BOOL "Build VACore with virtual audio backend support (for offline simulations)" )
endif( )
......@@ -149,9 +154,12 @@ endif( )
if( NOT DEFINED ITA_VACORE_WITH_RENDERER_BINAURAL_AIR_TRAFFIC_NOISE )
set( ITA_VACORE_WITH_RENDERER_BINAURAL_AIR_TRAFFIC_NOISE ON CACHE BOOL "Build VACore with rendering module: air traffic noise (VATSS)" )
endif( )
if( NOT DEFINED ITA_VACORE_WITH_RENDERER_BINAURAL_OUTDOOR_NOISE )
set( ITA_VACORE_WITH_RENDERER_BINAURAL_OUTDOOR_NOISE OFF CACHE BOOL "Build VACore with rendering module: outdoor noise" )
endif( )
if( NOT DEFINED ITA_VACORE_WITH_RENDERER_MONAURAL_FREE_FIELD )
set( ITA_VACORE_WITH_RENDERER_MONAURAL_FREE_FIELD ON CACHE BOOL "Build VACore with rendering module: monaural free-field" )
if( NOT DEFINED ITA_VACORE_WITH_RENDERER_PROTOTYPE_FREE_FIELD )
set( ITA_VACORE_WITH_RENDERER_PROTOTYPE_FREE_FIELD ON CACHE BOOL "Build VACore with rendering module: prototype free-field" )
endif( )
if( NOT DEFINED ITA_VACORE_WITH_RENDERER_PROTOTYPE_DUMMY )
......@@ -203,12 +211,12 @@ include_directories( "include" )
if( ITA_CORE_LIBS_BUILD_STATIC )
add_definitions( -DITA_BASE_STATIC -DITA_DATA_SOURCES_STATIC -DITA_DIFFRACTION_STATIC -DITA_GEO_STATIC -DITA_CONVOLUTION_STATIC -DITA_FFT_STATIC -DITA_CTC_STATIC -DITA_SAMPLER_STATIC )
endif( ITA_CORE_LIBS_BUILD_STATIC )
add_definitions( -DITA_BASE_STATIC -DITA_DATA_SOURCES_STATIC -DITA_DIFFRACTION_STATIC -DITA_GEO_STATIC -DITA_CONVOLUTION_STATIC -DITA_FFT_STATIC -DITA_CTC_STATIC -DITA_DSP_STATIC -DITA_SAMPLER_STATIC )
endif( )
if( ITA_VISTA_BUILD_STATIC )
add_definitions( -DVISTABASE_STATIC -DVISTAMATH_STATIC -DVISTAASPECTS_STATIC -DVISTATOOLS_STATIC -DVISTAINTERPROCCOMM_STATIC )
endif( ITA_VISTA_BUILD_STATIC )
endif( )
add_definitions( -DIEEE754_64FLOAT=1 )
if( NOT ITA_VA_BUILD_STATIC )
......@@ -220,7 +228,7 @@ else( NOT ITA_VA_BUILD_STATIC )
set( BUILD_SHARED_LIBS OFF )
message( "Ignoring activated BUILD_SHARED_LIBS temporary because static VA requested" )
endif( BUILD_SHARED_LIBS )
endif( NOT ITA_VA_BUILD_STATIC )
endif( )
if( NOT WIN32 )
add_definitions( -std=gnu++11 )
......@@ -230,19 +238,19 @@ add_definitions( "-DVACORE_DEFAULT_LOG_LEVEL=${ITA_VACORE_DEFAULT_DEBUG_LEVEL}"
add_definitions( "-DVACORE_VERSION_MAJOR=\"${ITA_VACORE_VERSION_MAJOR}\"" )
add_definitions( "-DVACORE_VERSION_MINOR=\"${ITA_VACORE_VERSION_MINOR}\"" )
if( ${ITA_VACORE_MODULE_INTERFACE_ENABLED} )
add_definitions( "-DVACORE_MODULE_INTERFACE_ENABLED=1" )
if( ITA_VACORE_MODULE_INTERFACE_ENABLED )
add_definitions( "-DVACORE_MODULE_INTERFACE_ENABLED" )
endif( )
if( ${ITA_VACORE_NO_MODULE_INTERFACE_THROW_EXCEPTION} )
add_definitions( "-DVACORE_NO_MODULE_INTERFACE_THROW_EXCEPTION=1" )
if( ITA_VACORE_NO_MODULE_INTERFACE_THROW_EXCEPTION )
add_definitions( "-DVACORE_NO_MODULE_INTERFACE_THROW_EXCEPTION" )
endif( )
if( ${ITA_VACORE_EVENTS_ENABLED} )
add_definitions( "-DVACORE_EVENTS_ENABLED=1" )
if( ITA_VACORE_EVENTS_ENABLED )
add_definitions( "-DVACORE_EVENTS_ENABLED" )
endif( )
add_definitions( "-DVACORE_DEFAULT_CONFIGFILE=\"${ITA_VACORE_DEFAULT_CONFIG_FILE_NAME}\"" )
add_definitions( "-DVACORE_MAX_NUM_SOURCES=${ITA_VACORE_MAX_NUM_SOURCES}" )
add_definitions( "-DVACORE_MAX_NUM_LISTENERS=${ITA_VACORE_MAX_NUM_LISTENERS}" )
add_definitions( "-DVACORE_MAX_NUM_SOUND_SOURCES=${ITA_VACORE_MAX_NUM_SOUND_SOURCES}" )
add_definitions( "-DVACORE_MAX_NUM_SOUND_RECEIVERS=${ITA_VACORE_MAX_NUM_SOUND_RECEIVERS}" )
if( ITA_VACORE_WITH_AUDIO_BACKEND_ASIO )
add_definitions( -DVACORE_WITH_AUDIO_BACKEND_ASIO )
......@@ -250,71 +258,74 @@ endif( )
if( ITA_VACORE_WITH_AUDIO_BACKEND_PORTAUDIO )
add_definitions( -DVACORE_WITH_AUDIO_BACKEND_PORTAUDIO )
endif( )
if( ITA_VACORE_WITH_AUDIO_BACKEND_DUMMY )
add_definitions( -DVACORE_WITH_AUDIO_BACKEND_DUMMY )
if( ITA_VACORE_WITH_AUDIO_BACKEND_VIRTUAL )
add_definitions( -DVACORE_WITH_AUDIO_BACKEND_VIRTUAL )
endif( )
# Rendering definitions
if( ${ITA_VACORE_WITH_RENDERER_AMBIENT_MIXER} )
add_definitions( "-DVACORE_WITH_RENDERER_AMBIENT_MIXER=1" )
if( ITA_VACORE_WITH_RENDERER_AMBIENT_MIXER )
add_definitions( "-DVACORE_WITH_RENDERER_AMBIENT_MIXER" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_AMBISONICS_FREE_FIELD} )
add_definitions( "-DVACORE_WITH_RENDERER_AMBISONICS_FREE_FIELD=1" )
if( ITA_VACORE_WITH_RENDERER_AMBISONICS_FREE_FIELD )
add_definitions( "-DVACORE_WITH_RENDERER_AMBISONICS_FREE_FIELD" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_BINAURAL_FREE_FIELD} )
add_definitions( "-DVACORE_WITH_RENDERER_BINAURAL_FREE_FIELD=1" )
if( ITA_VACORE_WITH_RENDERER_BINAURAL_FREE_FIELD )
add_definitions( "-DVACORE_WITH_RENDERER_BINAURAL_FREE_FIELD" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_BINAURAL_ARTIFICIAL_REVERB} )
add_definitions( "-DVACORE_WITH_RENDERER_BINAURAL_ARTIFICIAL_REVERB=1" )
if( ITA_VACORE_WITH_RENDERER_BINAURAL_ARTIFICIAL_REVERB )
add_definitions( "-DVACORE_WITH_RENDERER_BINAURAL_ARTIFICIAL_REVERB" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_BINAURAL_ROOM_ACOUSTICS} )
if( ITA_VACORE_WITH_RENDERER_BINAURAL_ROOM_ACOUSTICS )
if( RAVENNET_FOUND )
vista_use_package( RavenNet REQUIRED FIND_DEPENDENCIES )
add_definitions( "-DVACORE_WITH_RENDERER_BINAURAL_ROOM_ACOUSTICS=1" )
else( RAVENNET_FOUND )
add_definitions( "-DVACORE_WITH_RENDERER_BINAURAL_ROOM_ACOUSTICS" )
else( )
message( "Could not find RavenNet, which is required by binaural room acoustics audio renderer" )
endif( RAVENNET_FOUND )
endif( )
endif( )
if( ITA_VACORE_WITH_RENDERER_BINAURAL_AIR_TRAFFIC_NOISE )
add_definitions( "-DVACORE_WITH_RENDERER_BINAURAL_AIR_TRAFFIC_NOISE" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_BINAURAL_AIR_TRAFFIC_NOISE} )
add_definitions( "-DVACORE_WITH_RENDERER_BINAURAL_AIR_TRAFFIC_NOISE=1" )
if( ITA_VACORE_WITH_RENDERER_BINAURAL_OUTDOOR_NOISE )
add_definitions( -DVACORE_WITH_RENDERER_BINAURAL_OUTDOOR_NOISE )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_MONAURAL_FREE_FIELD} )
add_definitions( "-DVACORE_WITH_RENDERER_MONAURAL_FREE_FIELD=1" )
if( ITA_VACORE_WITH_RENDERER_PROTOTYPE_FREE_FIELD )
add_definitions( "-DVACORE_WITH_RENDERER_PROTOTYPE_FREE_FIELD" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_PROTOTYPE_DUMMY} )
add_definitions( "-DVACORE_WITH_RENDERER_PROTOTYPE_DUMMY=1" )
if( ITA_VACORE_WITH_RENDERER_PROTOTYPE_DUMMY )
add_definitions( "-DVACORE_WITH_RENDERER_PROTOTYPE_DUMMY" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_PROTOTYPE_HEARING_AID} )
add_definitions( "-DVACORE_WITH_RENDERER_PROTOTYPE_HEARING_AID=1" )
if( ITA_VACORE_WITH_RENDERER_PROTOTYPE_HEARING_AID )
add_definitions( "-DVACORE_WITH_RENDERER_PROTOTYPE_HEARING_AID" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_PROTOTYPE_GENERIC_PATH} )
add_definitions( "-DVACORE_WITH_RENDERER_PROTOTYPE_GENERIC_PATH=1" )
if( ITA_VACORE_WITH_RENDERER_PROTOTYPE_GENERIC_PATH )
add_definitions( "-DVACORE_WITH_RENDERER_PROTOTYPE_GENERIC_PATH" )
endif( )
if( ${ITA_VACORE_WITH_RENDERER_VBAP_FREE_FIELD} )
add_definitions( "-DVACORE_WITH_RENDERER_VBAP_FREE_FIELD=1" )
if( ITA_VACORE_WITH_RENDERER_VBAP_FREE_FIELD )
add_definitions( "-DVACORE_WITH_RENDERER_VBAP_FREE_FIELD" )
endif( )
# Reproduction definitions
if( ${ITA_VACORE_WITH_REPRODUCTION_TALKTHROUGH} )
add_definitions( "-DVACORE_WITH_REPRODUCTION_TALKTHROUGH=1" )
if( ITA_VACORE_WITH_REPRODUCTION_TALKTHROUGH )
add_definitions( "-DVACORE_WITH_REPRODUCTION_TALKTHROUGH" )
endif( )
if( ${ITA_VACORE_WITH_REPRODUCTION_HEADPHONES} )
add_definitions( "-DVACORE_WITH_REPRODUCTION_HEADPHONES=1" )
if( ITA_VACORE_WITH_REPRODUCTION_HEADPHONES )
add_definitions( "-DVACORE_WITH_REPRODUCTION_HEADPHONES" )
endif( )
if( ${ITA_VACORE_WITH_REPRODUCTION_AMBISONICS} )
add_definitions( "-DVACORE_WITH_REPRODUCTION_AMBISONICS=1" )
if( ITA_VACORE_WITH_REPRODUCTION_AMBISONICS )
add_definitions( "-DVACORE_WITH_REPRODUCTION_AMBISONICS" )
endif( )
if( ${ITA_VACORE_WITH_REPRODUCTION_BINAURAL_NCTC} )
add_definitions( "-DVACORE_WITH_REPRODUCTION_BINAURAL_NCTC=1" )
if( ITA_VACORE_WITH_REPRODUCTION_BINAURAL_NCTC )
add_definitions( "-DVACORE_WITH_REPRODUCTION_BINAURAL_NCTC" )
endif( )
if( ${ITA_VACORE_WITH_REPRODUCTION_BINAURAL_MIXDOWN} )
add_definitions( "-DVACORE_WITH_REPRODUCTION_BINAURAL_MIXDOWN=1" )
if( ITA_VACORE_WITH_REPRODUCTION_BINAURAL_MIXDOWN )
add_definitions( "-DVACORE_WITH_REPRODUCTION_BINAURAL_MIXDOWN" )
endif( )
if( ${ITA_VACORE_WITH_REPRODUCTION_AMBISONICS_BINAURAL_MIXDOWN} )
add_definitions( "-DVACORE_WITH_REPRODUCTION_AMBISONICS_BINAURAL_MIXDOWN=1" )
if( ITA_VACORE_WITH_REPRODUCTION_AMBISONICS_BINAURAL_MIXDOWN )
add_definitions( "-DVACORE_WITH_REPRODUCTION_AMBISONICS_BINAURAL_MIXDOWN" )
endif( )
if( ${ITA_VACORE_WITH_REPRODUCTION_MIXER_LOW_FREQUENCY} )
add_definitions( "-DVACORE_WITH_REPRODUCTION_MIXER_LOW_FREQUENCY=1" )
if( ITA_VACORE_WITH_REPRODUCTION_MIXER_LOW_FREQUENCY )
add_definitions( "-DVACORE_WITH_REPRODUCTION_MIXER_LOW_FREQUENCY" )
endif( )
string( TIMESTAMP VACORE_CMAKE_DATE "%Y-%m-%d" )
......@@ -338,7 +349,7 @@ vista_add_files_to_sources( ProjectSources "conf" NON_RECURSIVE SOURCE_GROUP "co
vista_add_files_to_sources( ProjectSources "data" SOURCE_GROUP_MIRROR_DIR "data" "wav" "daff" "mat" "ac" "skp" )
add_library( VACore ${ProjectSources} )
add_library( VACore ${ProjectSources} "conf/VACore.ini.proto" )
target_link_libraries( VACore ${VISTA_USE_PACKAGE_LIBRARIES} ) # contains all libraries from vista_use_package() calls
set( BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_TEMP} )
......@@ -360,7 +371,12 @@ endif()
# deploy
if( ITA_VACORE_DEPLOY_WITH_COMMON_DATA )
install( DIRECTORY "data" DESTINATION "." )
install( FILES "data/HD650_all_inv.wav" DESTINATION "data" )
install( FILES "data/ITA_Artificial_Head_5x5_44kHz_128.v17.ir.daff" DESTINATION "data" )
install( FILES "data/License.md" DESTINATION "data" )
install( FILES "data/Singer.v17.ms.daff" DESTINATION "data" )
install( FILES "data/Trumpet1.v17.ms.daff" DESTINATION "data" )
install( FILES "data/WelcomeToVA.wav" DESTINATION "data" )
endif( )
if( ITA_VACORE_DEPLOY_WITH_COMMON_CONFIGS )
......
Copyright 2015-2017 Institute of Technical Acoustics (ITA), RWTH Aachen University
Copyright 2015-2018 Institute of Technical Acoustics (ITA), RWTH Aachen University
Licensed under the Apache License, Version 2.0 (the "License");
you may not use files of this project except in compliance with the License.
......
......@@ -6,7 +6,7 @@ created using a factory method and exposes the IVACore abstract class methods. M
### License
Copyright 2015-2017 Institute of Technical Acoustics (ITA), RWTH Aachen University
Copyright 2015-2018 Institute of Technical Acoustics (ITA), RWTH Aachen University
Licensed under the Apache License, Version 2.0 (the "License");
you may not use files of this project except in compliance with the License.
......@@ -34,3 +34,24 @@ VACore is an in-house development of ITA and not for use to anyone else. Help is
### Quick build guide
It is recommended to clone and follow the build guide of the parent project [VA](https://git.rwth-aachen.de/ita/VA), which includes this project as a submodule.
### Deployment & publication
Please do NOT deploy and publish a VA core version with TTS (text-to-speech) activated, as it would also include the CereVoice SDK. This is not in compliance with the license agreement (requires account with academic e-mail address). For your research project, use it strictly interenally.
*The developers of VA will not be hold responsible for license violations.*
### Additional safety warning
High sound pressure levels can do severe harm to the human auditory system. Please double check if the system you are using is absolutely safe, because VA will not take any responsibility in case of an accident, as stated in the license agreement. This is only a precaution list as a suggestion for typical situations, but may not be applicable in others.
To counteract an hazardous environment, make yourself familiar with all components included. We suggest that you double check the following conditions:
1. Know the maximum sound power that your emitters (loudspeakers, headphones, amplifiers) are capable of.
2. Know the minimum distance to the ear canal entries of your subject or user. Estimate the maximum possible sound pressure and assure that the range is not harmful to humans.
3. Never trust the audio device input stream (coming from VA or any other software). If an uninitialized buffer is physically played back, it is likely that signals at maximum capacity are emitted.
4. Start at low volumes for initial tests. Be suspicious if a gain or volume control is operating at maximum or over the usual working range (i.e. over 0dB or over a factor of 1.0).
5. Put a personal emergency plan into action: which gain control or muted button will you use in case of an emergency? Also, consider to install an emergency off switch.
6. Use limiters and configure them appropriately.
#include <VACore.h>
#include <VACoreEvent.h>
#include <VA.h>
#include <VACoreFactory.h>
#include <VACoreVersion.h>
#include <VAException.h>
#include <iostream>
#include <vector>
......@@ -14,7 +11,7 @@ using namespace std;
int main( int, char** )
{
IVACore* pCore = NULL;
IVAInterface* pCore = NULL;
try
{
CVAStruct oConfig;
......
......@@ -55,12 +55,10 @@ voices_dir = data/Voices
# Macros can be defined and will be replaced with given value by the core. Usage: "$(MyMacroName)/file.abc" -> "MyValue/file.abc"
# Macros are substituted forwardly by key name order (use with care), otherwise stay untouched: A = B; C = $(A) -> $(C) is B
DefaultHRIR = HRIR/ITA-Kunstkopf_HRIR_AP11_Pressure_Equalized_3x3_256.v17.ir.daff
HumanDir = Directivity/Singer.v17.ms.daff
Trumpet = Directivity/Trumpet1.v17.ms.daff
# Legacy support, please use $(DefaultHRIR) macro
VADefaultHRIRDataset = $(DefaultHRIR)
DemoSound = WelcomeToVA.wav
DefaultHRIR = ITA_Artificial_Head_5x5_44kHz_128.v17.ir.daff
HumanDir = Singer.v17.ms.daff
Trumpet = Trumpet1.v17.ms.daff
# Define some other macros (examples)
ProjectName = MyVirtualAcousticsProject
......@@ -69,24 +67,27 @@ ProjectName = MyVirtualAcousticsProject
[Debug]
# Record device input and store to hard drive (will record every input channel)
OutputRecordEnabled = false
OutputRecordFilePath = $(ProjectName)_in.wav
InputRecordEnabled = false
InputRecordFilePath = $(ProjectName)_in.wav
# Record device output and store to hard drive (will record every output channel)
InputRecordEnabled = false
OutputRecordEnabled = false
OutputRecordFilePath = $(ProjectName)_out.wav
# Set log level: 0 = quiet; 1 = errors; 2 = warnings (default); 3 = info; 4 = verbose; 5 = trace;
LogLevel = @ITA_VACORE_DEFAULT_DEBUG_LEVEL@
# Controls the core update rate for pushed events (like level meters)
TriggerUpdateMilliseconds = 100
[Audio driver]
# MANDATORY: Audio driver backend (ASIO|Portaudio)
# MANDATORY: Audio driver backend (ASIO|Portaudio|Virtual)
#Driver = Virtual
#Driver = ASIO
Driver = Portaudio
# MANDATORY: Audio device (e.g. ASIO4ALL v2, ASIO Hammerfall DSP, Portaudio 'default', 0,1,2,3,...)
# MANDATORY: Audio device ( e.g. ASIO4ALL v2, ASIO Hammerfall DSP, Portaudio 'default', 0,1,2,3,..., virtual user 'Trigger' )
#Device = ASIO4ALL v2
#Device = ASIO Hammerfall DSP
#Device = ASIO Fireface USB
......@@ -95,31 +96,52 @@ Driver = Portaudio
#Device = M-Audio Fast Track Ultra ASIO
#Device = Yamaha Steinberg USB ASIO
Device = default
#Device = Trigger
# MANDATORY: Sampling rate [Hz]
Samplerate = 44100
# OPTIONAL: Buffersize used for audio streaming [Samples]
# AUTO will determine the buffersize from the audio device automatically
# OPTIONAL: Buffer size / block length used for audio streaming [Samples]
# AUTO will determine the buffer size from the audio device automatically [recommended, set in sound card driver configuration]
# Note: Adjust this to your latency requirements
Buffersize = AUTO
BufferSize = AUTO
# --= Audio renderers =--
# Define number of output channels manually (e.g. for virtual device)
OutputChannels = AUTO
# Syntax [Renderer:<ID>] <ID> can be freely chosen, but must be unique
#
# Fields:
#
# Enabled = (true|false) Create the renderer or skip it (default: true)
# Class = <TYPE> Renderer type/class to create [MANDATORY]
# Outputs = <LIST> Modules the renderer sends its output samples to (hardware output or reproduction module) [MANDATORY]
#
[Calibration]
# The amplitude calibration mode either sets the internal conversion from
# sound pressure to an electrical or digital amplitude signal (audio stream)
# to 94dB (default) or to 124dB. The rendering modules will use this calibration
# mode to calculate from physical values to an amplitude that can be forwarded
# to the reproduction modules. If a reproduction module operates in calibrated
# mode, the resulting physical sound pressure at receiver location can be maintained.
DefaultAmplitudeCalibrationMode = 94dB
# Set the minimum allowed distance (m) to a sound source (point source can get infinitely loud).
# This can also be used if sound sources appear too loud near-by, but in the limiting range this
# rendering will not be physically correct.
DefaultMinimumDistance = 0.25
# The default distance is used when spherical spreading is deactivated
DefaultDistance = 2.0
[HomogeneousMedium]
DefaultSoundSpeed = 344.0 # m/s
DefaultStaticPressure = 101125.0 # [Pa]
DefaultTemperature = 20.0 # [Degree centigrade]
DefaultRelativeHumidity = 20.0 # [Percent]
DefaultShiftSpeed = 0.0, 0.0, 0.0 # 3D vector in m/s
[Renderer:MyBinauralFreeField]
Enabled = true
Class = BinauralFreeField
Outputs = MyTalkthroughHeadphones
Reproductions = MyTalkthroughHeadphones
OutputDetectorEnabled = false
RecordOutputEnabled = false
RecordOutputFilePath = $(ProjectName)_Renderer_MyBinauralFreeField_Output.wav
......@@ -138,12 +160,12 @@ class = AmbientMixer
Description = Low-cost renderer to make sound audible without spatializations
Enabled = false
OutputGroup = MyDesktopHP
Outputs = MyTalkthroughHeadphones
Reproductions = MyTalkthroughHeadphones
[Renderer:MyBinauralArtificialReverb]
Class = BinauralArtificialReverb
Enabled = false
Outputs = MyTalkthroughHeadphones
Reproductions = MyTalkthroughHeadphones
ReverberationTime = 0.71
RoomVolume = 200
RoomSurfaceArea = 88
......@@ -154,12 +176,11 @@ SoundPowerCorrectionFactor = 0.05
TimeSlotResolution = 0.005
MaxReflectionDensity = 12000.0
ScatteringCoefficient = 0.1
SpeedOfSound = 344.0
[Renderer:MyBinauralRoomAcoustics]
Class = BinauralRoomAcoustics
Enabled = false
Outputs = MyTalkthroughHeadphones
Reproductions = MyTalkthroughHeadphones
# Setup options: Local, Remote, Hybrid
Setup = Local
ServerIP = PC-SEACEN
......@@ -174,10 +195,10 @@ UpdateRateER = 4.2
UpdateRateDD = 0.08
DirectSoundPowerCorrectionFactor = 0.05
[Renderer:MyMonauralFreeField]
Class = MonauralFreeField
[Renderer:MyPrototypeFreeField]
Class = PrototypeFreeField
Enabled = false
Outputs = MyTalkthroughHeadphones
Reproductions = MyTalkthroughHeadphones
MotionModelNumHistoryKeys = 10000
MotionModelWindowSize = 0.2
MotionModelWindowDelay = 0.1
......@@ -185,14 +206,13 @@ MotionModelLogInputSources = false
MotionModelLogEstimatedOutputSources = false
DumpListeners = false
DumpListenersGain = 1.0
SpeedOfSound = 344.0
SwitchingAlgorithm = linear
[Renderer:MyHearingAidRenderer]
Class = PrototypeHearingAid
Enabled = false
Outputs = HearingAidTalkthrough
#Outputs = MyTalkthroughHeadphones
Reproductions = HearingAidTalkthrough
#Reproductions = MyTalkthroughHeadphones
UpdateRateDS = 120.0
UpdateRateIS = 20.0
UpdateRateRT = 1.0
......@@ -207,23 +227,24 @@ DumpListenersGain = 10
[Renderer:MyGenericRenderer]
Class = PrototypeGenericPath
Enabled = false
Outputs = MyTalkthroughHeadphones
Reproductions = MyTalkthroughHeadphones
NumChannels = 2
IRFilterLengthSamples = 88200
IRFilterDelaySamples = 0
OutputMonitoring = true
RecordOutputEnabled = false
RecordOutputFilePath = $(ProjectName)_Renderer_MyGenericRenderer_Output.wav
[Renderer:MyAirTrafficNoiseRenderer]
Class = BinauralAirTrafficNoise
Enabled = false
Outputs = MyTalkthroughHeadphones
Reproductions = MyTalkthroughHeadphones
[Renderer:MyVBAPFreefield]
Class = VBAPFreeField
Enabled = false
Output = VRLab_Horizontal_LS
Outputs = MixdownHeadphones
Reproductions = MixdownHeadphones
[Renderer:MyDummyRenderer]
......@@ -231,7 +252,7 @@ class = PrototypeDummy
Description = Dummy renderer for testing and benchmarking
Enabled = false
OutputGroup = MyDesktopHP
Outputs = MyTalkthroughHeadphones
Reproductions = MyTalkthroughHeadphones