Ultrasound Audio Analyzer Framework

roto_ultrasound.framework for iOS®/iPadOS®

  • Created: 21 Mar, 2021
  • Update: 30 Oct, 2021

If you have any questions that are beyond the scope of this document, Please feel free to email via


roto_ultrasound.framework is an iOS®/iPadOS® library that allows communication with any ultrasound mic output and provides post-procesing capabilites to collect, plot, analyze, record and playback the ultrasound signal.


Follow the steps below to install the roto-icpsc framework

  1. Drag and drop the roto_ultrasound.framework file into your Xcode project
  2. Select the "Embed & Sign" option in the Framworks, Libraries and Embedded Content menu

Framework Structure

  1. collect_us: Ultrasound audio signal capture and analysis
    // collect the ultrasound signal
    // timeSec: duration of collection in seconds
    // fileName: file name string
    +(void) collectUltraSoundWithTimeinSec: (int)timeSec withFileName:(NSString*)fileName;
    // returns the ultrasound average value for the collecting time in dB
    +(double) ultraSoundAvgValdB;
    // returns the ultrasound max peak value for the collecting time in dB
    +(double) ultraSoundMaxPeakdB;
  3. playback_us: Reproduce ultrasound signal
    // play collected ultrasound signal from file
    +(void) playUltraSoundFromFile: (NSString*)fileName;
  5. RotoAudioTWF: Plot an infinite waveform
    // plot the waveform from values collected from collect_us
    - (void)addSoundMeterItem:(double)lastValue withCounter:(int)counter;

Configuring your project

  1. Import the roto_ultrasound/collect_us.h to your project's class
    #import "ViewController.h"
    #import "roto_ultrasound/collect_us.h"
    @interface ViewController ()
    @implementation ViewController
    - (void)viewDidLoad {
       [super viewDidLoad];
  3. Add the microphone usage description permission Privacy - Microphone Usage Description to the plist info:

Collecting Data

  1. Request a measurement with the time duration in seconds using the command: collectUltraSoundWithTimeinSec:(int)
    - (void)collectData {
        [collect_us collectUltraSoundWithTimeinSec:1 withFileName:@"yourFileName.m4a"];
  3. To request the the average dB values use ultraSoundAvgValdB method as follow:
    - (void)getAverageValue {
        NSLog (@"Avg Val: %.2f dB", [collect_us ultraSoundAvgValdB]);
  5. To request the the max peak of the signal in dB use ultraSoundMaxPeakdB method as follow:
    - (void)getMAxPeakValue {
        NSLog (@"Max Peak: %.2f dB", [collect_us ultraSoundMaxPeakdB]);

    Below is a sample of a console log response:

  7. To play the ultrasound audio from the saved file, use: playUltraSoundFromFile: (NSString*)fileName
    - (void)playAudioFile {
        [collect_us playUltraSoundFromFile:@"yourFileName.m4a"];
  9. To plot real-time ultrasonic waveform, use: addSoundMeterItem:(double)lastValue withCounter:(int)counter
    #import "roto_ultrasound/RotoAudioTWF.h"
    - (void)plotWaveform {
        [self.plot_view addSoundMeterItem:[collect_us ultraSoundAvgValdB] withCounter:counter];

    Below is a sample of the output UIImage


See what's new added, changed, fixed, improved or updated in the latest versions.

Version 1.01 (30 Oct, 2021)

  • Updated Optimized for iOS®15

Version 1.0 (21 Mar, 2021)

Initial Release