Compare commits

...

11 Commits

Author SHA1 Message Date
Syed Haris Ali dcaadd43ce updated README 2015-07-03 10:49:08 -07:00
Syed Haris Ali 03db74e842 bumped version to 0.7.2 2015-07-03 10:44:56 -07:00
Syed Haris Ali ec19d44d86 Merge pull request #181 from syedhali/bug_fixes
Bug fixes
2015-07-03 10:43:37 -07:00
Syed Haris Ali 1e23f95dc2 added proper graph disposal 2015-07-03 10:41:58 -07:00
Syed Haris Ali 4d0b40d730 fixed crash in EZMicrophone due to running setup twice 2015-07-03 10:37:00 -07:00
Syed Haris Ali 732cf79963 Updated with The Amazing Audio Engine stuff 2015-07-02 12:36:15 -07:00
Syed Haris Ali 7e84f8744f Fixed typo 2015-07-02 12:25:08 -07:00
Syed Haris Ali 556ac8390a updated README for 0.7.1 and deprecation note 2015-07-02 12:24:06 -07:00
Syed Haris Ali 700bd4bbce bumped podspec to 0.7.1 2015-07-02 11:52:03 -07:00
Syed Haris Ali 7df85ed2b8 fixing subspec stuff 2015-07-02 11:49:18 -07:00
Syed Haris Ali 68ad54d824 removing unused code, adding TPCircularBuffer cocoapods macro, and adding subspec to podspec 2015-07-02 11:39:50 -07:00
6 changed files with 47 additions and 43 deletions
+25 -16
View File
@@ -1,18 +1,27 @@
Pod::Spec.new do |s|
s.name = "EZAudio"
s.version = "0.6.0"
s.summary = "A simple, intuitive audio framework for iOS and OSX useful for anyone doing audio processing and/or audio-based visualizations."
s.homepage = "https://github.com/syedhali/EZAudio"
s.screenshots = "https://s3-us-west-1.amazonaws.com/ezaudio-media/EZAudioSummary.png"
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { "Syed Haris Ali" => "syedhali07@gmail.com" }
s.ios.deployment_target = '6.0'
s.osx.deployment_target = '10.8'
s.source = { :git => "https://github.com/syedhali/EZAudio.git", :tag => s.version }
s.source_files = 'EZAudio/*.{h,m,c}'
s.exclude_files = [ 'EZAudio/VERSION', 'EZAudio/TPCircularBuffer.{h,c}' ]
s.ios.frameworks = 'AudioToolbox','AVFoundation','GLKit'
s.osx.frameworks = 'AudioToolbox','AudioUnit','CoreAudio','QuartzCore','OpenGL','GLKit'
s.dependency 'TPCircularBuffer', '~> 0.0'
s.requires_arc = true;
s.name = "EZAudio"
s.version = "0.7.2"
s.summary = "A simple, intuitive audio framework for iOS and OSX useful for anyone doing audio processing and/or audio-based visualizations."
s.homepage = "https://github.com/syedhali/EZAudio"
s.screenshots = "https://s3-us-west-1.amazonaws.com/ezaudio-media/EZAudioSummary.png"
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { "Syed Haris Ali" => "syedhali07@gmail.com" }
s.ios.deployment_target = '6.0'
s.osx.deployment_target = '10.8'
s.source = { :git => "https://github.com/syedhali/EZAudio.git", :tag => s.version }
s.exclude_files = [ 'EZAudio/VERSION', 'EZAudio/TPCircularBuffer.{h,c}' ]
s.ios.frameworks = 'AudioToolbox','AVFoundation','GLKit'
s.osx.frameworks = 'AudioToolbox','AudioUnit','CoreAudio','QuartzCore','OpenGL','GLKit'
s.requires_arc = true;
s.default_subspec = 'Full'
s.subspec 'Core' do |core|
core.source_files = 'EZAudio/*.{h,m,c}'
end
s.subspec 'Full' do |full|
full.dependency 'TPCircularBuffer', '~> 0.0'
full.dependency 'EZAudio/Core'
end
end
-3
View File
@@ -25,9 +25,6 @@
#import <Foundation/Foundation.h>
#pragma mark - 3rd Party Utilties
#import "TPCircularBuffer.h"
#pragma mark - Core Components
#import "EZAudioFile.h"
#import "EZAudioFloatData.h"
-8
View File
@@ -67,14 +67,6 @@ typedef CGRect EZRect;
typedef NSRect EZRect;
#endif
//------------------------------------------------------------------------------
#if TARGET_OS_IPHONE
typedef UIColor EZColor;
#elif TARGET_OS_MAC
typedef NSColor EZColor;
#endif
//------------------------------------------------------------------------------
#pragma mark - EZAudioUtilities
//------------------------------------------------------------------------------
+3 -6
View File
@@ -70,7 +70,8 @@ static OSStatus EZAudioMicrophoneCallback(void *inRefCon,
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[EZAudioUtilities checkResult:AudioUnitUninitialize(self.info->audioUnit) operation:"Failed to unintialize audio unit for microphone"];
[EZAudioUtilities checkResult:AudioUnitUninitialize(self.info->audioUnit)
operation:"Failed to unintialize audio unit for microphone"];
[EZAudioUtilities freeBufferList:self.info->audioBufferList];
[EZAudioUtilities freeFloatBuffers:self.info->floatData
numberOfChannels:self.info->streamFormat.mChannelsPerFrame];
@@ -116,11 +117,7 @@ static OSStatus EZAudioMicrophoneCallback(void *inRefCon,
self = [self initWithMicrophoneDelegate:delegate];
if(self)
{
self.info = (EZMicrophoneInfo *)malloc(sizeof(EZMicrophoneInfo));
memset(self.info, 0, sizeof(EZMicrophoneInfo));
self.info->streamFormat = audioStreamBasicDescription;
_delegate = delegate;
[self setup];
[self setAudioStreamBasicDescription:audioStreamBasicDescription];
}
return self;
}
+2 -2
View File
@@ -108,8 +108,8 @@ OSStatus EZOutputGraphRenderCallback(void *inRefCon,
operation:"Failed to stop graph"];
[EZAudioUtilities checkResult:AUGraphClose(self.info->graph)
operation:"Failed to close graph"];
[EZAudioUtilities checkResult:AUGraphUninitialize(self.info->graph)
operation:"Failed to uninitialize graph"];
[EZAudioUtilities checkResult:DisposeAUGraph(self.info->graph)
operation:"Failed to dispose of graph"];
free(self.info);
}
+17 -8
View File
@@ -3,6 +3,9 @@
#EZAudio
A simple, intuitive audio framework for iOS and OSX.
# Note as of July 2, 2015
Over the last week I've been rewriting the core components of EZAudio to be faster and much more flexible. As EZAudio gets closer its 1.0 release the API has changed a little bit for each component and as a result this repo's README for the [Examples](#Examples) and [Core Components](#CoreComponents) are in a deprecated state, but will be updated tomorrow <b>July 3rd, 2015</b>. As of the `0.7.1` release you should be able to use EZAudio and the Amazing Audio Engine by using the `EZAudio/Core` Cocoapod (see [Using EZAudio & The Amazing Audio Engine](#AmazingAudioEngineCocoapod))
##Features
![alt text](https://s3-us-west-1.amazonaws.com/ezaudio-media/EZAudioSummary.png "EZAudioFeatures")
@@ -38,7 +41,7 @@ An OpenGL-based, GPU-accelerated audio waveform plot capable of visualizing any
`EZAudio` was designed to work transparently across all iOS and OSX devices. This means one universal API whether you're building for Mac or iOS. For instance, under the hood an `EZAudioPlot` knows that it will subclass a UIView for iOS or an NSView for OSX and the `EZMicrophone` knows to build on top of the RemoteIO AudioUnit for iOS, but defaults to the system defaults for input and output for OSX.
##Examples & Docs
##<a name="Examples">Examples & Docs
Within this repo you'll find the examples for iOS and OSX to get you up to speed using each component and plugging them into each other. With just a few lines of code you'll be recording from the microphone, generating audio waveforms, and playing audio files like a boss. See the full Getting Started guide for an interactive look into each of components.
@@ -75,17 +78,16 @@ Shows how to calculate the real-time FFT of the audio data coming from the `EZMi
![alt text](https://s3-us-west-1.amazonaws.com/ezaudio-media/fftMacExample.png)
### Documentation
The official documentation for EZAudio can be found here: http://cocoadocs.org/docsets/EZAudio/0.6.0/
The official documentation for EZAudio can be found here: http://cocoadocs.org/docsets/EZAudio/0.7.2/
<br>You can also generate the docset yourself using appledocs by running the appledocs on the EZAudio source folder.
##Getting Started
##<a name="GettingStarted">Getting Started
To begin using `EZAudio` you must first make sure you have the proper build requirements and frameworks. Below you'll find explanations of each component and code snippets to show how to use each to perform common tasks like getting microphone data, updating audio waveform plots, reading/seeking through audio files, and performing playback.
###Build Requirements
**iOS**
- 6.0+
**OSX**
- 10.8+
@@ -95,7 +97,6 @@ To begin using `EZAudio` you must first make sure you have the proper build requ
- AVFoundation
- GLKit
**OSX**
- AudioToolbox
- AudioUnit
@@ -104,16 +105,24 @@ To begin using `EZAudio` you must first make sure you have the proper build requ
- OpenGL
- GLKit
###Adding To Project
###<a name="AddingToProject">Adding To Project
You can add EZAudio to your project in a few ways: <br><br>1.) The easiest way to use EZAudio is via <a href="http://cocoapods.org/", target="_blank">Cocoapods</a>. Simply add EZAudio to your <a href="http://guides.cocoapods.org/using/the-podfile.html", target="_blank">Podfile</a> like so:
`
pod 'EZAudio', '~> 0.6.0'
pod 'EZAudio', '~> 0.7.2'
`
####<a name="AmazingAudioEngineCocoapod">Using EZAudio & The Amazing Audio Engine
If you're also using the Amazing Audio Engine then use the `EZAudio/Core` subspec like so:
`
pod 'EZAudio/Core', '~> 0.7.2'
`
2.) Alternatively, you could clone or fork this repo and just drag and drop the source into your project.
##Core Components
##<a name="CoreComponents"></a>Core Components
`EZAudio` currently offers four components that encompass a wide range of audio functionality. In addition to the functional aspects of these components such as pulling audio data, reading/writing from files, and performing playback they also take special care to hook into the interface components to allow developers to display visual feedback (see the Interface Components below).
###<a name="EZAudioFile"></a>EZAudioFile