Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agilie/displayers-audio-visualizers
DisPlayer is a customizable audio visualization component that works with recording and playing back audio files
https://github.com/agilie/displayers-audio-visualizers
audio-effect audio-files displayers-audio-visualizers equalizer objective-c objective-c-library pod swift
Last synced: 5 days ago
JSON representation
DisPlayer is a customizable audio visualization component that works with recording and playing back audio files
- Host: GitHub
- URL: https://github.com/agilie/displayers-audio-visualizers
- Owner: agilie
- License: mit
- Created: 2017-03-17T09:08:50.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-07-12T16:12:16.000Z (over 3 years ago)
- Last Synced: 2024-10-10T15:49:03.890Z (about 1 month ago)
- Topics: audio-effect, audio-files, displayers-audio-visualizers, equalizer, objective-c, objective-c-library, pod, swift
- Language: Objective-C
- Homepage: https://agilie.com
- Size: 5.53 MB
- Stars: 313
- Watchers: 20
- Forks: 44
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DisPlayers-Audio-Visualizers
DisPlayer is a customizable audio visualization component that works with recording and playing back audio files
The audio visualizer can be easily embedded into an app that features:
* audio comments to text or multimedia posts
* recording and sending audio files in a chat
* playing back audio files posted in a chat using a dedicated UI componentDisPlayer features 5 default visualization presets that can be customized by the background color (single tone or gradient), the wave color, the number of the wave’s bins/bars, and the wave amplitude.
## Installation
The control can be easily embedded into an app:
### [CocoaPods](https://cocoapods.org/) (recommended)
````ruby
# For latest release in cocoapods
pod 'DisPlayers-Audio-Visualizers', '~> 0.1.1'
````## Getting started
*Getting started guide for DisPlayers-Audio-Visualizers*
1) You should added next classes into your project:````objective-c
#import "EZAudio.h"
#import "DPMainEqualizerView.h"
#import "DPEqualizerSettings.h"
````2) This library contains four types of equalizer visualisation: (Histogram, Rolling, Wave and Circle Wave). And you should chose want kind of equalizer visualization you want and import that class into your project.
### Histogram initialization example:
````objective-c
DPEqualizerSettings *settings = [DPEqualizerSettings createByType: DPHistogram];
self.equalizerView = [[DPHistogramEqualizerView alloc] initWithFrame: self.view.bounds
andSettings: settings];
[self.view addSubview: self.equalizerView];
````````objective-c
NSString *audioPath = [[NSBundle mainBundle] pathForResource: @"YOUR_AUDIO_FILE_PATH"
ofType: @"AUDIO_FILE_TYPE"];
EZAudioFile *audioFile = [[EZAudioFile alloc] initWithURL: [[NSURL alloc] initWithString: audioPath]];
self.player = [[EZAudioPlayer alloc] initWithAudioFile: audioFile];
self.player.delegate = self;
[self.player play];
````EZAudioPlayerDelegate
````objective-c
- (void) audioPlayer:(EZAudioPlayer *)audioPlayer
playedAudio:(float **)buffer
withBufferSize:(UInt32)bufferSize
withNumberOfChannels:(UInt32)numberOfChannels
inAudioFile:(EZAudioFile *)audioFile {
dispatch_async(dispatch_get_main_queue(), ^{
if (self.player.isPlaying) {
[self.equalizerView updateBuffer: buffer[0] withBufferSize:bufferSize];
}
});
}
````3) You can also customize equalizer visualisation. You can change default settings for all equalizer visualisation types:
````objective-c
/// The highest bound of the frequency. Default: 7000Hz
@property (nonatomic) float maxFrequency;/// The lowest bound of the frequency. Default: 400Hz
@property (nonatomic) float minFrequency;/// The number of bins in the audio plot. Default: 40
@property (nonatomic) NSUInteger numOfBins;/// The padding of each bin in percent width. Default: 0.2
@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 number of max bin height. Default: Screen height.
@property (assign, nonatomic) CGFloat maxBinHeight;/// The type of plot that can be displayed in the view using the data. Default: DPPlotTypeBuffer.
@property (assign, nonatomic) DPPlotType plotType;/// The type of equalizer that can be displayed in the view using the data. Default: DPHistogram.
@property (assign, nonatomic) DPEqualizerType equalizerType;/// The colors of equalizer background that can be displayed in the view.
@property (nonatomic, strong) NSMutableArray *equalizerBackgroundColors;/// The colors of low frequency that can be displayed in the view.
@property (nonatomic, strong) NSMutableArray *lowFrequencyColors;/// The colors of hight frequency that can be displayed in the view.
@property (nonatomic, strong) NSMutableArray *hightFrequencyColors;/// The colors of bins that can be displayed in the view.
@property (nonatomic, strong) NSMutableArray *equalizerBinColors;@property (nonatomic, assign) BOOL fillGraph;
````Some presets display audio frequencies as a separate waves, which provides more possibilities for cool sound visualization for your project.
## Usage
CocoaPods is the recommended way to add DisPlayer to your project:
1. Add a pod entry for DisPlayer to your Podfile pod 'DisPlayer'
2. Install the pod(s) by running pod installation.
3. Include DisPlayer wherever you need it with #import «Equalizers.h».## Requirements
DisPlayer works on iOS 8.0+ and is compatible with ARC projects.
It depends on the following Apple frameworks, which should already be included with most Xcode templates:
CoreGraphics.framework
QuartzCore.framework
CoreAudio.framework
You will need LLVM 3.0 or later in order to build “DisPlayer”## Author
This library is open-sourced by [Agilie Team](https://www.agilie.com?utm_source=github&utm_medium=referral&utm_campaign=Git_Swift&utm_term=DisPlayers-Audio-Visualizers)
## Contributors
[Michael Liptuga](https://github.com/Liptuga-Michael) -
## Contact us
## License
The [MIT](LICENSE.MD) License (MIT) Copyright © 2017 [Agilie Team](https://www.agilie.com?utm_source=github&utm_medium=referral&utm_campaign=Git_Swift&utm_term=DisPlayers-Audio-Visualizers)