A hardware-accelerated audio visualization view using EZAudio, inspired by AudioCopy. ZLHistogramAudioPlot was originally developed for Murmur.
You can install ZLHistogramAudioPlot
through CocoaPods adding the following to your Podfile:
pod 'ZLHistogramAudioPlot'
Checkout the demo app for an example.
Customizable attributes:
/// The upper bound of the frequency range the audio plot will display. Default:
/// 10000Hz
@property (nonatomic) float maxFrequency;
/// The lower bound of the frequency range the audio plot will display. Default:
/// 1200Hz
@property (nonatomic) float minFrequency;
/// The number of bins in the audio plot. Default: 30
@property (nonatomic) NSUInteger numOfBins;
/// The padding of each bin in percent width. Default: 0.1
@property (nonatomic) CGFloat padding;
/// The gain applied to the height of each bin. Default: 10
@property (nonatomic) CGFloat gain;
/// A float that specifies the vertical gravitational acceleration applied to
/// each bin. Default: 10 pixel/sec^2
@property (nonatomic) float gravity;
/// The color of all bins in the audio plot.
@property (strong, nonatomic) UIColor *color;
/// An array of color objects defining the color of each bin in the audio plot.
/// If not set, the color attribute will be used instead. Currently only
/// supported by plot type EZPlotTypeBuffer.
@property (strong, nonatomic) NSArray *colors;
ZLHistogramAudioPlot
is a subclass ofEZAudioPlot
. It requires EZAudio.- It also requires Accelerate framework for hardware acceleration.
ZLHistogramAudioPlot
uses the following interface provided by EZAudio to get audio data:
- (void)updateBuffer:(float *)buffer withBufferSize:(UInt32)bufferSize;
It can be easily modified to work with Audio Unit and Core Audio.
- iOS 6 or higher.
- Automatic Reference Counting (ARC).
ZLHistogramAudioPlot is available under the MIT license. See the LICENSE file for more info.