Audio pitch shift using objective-c - iOS - ios

I'm making an app where I gotta record sound through microphone, change its pitch, save it in Documents Directory and play it.
I have accomplished the recording and playing part successfully via AVRecorder and AVAudioPlayer. But I'm unable to change the pitch of the recorder sound :(
Searched a lot all over StackOverlow and Google, but all methods aren't working. DIRAC is not available now I guess, SoundTouch integration is going over my head, other solutions are in Objectice-C++ which I don't understand.
Also tried OpenAL, but it only allows to play the changed pitch sound, not save it.
Please tell me if it's possible using Objective-C, or any other example/tutorial.
Thank you.

Related

Is there any possibility to read the frequency of the currently playing song with Swift?

I'm new to iOS programming and I don't know where to start. I found code examples how to read frequencies from the microphone with AudioKit framework. But this is not what I am looking for. Is it possible to retrieving frequency of the currently playing song in real time without using a microphone?
Thank you for help.
The iOS security sandbox prevents apps from capturing general audio output of any other app, such as the Music app.
Certain music apps, such as GarageBand might share inter-app audio, but this isn't supported by the majority of apps that output "songs".
An app might play the "song" itself, via an AVAudioPlayer, and tap the AVPlayer's output to get raw sample data for spectral frequency and pitch analysis (two very different things, by-the-way).

Record audio streamed from AVPlayer

I'm trying to record/capture audio that's being streamed via an AVPlayer. The AVAudioRecorder only records from the microphone which may work if the audio is played via speakerphone (although quality will suffer) but it'll definitely not work if the headphones are plugged in.
I've looked everywhere for a solution but still haven't found a solution that'll work for me. Would I need to grab the audio buffer? Is there another way to capture what's being played?
You can grab audio buffers by adding an MTAudioProcessingTap to your AVPlayer.
The process is a little convoluted, but there is some information out there.
The easiest approach nowadays is to play and record using AVAudioEngine.

Detect & Read Any Outbound Audio Signals iOS

I'm just beginning my research into this question and simply because the need for a fast turn around I thought I would post the question here while I continue research on my own.
The first question I have is, is it possible to detect the device's outgoing audio signal(s) - from any source - using CoreAudio or any of the audio frameworks (or combination of) listed in the dev library?
My instinct tells me this is locked down.
Has anyone any experience with this?
I guess you can only detect if its playing or not with using
[[AVAudioSession sharedInstance] secondaryAudioShouldBeSilencedHint]
Will be true when another application with a non-mixable audio session
is playing audio

iOS - Streaming Multitrack Audio

I'm building an app in which I need to steam multiple tracks of audio that make up a song. They all need to be synchronized so the song plays back naturally.
I've been able to play back local multitrack audio very well with the solution on this thread: multi track mp3 playback for iOS application, but it looks like AVAudioPlayer isn't able to stream.
I've been looking into working with DOUAudioStreamer because I've read that it's the best solution for streaming audio on iOS without going pretty low-level, but it seems to lack the equivalent of a -playAtTime: method, which is how the tracks were synced up using `AVAudioPlayer.
Does anyone know a workaround for this using DOUAudioStreamer, or have any advice on another way I should approach this? Thanks.

How to mute mic while Recording using UIImagePickerController?

I am using UIImagePickerController for recording video in one of my application. i have successfully Recorded video. But now i want to mute mic (video without audio) while recording video.
i have searched Alot but not a single clue about it.
please help me about this issue.
is it possible or not. if possible than how.
thanks in advance.
If you want your app to be in app store , then there is no apple approved method to actually mute whole iPhone.There are certain libraries but they are not approved.
Apple's documentation on Audio Session
According to the documentation you can only ask the user to have the phone silenced physically and you can respond to certain audio changes such as other sounds,phone calls, email sounds but you cannot mute programmatically.
Also See this Documentation on Programming in iPhone See the part 3.3 for Audio.(Events that can be accessed and performed in iOS).
You can use AVFoundation framework to record a video without the sound, check at this :
AVFoundation Programming Guide

Resources