VACore.ini.proto 11.5 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
51
52
53
#VRLabSetup = VASetup.VRLab.ini


[Macros]
54

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

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

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

Jonas Stienen's avatar
Jonas Stienen committed
66
67
68

[Debug]

69
# Record device input and store to hard drive (will record every input channel)
70
71
InputRecordEnabled = false
InputRecordFilePath = $(ProjectName)_in.wav
Jonas Stienen's avatar
Jonas Stienen committed
72

73
# Record device output and store to hard drive (will record every output channel)
74
OutputRecordEnabled = false
75
OutputRecordFilePath = $(ProjectName)_out.wav
Jonas Stienen's avatar
Jonas Stienen committed
76
77

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

80
81
# Controls the core update rate for pushed events (like level meters)
TriggerUpdateMilliseconds = 100
Jonas Stienen's avatar
Jonas Stienen committed
82
83
84

[Audio driver]

85
86
# MANDATORY: Audio driver backend (ASIO|Portaudio|Virtual)
#Driver = Virtual
Jonas Stienen's avatar
Jonas Stienen committed
87
88
89
#Driver = ASIO
Driver = Portaudio

90
# 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
91
92
93
94
95
#Device = ASIO4ALL v2
#Device = ASIO Hammerfall DSP
#Device = ASIO Fireface USB
#Device = ASIO MADIface USB
#Device = Focusrite USB 2.0 Audio Driver
96
#Device = M-Audio Fast Track Ultra ASIO
97
#Device = Yamaha Steinberg USB ASIO
Jonas Stienen's avatar
Jonas Stienen committed
98
Device = default
99
#Device = Trigger
Jonas Stienen's avatar
Jonas Stienen committed
100
101
102
103

# MANDATORY: Sampling rate [Hz]
Samplerate = 44100

104
105
# 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
106
# Note: Adjust this to your latency requirements
107
108
109
110
BufferSize = AUTO

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


113
114
115
116
117
118
119
120
121
[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
122

123
124
125
126
127
128
129
130
# 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
131

132
133
134
135
136
137
138
[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
139
140


141
[Renderer:MyBinauralFreeField]
142
Enabled = true
143
Class = BinauralFreeField
144
Reproductions = MyTalkthroughHeadphones
145
OutputDetectorEnabled = false
146
147
RecordOutputEnabled = false
RecordOutputFilePath = $(ProjectName)_Renderer_MyBinauralFreeField_Output.wav
Jonas Stienen's avatar
Jonas Stienen committed
148
149
150
151
152
153
154
155
HRIRFilterLength = 256
MotionModelNumHistoryKeys = 10000
MotionModelWindowSize = 0.1
MotionModelWindowDelay = 0.1
MotionModelLogInputSources = false
MotionModelLogEstimatedOutputSources = false
MotionModelLogInputListener = false
MotionModelLogEstimatedOutputListener = false
156
SwitchingAlgorithm = linear
Jonas Stienen's avatar
Jonas Stienen committed
157
158
159
160
161
162

[Renderer:MyAmbientMixer]
class = AmbientMixer
Description = Low-cost renderer to make sound audible without spatializations
Enabled = false
OutputGroup = MyDesktopHP
163
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
164
165
166
167

[Renderer:MyBinauralArtificialReverb]
Class = BinauralArtificialReverb
Enabled = false
168
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
169
170
171
172
173
174
175
176
177
178
179
180
181
ReverberationTime = 0.71
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
182
Enabled = false
183
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
184
185
186
187
188
# Setup options: Local, Remote, Hybrid
Setup = Local
ServerIP = PC-SEACEN
HybridLocalTasks = DS
HybridRemoteTasks = ER_IS, DD_RT
189
RavenDataBasePath = $(raven_data)
Jonas Stienen's avatar
Jonas Stienen committed
190
191
192
193
194
195
196
197
# 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

198
199
[Renderer:MyPrototypeFreeField]
Class = PrototypeFreeField
200
Enabled = false
201
Reproductions = MyTalkthroughHeadphones
202
203
204
205
206
207
208
MotionModelNumHistoryKeys = 10000
MotionModelWindowSize = 0.2
MotionModelWindowDelay = 0.1
MotionModelLogInputSources = false
MotionModelLogEstimatedOutputSources = false
DumpListeners = false
DumpListenersGain = 1.0
209
SwitchingAlgorithm = linear
210

Jonas Stienen's avatar
Jonas Stienen committed
211
[Renderer:MyHearingAidRenderer]
212
Class = PrototypeHearingAid
Jonas Stienen's avatar
Jonas Stienen committed
213
Enabled = false
214
215
Reproductions = HearingAidTalkthrough
#Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
216
217
218
219
220
221
222
223
224
225
226
227
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

[Renderer:MyGenericRenderer]
228
Class = PrototypeGenericPath
Jonas Stienen's avatar
Jonas Stienen committed
229
Enabled = false
230
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
231
NumChannels = 2
232
IRFilterLengthSamples = 88200
233
OutputMonitoring = true
234
235
RecordOutputEnabled = false
RecordOutputFilePath = $(ProjectName)_Renderer_MyGenericRenderer_Output.wav
Jonas Stienen's avatar
Jonas Stienen committed
236
237
238
239

[Renderer:MyAirTrafficNoiseRenderer]
Class = BinauralAirTrafficNoise
Enabled = false
240
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
241
242
243


[Renderer:MyVBAPFreefield]
244
Class = VBAPFreeField
Jonas Stienen's avatar
Jonas Stienen committed
245
246
Enabled = false
Output = VRLab_Horizontal_LS
247
Reproductions = MixdownHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
248
249
250


[Renderer:MyDummyRenderer]
251
class = PrototypeDummy
Jonas Stienen's avatar
Jonas Stienen committed
252
253
254
Description = Dummy renderer for testing and benchmarking
Enabled = false
OutputGroup = MyDesktopHP
255
Reproductions = MyTalkthroughHeadphones
Jonas Stienen's avatar
Jonas Stienen committed
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276


# --= 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).


# 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
#
#- Diese Inputs mssen als Signalquellen im Core erscheinen


[Reproduction:MyTalkthroughHeadphones]
Class = Talkthrough
Enabled = true
Name = Generic talkthrough to output group
Outputs = MyDesktopHP
277
278
InputDetectorEnabled = false
OutputDetectorEnabled = false
279
280
281
282
RecordInputEnabled = false
RecordInputFilePath = $(ProjectName)_Reproduction_MyTalkthroughHeadphones_Input.wav
RecordOutputEnabled = false
RecordOutputFilePath = $(ProjectName)_Reproduction_MyTalkthroughHeadphones_Output.wav
Jonas Stienen's avatar
Jonas Stienen committed
283

284
285
286
287
288
[Reproduction:MySubwooferMixer]
Class = LowFrequencyMixer 
Enabled = false
Name = Generic low frequency (subwoofer) loudspeaker mixer
Outputs = Cave_SW
289
MixingChannels = ALL
290

Jonas Stienen's avatar
Jonas Stienen committed
291
292
293
294
[Reproduction:MyHD600]
Class = Headphones
Enabled = false
# Headphone impulse response inverse file path (normalized)
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
295
HpIRInvFile = HPEQ/HD600_all_eq_128_stereo.wav
Jonas Stienen's avatar
Jonas Stienen committed
296
297
298
299
300
301
302
303
304
305
#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
306
Outputs = MyDesktopLS
Jonas Stienen's avatar
Jonas Stienen committed
307
308
309
310
TrackedListenerID = 1
# algorithm: reg|...
Algorithm = reg
RegularizationBeta = 0.01
311
CTCFilterLength = 4096
Jonas Stienen's avatar
Jonas Stienen committed
312
313
DelaySamples = 2048
UseTrackedListenerHRIR = false
Dipl.-Ing. Jonas Stienen's avatar
Dipl.-Ing. Jonas Stienen committed
314
CTCDefaultHRIR = $(DefaultHRIR)
Jonas Stienen's avatar
Jonas Stienen committed
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
Optimization = OPTIMIZATION_NONE

[Reproduction:MyAmbisonics]
Class = HOA
Enabled = false
Name = Higher-Order Ambisonics
Enabled = false
Algorithm = HOA
Outputs = VRLab_Horizontal_LS

[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
330
VirtualOutput = MyDesktopLS
Jonas Stienen's avatar
Jonas Stienen committed
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
TrackedListenerID = 1
HRIRFilterLength = 128

[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
352
353
354
355
[Output:MyDesktopLS]
Description = Desktop user with loudspeaker monitors
Devices = MyLSLeft, MyLSRight

Jonas Stienen's avatar
Jonas Stienen committed
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370

# -- 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
371
372
373
374
375
376
377
378
379
380
381
382
[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
383
384
385
386
387
[InputDevice:MyLineIn]
Type = MIC
Description = Table microphone in front of user using line-in
Position = 0, -0.3, 0.2
Channels = 1