WilliamLCobb / iNDS

Legacy Repo for iNDS
http://willcobb.me/iNDS.html
236 stars 60 forks source link

The new audio problem. #201

Open DarknesGaming opened 7 years ago

DarknesGaming commented 7 years ago

A few months ago, I began to experience a problem with audio. Other people seem to be experiencing the same problems, whether they are developers or not. This has to do with iOS itself, which has started ever since the iOS 9.3 upgrade. Let's get down to the details: People have been complaining about the ear speaker playing the audio, and not the default iPhone speaker. This does not affect iPad users, but many people have an iPhone, which is the product that Apple depends on to survive. As of June 13, 2016, EZAudio has been deprecated. Other alternatives have been offered, such as AudioKit, and The Amazing Audio Engine. Documentation for AVAudioEngine can be found here. Syedhali, the creator of EZAudio, has admitted that EZAudio is broken. People have forked the project, so we will be checking those forks for any fixes. If we can't do that, then we will have to switch to a different audio library, or make our own. Now that I have some background knowledge of C++ and Objective-C, and that I managed to write my first program in those languages, I should be of some use to the development of iNDS. For obvious reasons, I'm making a new branch for this in my fork, which is here. I am not expecting @WilliamLCobb to notice, but I am hoping that he doesn't merge my work into his master branch until all the kinks are worked out. I know you're getting tired of reading something this long, but this is what can get you places in the future. It's also how I learned that an act passed in 1975 permits jailbreaking mobile devices, and that it does NOT void your warranty whatsoever. So, in a way, use that as an argument against Apple, and you still got warranty. Just don't screw with the file system. If you got any suggestions, or nasty remarks, leave a comment. You don't have to if you don't want to, but suggestions do help with development, so I can only say I encourage you to do so. Thanks.

DarknesGaming commented 7 years ago

I managed to replace EZAudio with The Amazing Audio Engine, but the microphone had to be disabled until I can figure out which file is the microphone, and link the TP Circular Buffer.

hjstn commented 7 years ago

Could you commit on your repo, and I'll see where I could possibly contribute?

DarknesGaming commented 7 years ago

I will be doing that today, when I have the time.

DarknesGaming commented 7 years ago

I did a commit. EZAudio has been replaced with a new audio engine, but I had to keep the EZMicrophone component so iNDS Microphone remains functional. Also, the code for that iNDS Microphone isn't deleted, but is now an entire comment. I will fix that once I can get the app built and installed to my phone. So far, VMWare keeps redirecting my phone to a Virtual USB Hub when it shouldn't. Edit: I fixed my VMWare problem, but the microphone @WilliamLCobb made is acting up with The Amazing Audio Engine. Apparently, it can't find the AEBufferStack.h file that TheAmazingAudioEngine.h uses, and I just managed to fix that header file. There is one line that should be using the declared method from TPCircularBuffer, but is searching for AEBufferStack.h instead. Edit 2: I fixed that problem, but now there's 2 audio engines: EZAudio and The Amazing Audio engine. iNDS really was developed using the now broken audio library. I'll have to let @WilliamLCobb switch audio engines. Also, there's one error left, and that's the fact that Xcode can't find the Audio Unit framework. What doesn't make sense is that it's already linked, and it can't even find it. What kind of IDE is this?

DarknesGaming commented 7 years ago

I can't fix that problem, so I deleted the code. I had to download another copy of the master source code to redo this. I'm going to try to compile The Amazing Audio Engine as a framework. Also, I went back to messing with JIT a little bit, and trying to search for a new JIT engine that works for iOS. So far, can't find any. I upgraded TinyXML to TinyXML2. It should allocate less memory, and work faster.

DarknesGaming commented 7 years ago

I am trying to figure out how to add AsmJIT as another engine in iNDS. I can't figure it out, because I don't know which file to refer to in order to even get the option to work.

DarknesGaming commented 7 years ago

I have successfully managed to link the AudioKit framework into iNDS, which will allow me to eliminate the EZAudio library @WilliamLCobb provided to use the microphone. However, this gives us a payload error that causes iNDS to crash every time it is booted up.