Skip to content
An Custom UIView which draws the output of an audio asset in real time.
Branch: master
Clone or download
Latest commit c044aeb Feb 25, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
IHWaveformView.xcodeproj Fixed crash on audio playback completion with pre rendered Output Feb 24, 2018
IHWaveformView Fixed crash on audio playback completion with pre rendered Output Feb 24, 2018
LICENSE Update Feb 24, 2018
bensound-sunny.mp3 Used royalty free music and minor bug fix Aug 15, 2017


Version License Platform

A simple, intuitive audio asset visualiser for iOS.


To run the example project, clone the repo, and run pod install from the Example directory first.


Written purely in SWIFT. Very simple and lightweight. Color Coding for differnt output range.

  • Pale red for low output
  • Light red for medium
  • Red for high output
  • Based on the output distribution pattern of Recorder App from Apple
  • Option to pre-render audio file

Getting Started

To begin using IHEqualizerView you must first make sure you have the proper build requirements.

Build Requirements




IHEqualizerView is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'IHEqualizerView'

Adding Manually To Project

You can add IHEqualizerView to your project in a few ways:

The way to use IHEqualizerView is to download the IHWaveFormView class file in your project as is and use.


simulator screen shot 16-aug-2017 12 23 44 am

10 pixel width



Make the UIView a subclass of IHEqualizerView, make its outlet and initialise as follows:

@IBOutlet var musicView: IHWaveFormView!
extension ViewController: IHWaveFormViewDataSource {

func urlToPlay() -> URL {
    //Getting the Path of the Audio Asset in this case this is bundled in to the main Bundle with the fileName
    var url : URL?
    let path = Bundle.main.path(forResource: "bensound-sunny.mp3", ofType:nil)!
    url = URL(fileURLWithPath: path)
    return url!
func lineWidth() -> CGFloat {
  return 2

func lineSeperation() -> CGFloat {
    return 1
func shouldPreRender() -> Bool {
    return true



Md Ibrahim Hassan,


IHEqualizerView is available under the MIT license. See the LICENSE file for more info.

You can’t perform that action at this time.