Audiobus: Use your music apps together.
What is Audiobus? — Audiobus is an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller.
Download on the App StoreAudiobus is the app that makes the rest of your setup better.
Has anybody here heard of or used JUCE or AudioKit for Audio Programming?
Hey everyone, my name is Steven and I'm kind of new to the forums and am looking for some help.
I'm just a beginner programmer/ developer or whatever and I'm wanting to get into audio programming and hardware engineering. I'm looking for some advice on as to how to get started and to get your views on what it is I should use, be it JUCE, AudioKit or some other library/ framework/ engine or whatever. I started a couple of discussions on the forums here:
https://forum.audiob.us/discussion/18162/app-development
https://forum.audiob.us/discussion/18209/hardware-development-w-raspberry-pi-and-arduino
I'm just looking for a little more guidance.
Thank you so much,
- Steven.
P.S. I don't know exactly what I want to build.. I know I want to create something that in time could become really complex, ie. IAA, AUv3, Audiobus support, Ableton Link etc. etc. etc. all the bells and whistles but I kind of want to start small... or not, I don't mind. Just as long as I'm not wasting my time I'm cool with it. Or even if I do. (shrugs) it's cool, it's all about the learning experience for me.
Anyways, thanks again for all the help. Peace!
Comments
I think you should go with AudioKit. Work through the examples and playgrounds. Stay with Swift - it is a long way down the road when you'll eventually need to write your own custom dsp code in C or C++ (if ever).
As you progress with audio programming, you'll discover that Apple only provides a poorly assembled set of documentation, sometimes in the form of header files, sometime in the form of developer conference videos ... if you are lucky, they provide sample code that you may learn from.
AudioKit, on the other hand, is very well documented. A great place to start! You have it from the man himself: "99% of people should be using AudioKit, anyway".
http://theamazingaudioengine.com/retirement/
Just a question: is it possible to use Audiobus with Swift? And will this change for Audiobus 3?
We've been working together with Aure, the guy behind AudioKit when we were working on the Audiobus 3 SDK. Audiokit is going to be compatible with it.
Audiokit is compatible with Swift and the Audiobus SDK.
That's kind of what I was thinking. Like if you want to create a VST or Audio Unit you can or if you want to create something for Linux, Windows you can too.. Idk. I think that may be what I go with and plus it's used by AKAI, Native Instruments, Korg, etc. so it kind of sounds like it's an industry standard of sorts. I'm not sure how lite weight you can go but I have a Raspberry Pi and want to get into hardware development with it and the Arduino family of products or whatever. Like I said, super new.. Still working out the kinks etc. but yeah. It sounds like a lot of fun.
I'm kind of thinking that I want to try to use Xamarin for what I can. I've heard others say it may not be the best but I think it kind of my only option for how diverse I wish to be. But again, Idk. I'm thinking C/ C++ for the realtime audio effects processing & DSP or whatever w/ JUCE, do what I can in C# and whatever and work my way into Obj-C to bridge the gaps where it's needed etc. Idk if it's really worth it but I think it may be. My thinking is that in time.. Say 5-10 years I would like to be creating some open source stuff. My fictitious studio name is Open Source Studios... & to know enough to create custom hardwares and stuff for the iOS platform using the Arduino, Raspberry Pi & other open source stuffs. lol. Big dream but it's a good one I think.
Thank you all for checking this all out! It means a lot!
Many people here wish they had the patience, will & time for making their dream app
Wish you the best , first steps are the most difficult, my advice is that if you can afford for taking some lessons with a pro ( if you find anyone near you) ,do it.
One hour with a good teacher equals many hours surfing ,mainly because at the beginning you don't know what to search
That's a great idea for sure and I plan to or hope to at least. lol. I feel I should be able to at some point.
And would you recommend writing audio apps in Swift?
If your just starting out I'd pick one language first and learn it well.
I'd suggest starting with C.
It's a relatively small language and will give you an easy on-ramp into ObjC and C++, which will more than likely be needed regardless of which direction you end up choosing.
Most hardware is still written in C.
VST and AU plugins are usually C wrapped in a C++ shell (like JUCE).
iOS apps are usually C wrapped in ObjC.
We (Klevgränd) are using Juce for all audio app development since a couple of years back. It's very well written and has a great community. I guess it took me about an hour to (from downloading the SDK / tools) compile working binaries (AudioUnit/VST/VST3) for mac. Had almost the same experience for Windows (with almost zero experience on Visual Studio by then though). Compiling Standalone/AUv3 for iOS is also more or less pressing a switch in the Juce tools.
Compared to the above: when developing our first AudioUnit for OSX (no external frameworks), it took days just to manage the compiler to compile a AudioUnit properly that showed up in the DAWs as we wanted to.
If you're only going to target iOS, Juce might be overkill, and I guess AudioKit is more appropriate… The current Juce version does not support IAA, but I think the next major version will do.
Aha - that must be a one to many relationship.
Wow, crazy! Thanks! Yeah, I don't know. I'm kind of wanting to be able to work cross platform but I may stick to iOS, I'm not sure. And I'm really kind of wanting to stick with JUCE I think.. I think it's kind of an industry standard at this point being KORG, Native Instruments, etc. etc. etc. are using it so it would be kind of nice to learn. Just don't know how or where to begin. It's not like when I was a kid using Adobe Flash and Actionscript, it's hard. lol Before I could just follow a video tutorial and all was well. But I can't really find much as far as tutorials go for JUCE. It would be nice if someone would create a video tutorial series on how to w/ JUCE. Or even a Udemy course would be awesome. I would love to do something like that if I were knowledgeable with this stuff and may try at some point if I at all become fluent in programming and with using the JUCE framework.
You have to pay for JUCE if you're creating commercial apps
Yeah, I know. It's free for open source projects though which is kind of what I would like to do if at all possible but I don't know if that'll work with the iOS App Store or whatever.. Idk.. Thanks for bringing that up.
Anyone know if you can create open source apps and sell them on the App Store w/ or under JUCEs open source license??
If you're staying on iOS, I would avoid using 3rd party APIs and simply stick to the system audio APIs. That way you can at least fix things when Apple breaks something in an iOS update without you having to wait for others to fix the frameworks for you.
Just download the Ableton Link sample code, the Audiobus examples or the Apple AU sample code and you get something that works right out of the box. Added benefits: you learn exactly how stuff works because it's not some mysterious black box and you won't get weird license restrictions getting in the way.
Awesome, thanks! That's not a bad idea. I'll definitely check it out and keep it in mind being I do FOR SURE want to work on iOS but I would really like to keep my options open for cross platform.. and I do think I can maybe use JUCE for free being I'm trying to be all open source and all. lol. We'll see!
Think I must point out that, at least for me, the audio framework/API is just a way to speed things up to get at good starting point. When everything is setup the real work starts (developing the actual app/effect/synth). This is the fun part and if I can get to that point with minimal effort I'm a happy developer If you stick to C/C++ you'll be able to pretty effortless run that (dsp) code in almost any audio engine/framework with very small adjustments. It's a bit harder when it comes to the user interface. Juce rolls its own API for graphics drawing/rendering that is near 100% cross platform, which saves us enormous amounts of time when building for different platforms (one implementation builds for all target platforms). Our early plugins had different UI implementations for iOS and desktop, and I'd say that added about 30% (maybe more some times) development time for each release (and any updates).
OMG, WOW!!! Thanks.. that's super awesome! Yeah, it took me a long time to discover what it is that I want to do and so yeah I think I'll be doing this for a long time into the future. I've been studying "programming" for some time.. about Idk, 15 years or so but am completely new to C/C++ and app development for any platform really. I've done a bit in HTML, CSS and Javascript, "not really enough to know anything really" and had spent some years w/ Adobe Flash before it died. But yeah.. I'm really excited about all of this. I feel like I found the Holy Grail in just having found this forum, JUCE and identifying audio programming in general. lol. but true. Thanks for telling me all about this @sundhage. Awesome! :P
As with any advice on Les Internétz, knowing where it's coming from can help put it into perspective. The honorable Mr. Bram has been developing audio software for public consumption for decades. Not decades in Internet years. Real ones. And pumping out good stuff pretty much the entire time it would seem.
We can't all be him and we certainly can't start with his experience/skills. IMO, it's absodefinitely worth taking some time to learn about the long and short term pitfalls of using frameworks generally (and whichever you opt to use more specifically, like those Bram mentioned), but if you're just getting started, I reckon well established frameworks are a net positive. Not just the main pitch parts (easier, cross platform, etc) but the community, project style and best practice guides, example code...
I mostly write Javascript and CSS for a living. I've been doing it for a long time. I can't stand frameworks. So there's that.
With that background you should take a look into tumult hype. Idk how good is for audio apps but it can export to mobile and it's interface avoid coding (even it has the possibility of course). So maybe for GUI it will be useful...