alexbw / novocaine

Painless high-performance audio on iOS and Mac OS X
http://alexbw.github.com/novocaine/
MIT License
2.23k stars 273 forks source link

What would be the right way? #63

Closed Rjonhson closed 11 years ago

Rjonhson commented 11 years ago

The guide says "All you have to do is put your audio into "audioToPlay". What would be the appropriate way to do it? I have a NSData with the audio.

Thank you very much!

alexbw commented 11 years ago

NSData is not the best storage format for live audio, but you might consult this post: http://stackoverflow.com/questions/4859760/obj-c-how-to-convert-nsdata-to-an-array-of-ints

If you're performance limited, I'd suggest unloading all the audio ahead of time into an array, and reading through it when it's time to play it.

On Oct 17, 2013, at 10:20 PM, Rjonhson notifications@github.com wrote: The guide says "All you have to do is put your audio into "audioToPlay". What would be the appropriate way to do it? I have a NSData with the audio.

Thank you very much!

— Reply to this email directly or view it on GitHub.

Rjonhson commented 11 years ago

My audio is coming from an udp socket, so I didn't have many options I guess(as far as my limited knowledge goes)

Thanks for the link, I am going to try it out!

alexbw commented 11 years ago

Best of luck!

On Oct 17, 2013, at 10:48 PM, Rjonhson notifications@github.com wrote:

My audio is coming from an udp socket, so I didn't have many options I guess(as far as my limited knowledge goes)

Thanks for the link, I am going to try it out!

— Reply to this email directly or view it on GitHub.

Rjonhson commented 11 years ago

Sorry for bothering, hopefully it is trivial enough so you can help me.

I got my array of ints from my NSData. But can't put it into audioToPlay

for (int i = 0; i < numFrames * thisNumChannels; i++) {
     audioToPlay[i] = ?
}

Thank you once again!

alexbw commented 11 years ago

If your data is a single channel, then

for (int i=0; i < numFrames) { for (int iChannel=0; i < numChannels) {

audioToPlay[i*iChannel] = audio_array[i]

} }

But it will definitely depend on the format of your audio.

As a future reference, these types of question depend more on managing C arrays, and wrangling NSData from Objective-C, and I think you'll find much quicker and more in-depth answers at StackOverflow.

On Thu, Oct 17, 2013 at 11:05 PM, Rjonhson notifications@github.com wrote:

Sorry for bothering, hopefully it is trivial enough so you can help me.

I got my array of ints from my NSData. But can't put it into audioToPlay

for (int i = 0; i < numFrames * thisNumChannels; i++) { audioToPlay = ? }

Thank you once again!

— Reply to this email directly or view it on GitHubhttps://github.com/alexbw/novocaine/issues/63#issuecomment-26569384 .

partho-maple commented 11 years ago

I had a question on this and i have already posted it here. But nobody is replying me.

Would you please take a look at this question ? >> https://github.com/alexbw/novocaine/issues/61

alexbw commented 11 years ago

@partho-maple, this question is more suited for StackOverflow, since it is not a bug in Novocaine, but a more general programming question. If you tag the question with "novocaine" and "obj-c" and "ios", many more users will be able to see the question and help you there, since not many people watch the issues here.

partho-maple commented 11 years ago

@alexbw I have already posted it on Stackoverflow about 14 days ago from now but nobody had replied that. This is the link >> http://stackoverflow.com/questions/19212699/how-to-change-input-and-output-audio-settings-of-novocaine-project

WOuld you like to take a look and answer it ?