Developing jReporter

The development of jReporter started in 2010, under the code name iSMARTer. The following video demonstrates a small fraction of the thousands of hours of coding, testing and debugging…

 

The coding is platform-specific, while extended emphasis is given to performance optimizations. The application is structurally implementing a modular design so that new modules can be easily added, and is split into two main components, the back-end, and the frond-end. The back-end performs the audio playback, recording, measurement and calibration procedures, while the front end adds the user interface and the audio session management functionality. The VU GUI is implemented using the OpenGL libraries while the code is written in C++ and Objective C languages in order to maximize performance, allowing algorithms to be processed in real-time.

The back-end component utilizes the Audio Toolbox Framework provided by the iOS SDK and uses the Audio Queues Services that offer low-level data access to the input buffers of the device’s audio input device. In general, the samples being captured are stored temporally using 64-bit floating-point variables; the signal is being processed spectrally, calibrated and filtered. Frequency analysis is performed using 2048 and 4096-point RDFT-FFT algorithm, calibration is applied in order to cancel the non-linearity of the device’s audio interface and filtering is performed by applying functions that are defined by the A/B/C/D weighting filters.

Leave a Reply

*
*