VACore issueshttps://git.rwth-aachen.de/ita/VACore/-/issues2024-01-29T14:45:28+01:00https://git.rwth-aachen.de/ita/VACore/-/issues/38Use `std::unordered_map` for sound path renderers2024-01-29T14:45:28+01:00Pascal PalendaUse `std::unordered_map` for sound path renderers`std::unordered_map`, on average, has a performance benefit over the ordered `std::map` (linear vs logarithmic; 1 < log(N)). For a large number of paths, this could add up.`std::unordered_map`, on average, has a performance benefit over the ordered `std::map` (linear vs logarithmic; 1 < log(N)). For a large number of paths, this could add up.https://git.rwth-aachen.de/ita/VACore/-/issues/37Implement the full VA interface2023-11-22T16:16:12+01:00Pascal PalendaImplement the full VA interfaceSome interface methods of VA do only implement half of the functionality.
For example, `GetSoundSourceInfo` returns the `CVASoundSourceInfo` struct.
However, it does not populate all the data members.
With the changes in https://git.rw...Some interface methods of VA do only implement half of the functionality.
For example, `GetSoundSourceInfo` returns the `CVASoundSourceInfo` struct.
However, it does not populate all the data members.
With the changes in https://git.rwth-aachen.de/ita/VANet/-/issues/6 and https://git.rwth-aachen.de/ita/VABase/-/issues/1 this is a good opportunity to improve, adapt and fix the interface.https://git.rwth-aachen.de/ita/VACore/-/issues/36Check implementation of IIR FilterBankTypes2023-11-22T16:11:17+01:00Christian Georg DreierCheck implementation of IIR FilterBankTypesWhen using DAFF directivities with the FreeField renderer with "iir_biquads_order10" as FilterBankType in the according .ini file, the magnitude spectra are heavily averaged, resulting in wrong third-octave band spectra (~20 dB errors pe...When using DAFF directivities with the FreeField renderer with "iir_biquads_order10" as FilterBankType in the according .ini file, the magnitude spectra are heavily averaged, resulting in wrong third-octave band spectra (~20 dB errors per band can be reached). However, switching to "fir_spline_linear_phase" filters perfectly solves this "problem".https://git.rwth-aachen.de/ita/VACore/-/issues/35Getting directivity infos doesn't work2023-10-18T17:36:01+02:00Rouben RehmanGetting directivity infos doesn't work**Expected behaviour**
Calling `GetDirectivityInfos` on a `DirectivityManager` object returns a struct containing all loaded directivities and information about them.
E.g. by running `va.get_directivity_infos` in MATLAB.
**Real behavi...**Expected behaviour**
Calling `GetDirectivityInfos` on a `DirectivityManager` object returns a struct containing all loaded directivities and information about them.
E.g. by running `va.get_directivity_infos` in MATLAB.
**Real behaviour**
1) If no directivites are loaded by VA, the call returns an empty object as desired.
2) If at least one directivity is loaded, the call fails with error:
```
[libprotobuf ERROR E:.CPMcache\grpc\98fef6bade25f2f3b9396b40fbd1fa64c700ebc4\third_party\protobuf\src\google\protobuf\wire_format_lite.cc:618] String field 'VA.DirectivityInfo.description' contains invalid UTF-8 data when serializing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.
```Rouben RehmanRouben Rehmanhttps://git.rwth-aachen.de/ita/VACore/-/issues/34Possible issue when setting signal sources without removing them first2023-09-26T08:42:32+02:00Pascal PalendaPossible issue when setting signal sources without removing them firstNow it happened twice, that a binaural synthesis sounded wrong (shifted towards one side).
This behaviour was observed by @julia.seitz and @cosima.ermert .
From what we know at the moment, this could be caused by setting a new signal so...Now it happened twice, that a binaural synthesis sounded wrong (shifted towards one side).
This behaviour was observed by @julia.seitz and @cosima.ermert .
From what we know at the moment, this could be caused by setting a new signal source to a sound source without removing the prior signal source first.Philipp SchäferPascal PalendaPhilipp Schäferhttps://git.rwth-aachen.de/ita/VACore/-/issues/33Bug: Starting VACore without an audio device present leads to crash2023-08-23T13:33:43+02:00Philipp SchäferBug: Starting VACore without an audio device present leads to crashTested via VAServer (Windows) + Portaudio + Default deviceTested via VAServer (Windows) + Portaudio + Default devicePhilipp SchäferPascal PalendaPhilipp Schäferhttps://git.rwth-aachen.de/ita/VACore/-/issues/32Bug: Setting the RecordOutputFileName without extension leads to unknown exce...2023-08-15T11:11:54+02:00Philipp SchäferBug: Setting the RecordOutputFileName without extension leads to unknown exceptionLeaving out the extension when setting a record filename leads to an unknown exception.
This was experienced setting the output file for reproduction module from VAMatlab:
```matlab
reproduction_id = 'MyAmbisonicsBinauralMixdown';
param...Leaving out the extension when setting a record filename leads to an unknown exception.
This was experienced setting the output file for reproduction module from VAMatlab:
```matlab
reproduction_id = 'MyAmbisonicsBinauralMixdown';
parameter_struct.RecordOutputBaseFolder = fullfile( pwd, 'output');
parameter_struct.RecordOutputFileName = 'ambisonics_binaural_mixdown_out'; %instead of: 'ambisonics_binaural_mixdown_out.wav'
va.set_reproduction_module_parameters( reproduction_id, parameter_struct );
```
It is likely, that this issue also occurs if
- recording the input
- recording a rendering module
- simply using the wrong extension
Probably, the exception is thrown by the class trying to open the file.Philipp SchäferPascal PalendaPhilipp Schäferhttps://git.rwth-aachen.de/ita/VACore/-/issues/31Lock/Unlock update not working anymore since grpc2023-08-21T15:01:34+02:00Philipp SchäferLock/Unlock update not working anymore since grpcCurrently, lock_update and unlock_update must apparently be called by the same thread:
```
Error using VAMatlab
Synchronized modification may only be ended by the same thread that begun it
Error in VA/unlock_update (line 2913)...Currently, lock_update and unlock_update must apparently be called by the same thread:
```
Error using VAMatlab
Synchronized modification may only be ended by the same thread that begun it
Error in VA/unlock_update (line 2913)
[newStateID] = VAMatlab('unlock_update', this.handle);
```
Solution: Remove this restriction
File: [`locking.cpp` -> lines 87ff.](https://git.rwth-aachen.de/ita/VACore/-/blob/master/src/core/locking.cpp#L87)Philipp SchäferPascal PalendaPhilipp Schäferhttps://git.rwth-aachen.de/ita/VACore/-/issues/30Allow Rendering/Reproduction channel "mismatch"2023-03-22T08:22:45+01:00Philipp SchäferAllow Rendering/Reproduction channel "mismatch"Per default, number of rendering output and reproduction input channels **must** match.
Especially, for ambisonics signals, it would be good to have the option to allow a missmatch:
- less reproduction input channels => higher channels w...Per default, number of rendering output and reproduction input channels **must** match.
Especially, for ambisonics signals, it would be good to have the option to allow a missmatch:
- less reproduction input channels => higher channels will be omitted
- more input channels => channels have a zero signal
I am not 100% sure whether the second case is usefull. Thus, the respective option should either allow none, one or both of the "missmatches".Philipp SchäferPascal PalendaPhilipp Schäferhttps://git.rwth-aachen.de/ita/VACore/-/issues/29Better errorhandling for channel rendere/reproduction missmatch2023-03-22T08:20:31+01:00Philipp SchäferBetter errorhandling for channel rendere/reproduction missmatchCurrently, there is just an error from ITAPatchBay. It would be good to catch the respective exception and create an error with more meta info.
(e.g. which rendering / reproduction module)Currently, there is just an error from ITAPatchBay. It would be good to catch the respective exception and create an error with more meta info.
(e.g. which rendering / reproduction module)Philipp SchäferPascal PalendaPhilipp Schäferhttps://git.rwth-aachen.de/ita/VACore/-/issues/28Missing `DELAY_SAMPLES` causes no Audio output2023-02-28T10:57:19+01:00Pascal PalendaMissing `DELAY_SAMPLES` causes no Audio outputWhen the loaded DAFF HRTF does not set `DELAY_SAMPLES`, there is no audio output.
Only a warning is displayed.When the loaded DAFF HRTF does not set `DELAY_SAMPLES`, there is no audio output.
Only a warning is displayed.https://git.rwth-aachen.de/ita/VACore/-/issues/27Room Acoustic Renderer config2022-11-14T16:10:39+01:00Pascal PalendaRoom Acoustic Renderer configThe configuration for the room acoustic renderer is missing the field `NumChannels`.
This should be added.
In addition, the specification of the paths to the rpf file can be made simpler with the changes from 29b3b16d.The configuration for the room acoustic renderer is missing the field `NumChannels`.
This should be added.
In addition, the specification of the paths to the rpf file can be made simpler with the changes from 29b3b16d.https://git.rwth-aachen.de/ita/VACore/-/issues/26Update VACore.ini2022-08-29T11:13:32+02:00Michael KohnenUpdate VACore.iniRoomacoustic renderer uses old config keys (maxnumsamples vs maxfilterlength) and numChannels is missingRoomacoustic renderer uses old config keys (maxnumsamples vs maxfilterlength) and numChannels is missinghttps://git.rwth-aachen.de/ita/VACore/-/issues/25Ambient Mixer2022-08-29T11:11:22+02:00Michael KohnenAmbient MixerAmbient mixer seems to prevent core finalization when audio device is set to virtual.Ambient mixer seems to prevent core finalization when audio device is set to virtual.https://git.rwth-aachen.de/ita/VACore/-/issues/24Implement sound source enable and mute2022-05-11T11:48:56+02:00Pascal PalendaImplement sound source enable and muteSource (and receiver) have the option to be muted and/or enabled.
As far as I can see, this is not implemented except in the core interface and the binarual Free Field renderer.
This would be a very useful feature and should be implemen...Source (and receiver) have the option to be muted and/or enabled.
As far as I can see, this is not implemented except in the core interface and the binarual Free Field renderer.
This would be a very useful feature and should be implemented fully.https://git.rwth-aachen.de/ita/VACore/-/issues/23BinauralMixdown: fix listener position or at least add the option?2022-04-29T08:52:46+02:00Philipp SchäferBinauralMixdown: fix listener position or at least add the option?Compared to AmbisonicsBinauralDownmix, the listener position is not fixed but taken from the real-world position.
PSC: I don't see the point for a downmix. Typically, I would assume to sit in front of a screen wearing HPs and just rotate...Compared to AmbisonicsBinauralDownmix, the listener position is not fixed but taken from the real-world position.
PSC: I don't see the point for a downmix. Typically, I would assume to sit in front of a screen wearing HPs and just rotate my head. Would there actually be a case were I wear HPs but walk around (e.g. in the VR lab)?https://git.rwth-aachen.de/ita/VACore/-/issues/22NCTC: remove unsed config parameters2022-04-28T11:51:10+02:00Philipp SchäferNCTC: remove unsed config parametersThere are many parameters which do not seem to be used in the VACore.ini. Maybe they should be fixed to their default values.
Also some parameters could be taken from Core config (e.g. homogeneous medium -> speed of sound).There are many parameters which do not seem to be used in the VACore.ini. Maybe they should be fixed to their default values.
Also some parameters could be taken from Core config (e.g. homogeneous medium -> speed of sound).https://git.rwth-aachen.de/ita/VACore/-/issues/21Remove VACore.ini dev paths during install2022-04-28T11:24:55+02:00Philipp SchäferRemove VACore.ini dev paths during installWhen generating VACore.ini from the proto file, some dev search paths are added.
Those should be automatically removed during the install process.When generating VACore.ini from the proto file, some dev search paths are added.
Those should be automatically removed during the install process.https://git.rwth-aachen.de/ita/VACore/-/issues/20Create class structure for BinauralMixdown and AmbisonicsBinauralMixdown2022-04-29T08:52:46+02:00Philipp SchäferCreate class structure for BinauralMixdown and AmbisonicsBinauralMixdownAmbisonicsBinauralMixdown is basically the same as BinauralMixdown but doing a decoding step before the mixdown.
Thus, AmbisonicsBinauralMixdown should be derived from BinauralMixdown or both should have the same base class.AmbisonicsBinauralMixdown is basically the same as BinauralMixdown but doing a decoding step before the mixdown.
Thus, AmbisonicsBinauralMixdown should be derived from BinauralMixdown or both should have the same base class.https://git.rwth-aachen.de/ita/VACore/-/issues/19Extract Ambisonics decoder2022-04-29T08:52:46+02:00Philipp SchäferExtract Ambisonics decoderMove the ambisonics decoding to a separate function so that it can be used by HOA and BinauralAmbisonicsMixdown.Move the ambisonics decoding to a separate function so that it can be used by HOA and BinauralAmbisonicsMixdown.