04-14-2009 03:42 PM
This time, the sound analysis is implemented. The application is now functional, but lacks any run–time configuration. The following changes were made.
The application now consists of three parallel loops - UI, data collection, and data analysis. This is a fairly common use case. LabVIEW allows us to easily put these in different threads or different processors, depending on the capabilities of the target. This allows for efficient use of the computing resources. In this implementation, the acquisition and analysis loops are coordinated by the UI loop. Note that the analysis loop does send a Stop command to the UI loop in the event of error. While the acquisition loop could have done this, I prefer to put the response to the error in the consumer of the data. When calibration is implemented, there will be another consumer created, and it will have a different UI, with different error handling.
The algorithms could also use some tweaking. For example, we are not interested in frequencies below 20Hz, since you can not hear them. These should be filtered out before display.
As always, comments and suggestions are welcome and encouraged.
Previous Installments