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.
Comments
Thank you for your effort and thanks to everyone else involved in this project!
At AudioKit, we can't promise our code is good. But, we can promise the code is improving.
So cool, Matt. Maybe if we all tried to create our own app we’d stop requesting everything under the sun.
Use the code at your own risk. Here's a picture of me as an audio developer:
LMAO
From the bottom of my heart, thank you Matt. Can't wait for finals week to be over so I can brew myself a pot of coffee and dive into this
Thank you. Hopefully all that coffee will cure any headaches this code may cause!
Well, it might inspire some empathy for app developers once everyone realizes what we go through.
Best. Slogan. Ever. lol
But your code has always been good, Big fan here
Just downloaded - compiles & runs out of the box. Maybe have to learn swift 4 now.. thx for donation to the community @analog_matt
Tony what was quantum programmed with?
Thanks! I bought a copy of Quantum a few weeks ago. It's super fun!
objective C mainly - the MidiBus library is C. I used cos2d games engine so it has its own shaders & UI. gfx are packed using TexturePacker for PVR.
I've been avoiding swift since its locked into Apple, but its similar enough to obj-c+ARC. I'm not translating Quantum to swift though - its over a million lines of my own code, but I can bridge the two.
If I'd known I could have given you a promo!
I wonder how much work would it take to make this wonderful codebase multitimbral, with choice of MIDI channel for each part. Since AUV3 is not an option (at least for now) with Swift 4, the most viable option to really make the most out of a sample-based app made with ROMplayer in a production context would be having more than one MIDI channel available, with different timbres in an IAA instance. Something like Sampletank, but with more than 4 parts (this would be dictated by the power of the iOS device). Such a solution would be even better than AUV3, with its measly 360 MB memory limit!
@jugstries - That is a very cool use case.
And the answer- Very easy. The app store version of this code has some basic multitimbral functionality. For example, there are two AKMIDISamplers instead of one. That's how presets like 'FM Sound Stack' can morph between two sounds.
Having multiple sample oscillators is also a good way to save device storage space. Those stacked sounds use existing samples. Thus, not requiring a separate sample set for each layered sound.
All this interests me for experimentation purposes...
But you gotta code on a MAC and have the Dev account to put anything on a device, right?
Could someone please code an ios version of the Teenage Engineering OP-1?
Yes, YOU can! I believe in you
Tried it on two different macs and got endless warnings about versions of Swift. May have to start with something a little easier..
You are correct. However, dev accounts to put on your own devices are free. You only have to pay Apple if you want to upload to the app store.
Oh... nice! Thanks, Matt!
This may help some people: The workspace needs to be opened from the "RomPlayer.xcworkspace" file (instead of the "RomPlayer.xcodeproj" file)
Tried that but I still get:
“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
To be fair, although I am a developer, I have no idea what I am doing in XCode or with Swift. It could well be that I need a newer update of both.
This code was last committed/tested with Xcode 9.1
Interesting...can anyone speak on the learning curve for a complete coding beginner?
I assume most of the heavy lifting has already been done and all you have to do is figure out how to import/map your sample library then compile.
How easy is it to customize the GUI? Customizing knob behavior and such.
I'm in Xcode 9.2 and with RomPlayer workspace only get a warning about swift 3 @objc and umbrella AK4ParamRampBase.hpp
easy enough - but you do need to learn Swift.
If you're already familiar with Xcode, Storyboards & resources then thats half the job - Audiokit is readable as Swift.
You have to have a Mac OS though.
Bless the releasers you rock