VACore.ini.proto 14.3 KB
Newer Older
Jonas Stienen's avatar
Jonas Stienen committed
1
#
2 3 4 5
#  -------------------------------------------------------------------------------------------
#
#    VVV        VVV A
#     VVV      VVV AAA        Virtual Acoustics (VA)
Dipl.-Ing. Jonas Stienen's avatar
Typos  
Dipl.-Ing. Jonas Stienen committed
6
#      VVV    VVV   AAA       Real-time auralization for virtual reality    
7
#       VVV  VVV     AAA
Dipl.-Ing. Jonas Stienen's avatar
Typos  
Dipl.-Ing. Jonas Stienen committed
8
#        VVVVVV       AAA     (c) Copyright Institute of Technical Acoustics (ITA)
9 10 11 12 13 14
#         VVVV         AAA        RWTH Aachen University (http://www.akustik.rwth-aachen.de)
#
#  -------------------------------------------------------------------------------------------
#
#  WARNING: This configuration file for the VACore has been automatically created by CMake.
# 			You can move this file and change the argument path accordingly, otherwise
15
#			your changes will be overwritten. Alternatively, you can directly modify  
16
#			the prototype file 'VACore.ini.proto' and re-run CMake.
Jonas Stienen's avatar
Jonas Stienen committed
17 18 19 20
#


[Paths]
21 22

# Any entry value will be added to the search path list, but only if existing! They will also be made available as macros (see below).
Jonas Stienen's avatar
Jonas Stienen committed
23
# If a file can not be found during runtime by local name, the core will try to locate it using the paths in ascending name order.
24 25
# Macros are not substituted, here. However, it is recommended to use AddSearchPath during runtime, if you have individual directories
# you want to add.
Jonas Stienen's avatar
Jonas Stienen committed
26

27
# Relative configuration path (with some more hardware setup files)
Jonas Stienen's avatar
Jonas Stienen committed
28
conf_dir = conf
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
29
conf_dir_dev = @CMAKE_CURRENT_SOURCE_DIR@/conf
30 31

# Relative data path (with some common files)
Jonas Stienen's avatar
Jonas Stienen committed
32
data_dir = data
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
33
data_dir_dev = @CMAKE_CURRENT_SOURCE_DIR@/data
34
raven_data = @ITA_RAVEN_DATA_PATH@
Jonas Stienen's avatar
Jonas Stienen committed
35

36 37 38 39 40 41
# Absolute data path with further files (big data, not shipped with VA)
big_data_dir = @ITA_VACORE_BIG_DATA_DIR@

# Inside scene data directory
InsideSceneData = @INSIDE_SCENE_DATA@

42 43 44
# Path for TTS Voices of CereVoice
voices_dir = data/Voices

Jonas Stienen's avatar
Jonas Stienen committed
45 46

[Files]
47

Jonas Stienen's avatar
Jonas Stienen committed
48
# List further config files to be appended to this configuration (also looking at paths)
49

Jonas Stienen's avatar
Jonas Stienen committed
50
#VRLabSetup = VASetup.VRLab.ini
51
VASetupHOAIdeal = VASetup.HOAIdeal.ini
Jonas Stienen's avatar
Jonas Stienen committed
52 53 54


[Macros]
55

Jonas Stienen's avatar
Jonas Stienen committed
56 57
# 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
58

59
DemoSound = WelcomeToVA.wav
60
DefaultHRIR = ITA_Artificial_Head_5x5_44kHz_128.v17.ir.daff
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
61 62
HumanDir = Singer.v17.ms.daff
Trumpet = Trumpet1.v17.ms.daff
63

64 65 66
# Define some other macros (examples)
ProjectName = MyVirtualAcousticsProject

Jonas Stienen's avatar
Jonas Stienen committed
67 68 69 70

[Debug]

# Set log level: 0 = quiet; 1 = errors; 2 = warnings (default); 3 = info; 4 = verbose; 5 = trace;
71
LogLevel = @ITA_VACORE_DEFAULT_DEBUG_LEVEL@
Jonas Stienen's avatar
Jonas Stienen committed
72

73 74
# Controls the core update rate for pushed events (like level meters)
TriggerUpdateMilliseconds = 100
Jonas Stienen's avatar
Jonas Stienen committed
75 76 77

[Audio driver]

78 79
# MANDATORY: Audio driver backend (ASIO|Portaudio|Virtual)
#Driver = Virtual
Jonas Stienen's avatar
Jonas Stienen committed
80 81 82
#Driver = ASIO
Driver = Portaudio

83
# MANDATORY: Audio device ( e.g. ASIO4ALL v2, ASIO Hammerfall DSP, Portaudio 'default', 0,1,2,3,..., virtual user 'Trigger' )
Jonas Stienen's avatar
Jonas Stienen committed
84 85 86 87 88
#Device = ASIO4ALL v2
#Device = ASIO Hammerfall DSP
#Device = ASIO Fireface USB
#Device = ASIO MADIface USB
#Device = Focusrite USB 2.0 Audio Driver
89
#Device = M-Audio Fast Track Ultra ASIO
90
#Device = Yamaha Steinberg USB ASIO
Jonas Stienen's avatar
Jonas Stienen committed
91
Device = default
92
#Device = Trigger
Jonas Stienen's avatar
Jonas Stienen committed
93 94 95 96

# MANDATORY: Sampling rate [Hz]
Samplerate = 44100

97 98
# 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]
Jonas Stienen's avatar
Jonas Stienen committed
99
# Note: Adjust this to your latency requirements
100 101 102 103
BufferSize = AUTO

# Define number of output channels manually (e.g. for virtual device)
OutputChannels = AUTO
Jonas Stienen's avatar
Jonas Stienen committed
104

105 106 107 108 109 110 111 112 113 114
# Record device input and store to hard drive (will record every input channel)
RecordInputEnabled = false
RecordInputFileName = device_in.wav
RecordInputBaseFolder = recordings/$(ProjectName)/device

# Record device output and store to hard drive (will record every output channel)
RecordOutputEnabled = false
RecordOutputFileName = device_out.wav
RecordOutputBaseFolder = recordings/$(ProjectName)/device

Jonas Stienen's avatar
Jonas Stienen committed
115

116 117 118 119 120 121 122 123 124
[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
Jonas Stienen's avatar
Jonas Stienen committed
125

126 127 128 129 130 131 132 133
# 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

Jonas Stienen's avatar
Jonas Stienen committed
134

135 136 137 138 139 140 141
[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
Jonas Stienen's avatar
Jonas Stienen committed
142 143


144
[Renderer:MyBinauralFreeField]
145
Enabled = true
146
Class = BinauralFreeField
147
Reproductions = MyTalkthroughHeadphones
148
OutputDetectorEnabled = false
149
RecordOutputEnabled = false
150
RecordOutputFileName = renderer_out.wav
151
RecordOutputBaseFolder = recordings/$(ProjectName)/renderer/binaural/freefield
Jonas Stienen's avatar
Jonas Stienen committed
152 153 154 155 156 157 158 159
HRIRFilterLength = 256
MotionModelNumHistoryKeys = 10000
MotionModelWindowSize = 0.1
MotionModelWindowDelay = 0.1
MotionModelLogInputSources = false
MotionModelLogEstimatedOutputSources = false
MotionModelLogInputListener = false
MotionModelLogEstimatedOutputListener = false
160
SwitchingAlgorithm = linear
161
FilterBankType = iir_burg_order10
Jonas Stienen's avatar
Jonas Stienen committed
162 163 164 165 166

[Renderer:MyAmbientMixer]
class = AmbientMixer
Description = Low-cost renderer to make sound audible without spatializations
Enabled = false
167
Reproductions = MyAmbisonicsBinauralMixdown
168 169 170 171
# OutputGroup = MyDesktopHP
NumChannels = 9
SignalSourceMixingEnabled = true
SamplerEnabled = false
Jonas Stienen's avatar
Jonas Stienen committed
172

Michael Kohnen's avatar
Michael Kohnen committed
173 174 175
[Renderer:HOARender]
Class = AmbisonicsFreeField
Enabled = false
176
Reproductions = MyAmbisonics, MyAmbisonicsBinauralMixdown
Michael Kohnen's avatar
Michael Kohnen committed
177 178 179 180
TruncationOrder = 2
ReproductionCenterPos = 0,1.34,0
SwitchingAlgorithm = cubicspline

Jonas Stienen's avatar
Jonas Stienen committed
181 182 183
[Renderer:MyBinauralArtificialReverb]
Class = BinauralArtificialReverb
Enabled = false
184
Reproductions = MyTalkthroughHeadphones
185
ReverberationTimes = 1, 0.71, 0.3
Jonas Stienen's avatar
Jonas Stienen committed
186 187 188 189 190 191 192 193 194 195 196 197
RoomVolume = 200
RoomSurfaceArea = 88
MaxReverbFilterLengthSamples = 88200
PositionThreshold = 1.0
AngleThresholdDegree = 30
SoundPowerCorrectionFactor = 0.05
TimeSlotResolution = 0.005
MaxReflectionDensity = 12000.0
ScatteringCoefficient = 0.1

[Renderer:MyBinauralRoomAcoustics]
Class = BinauralRoomAcoustics
198
Enabled = false
199
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
200 201 202 203 204
# Setup options: Local, Remote, Hybrid
Setup = Local
ServerIP = PC-SEACEN
HybridLocalTasks = DS
HybridRemoteTasks = ER_IS, DD_RT
205
RavenDataBasePath = $(raven_data)
Jonas Stienen's avatar
Jonas Stienen committed
206 207 208 209 210 211 212 213
# Task processing (Timeout = with desired update rate, for resource efficient processing; EventSync = process on request (for sporadic updates); Continuous = update as often as possible, for standalone server)
TaskProcessing = Timeout
# Desired update rates in Hz, may lead to resource problems
UpdateRateDS = 12.0
UpdateRateER = 4.2
UpdateRateDD = 0.08
DirectSoundPowerCorrectionFactor = 0.05

214
[Renderer:MyBinauralClustering]
215 216 217 218 219 220
Enabled = false
Class = BinauralClustering
Reproductions = MyTalkthroughHeadphones
OutputDetectorEnabled = false
RecordOutputEnabled = false
RecordOutputFileName = renderer_out.wav
221
RecordOutputBaseFolder = recordings/$(ProjectName)/renderer/binaural/clustering
222 223 224 225 226 227 228 229 230
HRIRFilterLength = 256
MotionModelNumHistoryKeys = 10000
MotionModelWindowSize = 0.4
MotionModelWindowDelay = 0.2
MotionModelLogInputSources = false
MotionModelLogEstimatedOutputSources = false
MotionModelLogInputListener = false
MotionModelLogEstimatedOutputListener = false
SwitchingAlgorithm = linear
231 232 233
NumClusters = 12
AngularDistanceThreshold = 0.33

234
[Renderer:MyBinauralOutdoorNoise]
235 236 237 238 239 240
Enabled = false
Class = BinauralOutdoorNoise
Reproductions = MyTalkthroughHeadphones
OutputDetectorEnabled = false
RecordOutputEnabled = false
RecordOutputFileName = renderer_out.wav
241
RecordOutputBaseFolder = recordings/$(ProjectName)/renderer/binaural/outdoornoise
242 243 244 245
HRIRFilterLength = 256
SwitchingAlgorithm = linear
NumClusters = 6
AngularDistanceThreshold = 0.0
246

247 248
[Renderer:MyPrototypeFreeField]
Class = PrototypeFreeField
249
Enabled = false
250
Reproductions = MyTalkthroughHeadphones
251
MotionModelNumHistoryKeys = 10000
252
MotionModelWindowSize = 0.1
253 254 255 256 257
MotionModelWindowDelay = 0.1
MotionModelLogInputSources = false
MotionModelLogEstimatedOutputSources = false
DumpListeners = false
DumpListenersGain = 1.0
258
SwitchingAlgorithm = linear
259
FilterBankType = IIR
260

Jonas Stienen's avatar
Jonas Stienen committed
261
[Renderer:MyHearingAidRenderer]
262
Class = PrototypeHearingAid
Jonas Stienen's avatar
Jonas Stienen committed
263
Enabled = false
264 265
Reproductions = HearingAidTalkthrough
#Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
266 267 268 269 270 271 272 273 274 275
UpdateRateDS = 120.0
UpdateRateIS = 20.0
UpdateRateRT = 1.0
RenderingGain = 1.0
RenderingDelayInMs = 10.0
HRIRFilterLength = 256
# Dump individual listener signals
DumpListeners = false
# Gain for listener dumping [Factor]
DumpListenersGain = 10
276
FilterBankType = IIR
Jonas Stienen's avatar
Jonas Stienen committed
277 278

[Renderer:MyGenericRenderer]
279
Class = PrototypeGenericPath
Jonas Stienen's avatar
Jonas Stienen committed
280
Enabled = false
281
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
282
NumChannels = 2
283
IRFilterLengthSamples = 88200
284
OutputMonitoring = true
285
RecordOutputEnabled = false
286
RecordOutputFileName = renderer_out.wav
287
RecordOutputBaseFolder = recordings/$(ProjectName)/renderer/prototype/generic
Jonas Stienen's avatar
Jonas Stienen committed
288

289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309
[Renderer:MyImageSourceRenderer]
Class = PrototypeImageSource
Enabled = false
Reproductions = MyTalkthroughHeadphones
NumChannels = 2
RoomLength = 5
RoomWidth = 5
RoomHeight = 5
MaxOrder = 2
Betax1 = 0.1
Betax2 = 0.1
Betay1 = 0.1
Betay2 = 0.1
Betaz1 = 0.1
Betaz2 = 0.1
DirectSound = true
HRIRFilterLength = 256
IRFilterLengthSamples = 88200
OutputMonitoring = true
RecordOutputEnabled = false
RecordOutputFileName = renderer_out.wav
310
RecordOutputBaseFolder = recordings/$(ProjectName)/renderer/prototype/imagemodel
311

Jonas Stienen's avatar
Jonas Stienen committed
312 313 314
[Renderer:MyAirTrafficNoiseRenderer]
Class = BinauralAirTrafficNoise
Enabled = false
315
Reproductions = MyTalkthroughHeadphones
316 317 318
RecordOutputEnabled = false
RecordOutputFileName = renderer_out.wav
RecordOutputBaseFolder = recordings/$(ProjectName)/renderer/binaural/airtrafficnoise
319
FilterBankType = IIR
Jonas Stienen's avatar
Jonas Stienen committed
320 321

[Renderer:MyVBAPFreefield]
322
Class = VBAPFreeField
Jonas Stienen's avatar
Jonas Stienen committed
323 324
Enabled = false
Output = VRLab_Horizontal_LS
325
Reproductions = MixdownHeadphones
326
FilterBankType = IIR
Michael Kohnen's avatar
Michael Kohnen committed
327
ReproductionCenterPos = 0,0,0
Jonas Stienen's avatar
Jonas Stienen committed
328 329

[Renderer:MyDummyRenderer]
330
class = PrototypeDummy
Jonas Stienen's avatar
Jonas Stienen committed
331 332 333
Description = Dummy renderer for testing and benchmarking
Enabled = false
OutputGroup = MyDesktopHP
334
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
335 336 337 338 339 340 341 342


# --= Audio reproduction =--

# Here you write down the audio reproduction modules that are created after VA starts.
# Each section has the format [Reproduction:<ID>] (<ID> must be unique and is freely chooseable).


343 344 345 346
# Warum diese Schicht mit Eingngen und Ausgngen?
#- Vernnftige Gruppierung fr Meters
#- Abstraktion der Renderer und Reproductions von physikalischen Kanlen
#- Zusatzfunktionalitt unbh. von Renderer und Reproductions: Equalization
Jonas Stienen's avatar
Jonas Stienen committed
347
#
348
#- Diese Inputs mssen als Signalquellen im Core erscheinen
Jonas Stienen's avatar
Jonas Stienen committed
349 350 351 352 353 354 355


[Reproduction:MyTalkthroughHeadphones]
Class = Talkthrough
Enabled = true
Name = Generic talkthrough to output group
Outputs = MyDesktopHP
356 357
InputDetectorEnabled = false
OutputDetectorEnabled = false
358
RecordInputEnabled = false
359 360
RecordInputFileName = reproduction_in.wav
RecordInputBaseFolder = recordings/$(ProjectName)/reproduction/MyTalkthroughHeadphones
361
RecordOutputEnabled = false
362 363
RecordOutputFileName = reproduction_out.wav
RecordOutputBaseFolder = recordings/$(ProjectName)/reproduction/MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
364

365 366 367 368 369
[Reproduction:MySubwooferMixer]
Class = LowFrequencyMixer 
Enabled = false
Name = Generic low frequency (subwoofer) loudspeaker mixer
Outputs = Cave_SW
370
MixingChannels = ALL
371

Jonas Stienen's avatar
Jonas Stienen committed
372 373 374 375
[Reproduction:MyHD600]
Class = Headphones
Enabled = false
# Headphone impulse response inverse file path (normalized)
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
376
HpIRInvFile = HPEQ/HD600_all_eq_128_stereo.wav
Jonas Stienen's avatar
Jonas Stienen committed
377 378 379 380 381 382 383 384 385 386
#HpIRInvFilterLength = 22050
# Headphone impulse response inverse gain for calibration ( HpIR * HpIRInv == 0dB )
HpIRInvCalibrationGainDecibel = 0.1
Name = Equalized Sennheiser HD600 headphones
Outputs = MyDesktopHP

[Reproduction:MyNCTC]
Class = NCTC
Enabled = false
Name = Crosstalk cancellation for N loudspeaker
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
387
Outputs = MyDesktopLS
Jonas Stienen's avatar
Jonas Stienen committed
388 389 390 391
TrackedListenerID = 1
# algorithm: reg|...
Algorithm = reg
RegularizationBeta = 0.01
392
CTCFilterLength = 4096
Jonas Stienen's avatar
Jonas Stienen committed
393 394
DelaySamples = 2048
UseTrackedListenerHRIR = false
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
395
CTCDefaultHRIR = $(DefaultHRIR)
Jonas Stienen's avatar
Jonas Stienen committed
396 397 398 399 400 401 402 403
Optimization = OPTIMIZATION_NONE

[Reproduction:MyAmbisonics]
Class = HOA
Enabled = false
Name = Higher-Order Ambisonics
Algorithm = HOA
Outputs = VRLab_Horizontal_LS
Michael Kohnen's avatar
Michael Kohnen committed
404
ReproductionCenterPos = 0,0,0
Jonas Stienen's avatar
Jonas Stienen committed
405

406 407
[Reproduction:MyAmbisonicsBinauralMixdown]
Class = AmbisonicsBinauralMixdown
408 409
Enabled = false
Name = Higher-Order Ambisonics dynamic binaural downmix renderer
Michael Kohnen's avatar
Michael Kohnen committed
410 411
HRIRFilterLength = 256
VirtualOutput = HOAIdeal
412
Outputs = MyDesktopHP
413
TruncationOrder = 2
Michael Kohnen's avatar
Michael Kohnen committed
414 415 416 417
ReproductionCenterPos = 0,0,0
HRIR = $(DefaultHRIR)
#HRIR= HRIR/MyDaffv17HRTF.daff
TrackedListenerID = 1
418
TrackingDelaySeconds = 0
419

Jonas Stienen's avatar
Jonas Stienen committed
420 421 422 423 424
[Reproduction:MyMixdownHeadphones]
Class = BinauralMixdown
Enabled = false
Name = Binaural mixdown of virtual loudspeaker setup using HRIR techniques
Outputs = MyDesktopHP
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
425
VirtualOutput = MyDesktopLS
Jonas Stienen's avatar
Jonas Stienen committed
426
TrackedListenerID = 1
Michael Kohnen's avatar
Michael Kohnen committed
427
HRIRFilterLength = 256
Jonas Stienen's avatar
Jonas Stienen committed
428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446

[Reproduction:HearingAidTalkthrough]
Class = Talkthrough
Enabled = false
Name = Hearing aid takthrough
Outputs = HearingAid


[Setup]

# hardware setup example for a desktop environment, usually more sophisticated
# settings are outsourced to a VASetup.ini that is included in the 'Files' section

# -- outputs

[Output:MyDesktopHP]
Description = Desktop user with headphones
Devices = MyHP

Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
447 448 449 450
[Output:MyDesktopLS]
Description = Desktop user with loudspeaker monitors
Devices = MyLSLeft, MyLSRight

Jonas Stienen's avatar
Jonas Stienen committed
451 452 453 454 455 456 457 458 459 460 461 462 463 464 465

# -- inputs

[Input:MyDesktopMike]
Description = Generic desktop microphone, i.e. from WebCam or Line-In
Devices = MyLineIn


# -- hardware devices

[OutputDevice:MyHP]
Type = HP
Description = Headphone hardware device (two-channels)
Channels = 1,2

Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
466 467 468 469 470 471 472 473 474 475 476 477
[OutputDevice:MyLSLeft]
Type = LS
Description = Loudspeaker hardware device
Channels = 1
Position = -0.5, 0.2, -0.4

[OutputDevice:MyLSRight]
Type = LS
Description = Loudspeaker hardware device
Channels = 2
Position = 0.5, 0.2, -0.4

Jonas Stienen's avatar
Jonas Stienen committed
478 479 480 481 482
[InputDevice:MyLineIn]
Type = MIC
Description = Table microphone in front of user using line-in
Position = 0, -0.3, 0.2
Channels = 1