Ram’s Status Update: 11/22
This week, we made some good progress on the software side (Will and I pair-coded for most of this).
- We did some code clean-up that made transitioning to 4 mics easier
- Geometry: we did the math to figure out how to reconcile the output angles of TDOA on two pairs of mics, and implemented this
- We debugged the existing solution for smoothing, and improved it some more, to balance the trade-off between latency and smoothness
- Did a rough overall latency test which was promising
- We still do not have 15 degree precision based on some rough tests, so we will need to work on that
- Unrelated: Found a potential fix to my laptop issue
To-Dos This Week:
- Make it more robust to noise – if there are very loud and close-by keyboard noises, it currently does not work
- Adding a third pair of mics – either an actual third pair in between the current ones, or a “virtual” third pair that uses data from two mics that are currently part of different pairs
- Increasing the sample frequency – we don’t really need to yet, but we anticipate that we might need to do this soon (so that we have more breathing room in terms of latency, and less lag when transitioning)
- Move a lot of the code currently in the main while loop into callbacks – the advantage of this is that these callbacks can’t be interrupted so the volatile variables that we change will definitely not be modified in the middle (currently, this isn’t a problem but it could be so it’s probably good to do this move)
- Smoothing Improvements
- Account for 0 essentially being the same as 360 – so that the smoothing algorithm takes into account the fact that changes from e.g. 3 to 359 are actually fine, and these are still smooth
- Implement a feature where if we haven’t seen 10 angles in a row, we just cut off all our prior sample knowledge – because those priors are likely unreliable