Hi.
I am a mathematician turned enterprise software developer turned freelancer and find your problem interesting and challenging. I have a few thoughts on your project:
- Solving this problem for three microphones is mathematically possible (and the solution is unique). So this will be the first implementation step. This would be a class, one initializes with parameters such as speed of sound, positions of the microphones on the line (from an origin). Then there is one function, one calls with three timestamps in microseconds, and it returns two coordinates (distance from line, projected position on line).
- Provide the visualization of the result. This creates the picture as you have attached, and provides a way to input data into the above class. For more microphones this would first plot all the possible sources obtained from 3 microphone combinations.
- Handle more microphones. My assumption here is that the input timestamps an microphone positions have errors. Using more inputs, one can narrow the possible region of the source down. We will have to discuss here, which errors to account for.
I would use Python to implement this, and it has the big assumption in it that there is only one sound source. Handling multiple sources requires more thinking. I can probably deliver the first two milestones within a few days. I would require specification for the second one, how you wish to input data.
I look forward to hearing from you,
Helge Krueger