|
Since the App Store launched in July 2008 until Nov 2011, my app, Drum Kit, was one of the top apps in the Music category. It went up to #2 at one point, only behind Smule's Ocarina, and had over 10 million downloads. The day GarageBand launched, my app went from something like #24 in Music to #64, and downward from there. Fun times! Interestingly, at an Apple conference sometime in 2010 (either C4 or WWDC), some guy asked me all kinds of detailed questions about the custom audio engine I wrote. Back then the "iPhone SDK" (now iOS SDK) audio APIs had too much latency for a drum app. So I had to write my own in C++ based on Audio Units (a low level C API). A tricky thing I had to do was mix multiple buffers of audio to create the resonance effect drums make when you hit them repeatedly (most prominent in cymbals). Later I found out the person asking me the questions worked at Apple, on the team that made GarageBand. They didn't launch with a blended resonance effect. When you hit a cymbal repeatedly, it would cut off the sound and play the sound again. Ew. People miss out when they don't try some of the more indie apps. A lot of care goes into making them. |
To be fair to Apple here (and this was way before my time, so I'm probably mixing stuff up) - Garageband dates to 2004 with the eMagic acquisition and was (iirc) built on top of the Logic Pro audio engine. And back then, you still had to deal with the raw CoreAudio API (if anyone wants an adventure, try finding the documentation for it... you'll have to generate it yourself!) on MacOS. I recently had to dig through the old CoreAudio mailing list and read a book [1] on the API for low latency stuff, and I'm guessing that in terms of their engine there wasn't much needing change (at least architecturally) to port to iOS. I seem to recall the biggest difference between desktop/mobile versions was the featureset and UI, I think the problem you mention was present even in Logic. You had to get hacky with ES24's key/velocity maps to do what you mention.
From working in the pro audio world for awhile, I've found that other folks in the space just love to talk shop about how they do things. Audio devs are nerds like that. Doesn't always mean people are stealing from others.
[1] https://www.amazon.com/Learning-Core-Audio-Hands-Programming...