I would like to offer my insight. I have asked my professor to present this in class as we are learning about FFT and DSP signal analysis. Perhaps my classmates can join in.
Part of audio training is learning about Apple's Audio Units. Audio Units have been the cornerstone in apple's audio development for years and is utilized by developers that all would infringe upon this patent.
https://developer.apple.com/library/mac/documentation/musicaudio/Conceptual/AudioUnitProgrammingGuide/TheAudioUnit/TheAudioUnit.html
Under Listing 2-10
The audio unit you build in “Tutorial: Building a Simple Effect Unit with a Generic View” makes use of all three of these methods: GetParameterInfo, GetParameter, and SetParameter.
An audio unit sometimes needs to invoke a value change for one of its parameters. It might do this in response to a change (invoked by a view or host) in another parameter. When an audio unit on its own initiative changes a parameter value, it should post an event notification.
For example, in a bandpass filter audio unit, a user might lower the upper corner frequency to a value below the current setting of the frequency band’s lower limit. The audio unit could respond by lowering the lower corner frequency appropriately. In such a case, the audio unit is responsible for posting an event notification about the self-invoked change. The notification informs the view and the host of the lower corner frequency parameter’s new value. To post the notification, the audio unit follows a call to the SetParameter method with a call to the AUParameterListenerNotify method.
AudioUnitFrequencyResponseBin
An audio unit’s audio level at a particular frequency.
typedef struct AudioUnitFrequencyResponseBin {
Float64 mFrequency
Float64 mMagnitude;
} AudioUnitFrequencyResponseBin;
Fields
mFrequency
mMagnitude
Discussion
An array of AudioUnitFrequencyResponseBin are passed in to kAudioUnitProperty_FrequencyResponse with the mFrequency field filled in. The array is returned with the mMagnitude fields filled in. If fewer than kNumberOfResponseFrequencies are needed, then the first unused bin should be marked with a negative frequency.
Availability
Available in OS X v10.6 and later. (Aug, 2009)
Declared In
AudioUnitProperties.h
All apple audio software, to include itunes (think visualizer) and any audio/input output driver on Mac OS uses AudioUnits.
Audio Units in IOS Since at Least 2008
- The '060 patent now has priority from Nov 30,2011 over any and all apps that respond to voice recognition, instrument tuning, spectral analysis, and several other applications of various sorts.
https://developer.apple.com/library/iOS/documentation/AudioUnit/Reference/AudioUnitParametersReference/Reference/reference.html
Since IOS 2.0 (July 11, 2008 saw the public release of iPhone OS 2.0, with upgrades through version 2.2.1 made available.)
Constants
kMultiChannelMixerParam_Volume
Sets the audio gain for a mixer input or the output.
Range is from 0 (for silence) through 1 (for unity gain).
Available in iOS 2.0 and later.
Declared in AudioUnitParameters.h.
kMultiChannelMixerParam_PreAveragePower
Indicates the average “pre” power in decibels (dB). Read only.
Available in iOS 2.0 and later.
Declared in AudioUnitParameters.h.
kMultiChannelMixerParam_PrePeakHoldLevel
Indicates the “pre” peak hold level in decibels (dB). Read only.
Available in iOS 2.0 and later.
Declared in AudioUnitParameters.h.
kMultiChannelMixerParam_PostAveragePower
Indicates the average “post” power in decibels (dB). Read only.
Available in iOS 2.0 and later.
Declared in AudioUnitParameters.h.
kMultiChannelMixerParam_PostPeakHoldLevel
Indicates the “post” peak hold level in decibels (dB). Read only.
Available in iOS 2.0 and later.
Declared in AudioUnitParameters.h.
Important Note: Developer Preview of all Apple Code is published in June, 2011. All documents relating to default BandPass filtering were provided public online. Any app updated to IOS 5 that used spectrum/frequency display of any time would be employing these default methods
Bandpass Unit Parameters
Parameters for the Bandpass unit.
enum {
kBandpassParam_CenterFrequency = 0,
kBandpassParam_Bandwidth = 1
};
Constants
kBandpassParam_CenterFrequency
Range is from 20 Hz to less than the Nyquist frequency (half the sample rate). Default value is 5,000 Hz. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
kBandpassParam_Bandwidth
Range is from 100 through 12000 cents. Default value is 600 cents. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
Highpass Unit Parameters
Parameters for the Highpass unit.
enum {
kHipassParam_CutoffFrequency = 0,
kHipassParam_Resonance = 1
};
Constants
kHipassParam_CutoffFrequency
Range is from 10 Hz to less than the Nyquist frequency (half the sample rate). Default value is 6900 Hz. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
kHipassParam_Resonance
Range is from –20 through +40 dB. Default value is 0 dB. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
Lowpass Unit Parameters
Parameters for the Lowpass unit.
enum {
kLowPassParam_CutoffFrequency = 0,
kLowPassParam_Resonance = 1
};
Constants
kLowPassParam_CutoffFrequency
Range is from 10 Hz to less than the Nyquist frequency (half the sample rate). Default value is 6900 Hz. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
kLowPassParam_Resonance
Range is from –20 through +40 dB. Default value is 0 dB. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
High Shelf Filter Unit Parameters
Parameters for the High Shelf Filter unit.
enum {
kHighShelfParam_CutOffFrequency = 0,
kHighShelfParam_Gain = 1
};
Constants
kHighShelfParam_CutOffFrequency
Range is from 10000 Hz to less than the Nyquist frequency (half the sample rate). Default value is 10000 Hz. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
kHighShelfParam_Gain
Range is from –40 through +40 dB. Default value is 0 dB. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
Low Shelf Filter Unit Parameters
Parameters for the Low Shelf Filter unit.
enum {
kAULowShelfParam_CutoffFrequency = 0,
kAULowShelfParam_Gain = 1
};
Constants
kAULowShelfParam_CutoffFrequency
Range is from 10 through 200 Hz. Default value is 80 Hz. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
kAULowShelfParam_Gain
Range is from –40 through +40 dB. Default value is 0 dB. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
The next set of Constants (Defaults) are in relation to the Dynamics Processing, which is the pre-processing of all signals.
Dynamics Processor Unit Parameters
Parameters for the Dynamics Processor unit.
enum {
kDynamicsProcessorParam_Threshold = 0,
kDynamicsProcessorParam_HeadRoom = 1,
kDynamicsProcessorParam_ExpansionRatio = 2,
kDynamicsProcessorParam_ExpansionThreshold = 3,
kDynamicsProcessorParam_AttackTime = 4,
kDynamicsProcessorParam_ReleaseTime = 5,
kDynamicsProcessorParam_MasterGain = 6,
kDynamicsProcessorParam_CompressionAmount = 1000,
kDynamicsProcessorParam_InputAmplitude = 2000,
kDynamicsProcessorParam_OutputAmplitude = 3000
};
Constants
kDynamicsProcessorParam_Threshold
Range is from –40 through +20 dB. Default value is –20 dB. Used on the Global scope.
Available in iOS 5.0 and later.
Declared in AudioUnitParameters.h.
kDynamicsProcessorParam_HeadRoom
Range is from 0.1 through 40 dB. Default value is 5 dB. Used on the Global scope.
Available in iOS 5.0 and later.
https://developer.apple.com/library/iOS/documentation/AudioUnit/Reference/AudioUnitParametersReference/Reference/reference.html
AudioUnits specifically has default settings for peak selection, filtering, cuttoff (high/low pass filters == bandpass filter) and more. Since these DEFAULTS are on every Apple Audio Unit, anything displaying a spectrum of frequencies, a calculated musical note, or possibly a visualizer would infringe upon '060.
All audio units, especially in the last 5 years on mobile devices has had built-in bandpass and high/low pass filtering. Likewise for amplitude selection.
These filters have been built into Apple's IOS Audio Units for quite sometime. It was often considered that processing every possible signal on a mobile device is not efficient, and reduces battery lifetime considerably. The same goes for any device that runs on batteries and employs a signal display; especially with a physical motor/servo driven needle. Utilizing frequencies above "predetermined threshold" while suppressing the other signals is Audio 101 for portable devices.
It is my belief that:
- Any Mac OS Software which detects a frequency through a microphone and displays it such as Logic, Garage Band, and several 3rd Party software will utilize a predetermined threshold and a high/low (bandpass)filter or an upper and lower frequency bounds
- Any IOS app which will utilize a predetermined threshold and a high/low (bandpass)filter or an upper and lower frequency bounds
- Thousands of applications and software plugins by several vendors prove prior art over this and that it is not a unique concept, yet it's the standard way of performing a signal processing method, at least on Apple.