All the recent iPhones have 2+ microphones. Is it possible to record from all the microphones at the same time? If this is possible, what is the best iOS audio library for this (AudioKit, EzAudio, AudioUnits, CoreAudio)? There is no mention of this functionality in AudioKit and EzAudio.
iOS: Is it possible to record from multiple microphones at the same time
1.2k views Asked by Artash AtThere are 2 answers
Senseful
On
Since, you can record stereo audio, you can definitely record from multiple microphones at once. Furthermore, since noise cancellation is likely using the 1+ microphones not participating in the stereo recording, it is likely “recording” or at least using all microphones at once.
However, I think the main crux of the questions is if we can get the audio input of each microphone separately at the same time. As Dare points out, the standard API does not support that.
However, assuming there is a one-to-one mapping from microphone source (eg top/bottom) to audio channel (left/right), a theoretical solutions exists…
Simply record in stereo, then separate out the left/right channels, and viola, you can grab the input from each microphone separately. I have not tested this out yet, but in theory it seems like it should work.
If you specifically want to know which channel corresponds to which microphone, you’ll likely need to inspect the device orientation, and have a table of where the microphones are located based on device type. For example:
if orientation == landscapeLeft && device == iPhoneX {
print(“the right audio channel source is the Face ID microphone”)
print(“the left audio channel source is the dock connector microphone”)
} …
Related Questions in IOS
- URLSession requesting JSON array from server not working
- Incorrect display of LinearGradientBrush in IOS
- Module not found when building flutter app for IOS
- How to share metadata of an audio url file to a WhatsApp conversation with friends
- Occasional crash at NSURLSessionDataTask dataTaskWithRequest:completionHandler:
- Expo Deep linking on iOS is not working (because of Google sign-in?)
- On iOS, the keyboard does not offer a 6-character SMS code
- Hi, there is an error happened when I build my flutter app, after I'm installing firebase packages occurs that error
- The copy/paste functionalities don't work only on iOS in the Flutter app
- Hide LiveActivityIntent Button from Shortcuts App
- While Running Github Actions Pipeline: No Signing Certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID
- Actionable notification api call not working in background
- Accessibility : Full keyboard access with scroll view in swiftui
- There is a problem with the request entity - You are not allowed to create 'iOS' profile with App ID 'XXXX'
- I am getting "binding has not yet been initialized" error when trying to connect firebase with flutter
Related Questions in CORE-AUDIO
- Cannot connect AVAudioUnitSampler to AVAudioEngine while the engine is running
- How to use ExtAudioFileWrite
- [MyTarget]-Swift.h does not have MySwiftClass declaration
- AudioUnitRender produces empty audio buffers
- How to divide UnsafeMutablePointer<AudioBufferList> to several segment to process
- Changing volume of an audio driver affects balance shift in Mac system
- How to use MTAudioProcessingTapProcessCallback to modify the pitch of the audio on iOS
- Using AVSampleBufferAudioRenderer to play packets of streamed PCM audio (decoded from Opus)
- AVAudioEngine optimize graph for multiple channel manipulation
- How to obtain audio from a virtual device with only output channels (no input channels) in macOS
- Incorrect Value Returned by kAudioDevicePropertyDeviceIsRunningSomewhere for External Devices like AirPods
- How to get raw audio data from AudioQueueRef in MacOS?
- Getting an exception: "NotImplementedException: PropVariant VT_EMPTY"
- CMake/ninja error: '**/System/Library/Frameworks/CoreAudio.framework/CoreAudio', needed by 'Release/addon.node', missing and no known rule to make it
- AVAudioEngine vs AudioToolbox audio units
Related Questions in AUDIOUNIT
- Cannot connect AVAudioUnitSampler to AVAudioEngine while the engine is running
- AudioUnitRender produces empty audio buffers
- I need EXS24 File format description for my utility
- Can't set parameters in apple provided Audio Units from my application
- Running an AUv3 extension in standalone mode does not initialize the AudioUnit class
- Where is the audio unit extension app template?
- Create AUv3 audio unit supporting multiple channels
- Record and add audio effects at the same time in iOS with audio unit
- How to merge two Audio Units into AudioBufferList for AURenderCallback
- In iOS, are we able to intercept/transform microphone audio before it is passed to other apps?
- How to check if any other App is using VoiceProcessingIO AU (macOS)
- AudioUnitRender error kAudioUnitErr_CannotDoInCurrentContext on iPhone 14 only
- file unit callback shows stereo channels in buffer, but the file loaded was 6 channel
- iOS 16 RemoteIO: Input data proc returned inconsistent 2 packets
- AUGraph Record and Play
Related Questions in AUDIOKIT
- mapping arbitrary frequency to midi note using audiokit microtonality
- Cannot parse AudioKit MIDI file
- AudioKitEX not compiling
- Bi-directional node parameters?
- How to create a simple EQ like AVAudioUnitEQ in AudioKit?
- I cannot connect correctly the outputs in audiokit 5.5
- Swift - Can't figure out a simple "Mic->Effect->File" chain in AudioKit
- How to reduce background noise with AudioKit?
- AudioKit engine not starting immediately after interruption (call) ended
- How to Implement a Custom Audio Effect Node in AudioKit?
- Change tone frequency of synthesized sound in AudioKit
- how can I record my voice using internal mic without feedback?
- Using MatrixMixer, how to set the upstream source AVAudioFormat
- audiokit recorder records the first time and doesn't record again the 2nd time
- AudioKit doesn't show all the input & output devices available on my Mac
Related Questions in EZAUDIO
- Getting robotic and chopped audio when using EZOutput
- Stream Microphone Audio from one device to another using Multipeer connectivy and EZAudio
- iOS: Is it possible to record from multiple microphones at the same time
- How to implement a listener or while(true) to stop a waveform plot from scrolling once recorder has finished recording in Swift using AudioKit
- AudioKit update plot using AKAudioFile buffer and show full waveform
- Crash when EZRecorder calls ExtAudioFileWrite on iPhone X
- How to convert array of audio float to mp3 buffer using lame lib iOS?
- More precise frequency from FFT with EZAudio?
- Failed to set client format on recorded audio file ('hwiu')
- Conversion error OBJ-C to Swift 3
- EZAudio doesnt work: Thread1 EXC_BAD_ACCESS while creating EZRecorder instance
- EZAudio stopfetching audio
- iOS AudioKit / EZAudio FFT values
- External clock source with usb audio device in iOS
- How to convert that UnsafeMutablePointer<UnsafeMutablePointer<Float>> variable into AudioBufferList?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
I don't see anything in the documentation about multi-mic audio capture being possible. They specify that you can choose a specific microphone but not that you can select more than one simultaneously. AVAudioSession is also a singleton.
Seemingly, at least as of iOS 10, AVCaptureSession also only allows one audio or video input concurrently.