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 Store

Audiobus is the app that makes the rest of your setup better.

Starting "Development" ... which framework?

2»

Comments

  • @tja said:

    @wim said:
    BTW, if you want to mess with Swift and still stay on your PC, its pretty easy to run Linux in VirtualBox or other virtual machine host software.

    With Swift?

    Or did you mean Rust?

    Swift. I don't even know what Rust is.
    Swift is open source and runs on many flavors of Linux. The development experience is nothing like working with Xcode, but the language is there. https://swift.org/download/

    Don't get me wrong ... I think Swift is a dead-end for your use-case at this time. I was just pointing out that there are low-impact ways to experiment beyond Windows.

  • @GovernorSilver said:
    How about the Audiokit framework? Although I suppose it doesn't apply if the app you want to develop isn't audio related.

    https://audiokit.io/

    My first App would probably a better "App Store Wishlist" App, so not really audio related.
    And handling bookmarks may follow, if i cannot find something in my other topic.

  • @wim said:

    @tja said:

    @wim said:
    BTW, if you want to mess with Swift and still stay on your PC, its pretty easy to run Linux in VirtualBox or other virtual machine host software.

    With Swift?

    Or did you mean Rust?

    Swift. I don't even know what Rust is.
    Swift is open source and runs on many flavors of Linux. The development experience is nothing like working with Xcode, but the language is there. https://swift.org/download/

    Don't get me wrong ... I think Swift is a dead-end for your use-case at this time. I was just pointing out that there are low-impact ways to experiment beyond Windows.

    Many thanks for this!
    I was not aware, that there is already Swift for Linux :o

    This would mean that i could start more early ... and hopefully, Windows would follow.

    That's a valuable information, thanks!

  • @wim, please have a look at this:

    This is some overview of Rust.

    It hit me right in the face, everything just sounded RIGHT.

  • Thanks for the link. I already fell down the Swift rabbit hole and my brain is past all tolerances already. If I try to take in anything else right now I might have an aneurysm or something.

  • @wim said:
    Thanks for the link. I already fell down the Swift rabbit hole and my brain is past all tolerances already. If I try to take in anything else right now I might have an aneurysm or something.

    Was laughing to hard :-D :-D :-D

    Good luck!

    So you are also on that road, but already took the first junction ...

  • Rust is a very good language indeed and I think has a bright future ahead of it, but you'd still have to find a solution to your interface unfortunately.

    For audio one cross platform solution worth considering is Faust:
    https://www.kadenze.com/courses/real-time-audio-signal-processing-in-faus

    It's highly functional, so it can be hard to wrap your head round at first (unless like me you broke your brain many years ago with Haskell), but it does compile to a lot of platforms. It has some limited GUI functionality as well, though so I'm not sure if you'd want to rely on it for your UI stuff. I use it for prototyping a bit, and am starting to use it for writing custom instruments that I can drop into Reaper as a VST.

  • Thanks for the link, @cian

    The page itself does not exist, but the site is OK.

    Never did functional programming, so not sure :D

  • edited June 2020

    I recently jumped into my hobby project, besides my daily job which is web app development in plain React. I also had a strong preference to develop multi-platform app (ideally also browser-based). I wanted to learn something completely new but then I realised React Native is still "new enough" :smile:
    Few years ago I attended a workshop with the founder of Expo framework and I remember it looked like magic at the time so I was wondering, if it still exists and it actually matured to a very powerful tool. So I started working on an app using Expo and I am really surprised how convenient it is. It's built upon React Native, but it fills gaps that React Native does not aim to solve (specific components, deployment process, prepared working environment etc). It really seems to me like currently the best way to go for a single person project, if you want to go multiplatform. I was able to have a running "hello world" app on my phone in 10 minutes from checking out the repository, that's really crazy if you compare it to other tools. Not to mention that if you save a file on your computer, the app on your phone is (wirelessly) reloaded with a new version.
    React Native is also now also battle-tested and Expo is only building on top of it, so I also believe it's pretty future-proof, you can always decide to "eject" Expo and work with bare React Native if you want to.
    I also paired it with Firebase cloud functions to go serverless and this also seems to be working so far pretty well. As I used to do backend in the times of PHP with complicated assembling of SQL queries, this feel like cheating :smiley: Not to mention things like out-of-the-box support for user authentication, push notifications etc... I used to do these things manually on various BE frameworks, this is saving you dozens (or rather hundreds) hours of work and the result is even better.
    Also I am a fan of TypeScript as we use it in my daily job, I recommend jumping directly into TS if you have previous programming experience (which was not JavaScript) - it will likely save you from a lot of headaches while learning specifics of JS. Expo and React Native support TS nicely, you can generate a starter project in Expo with TS pre-configured.
    Still, expect there's a lot to learn. I have quite a lot of experience with React and been doing web development for 15+ years, but still I needed to learn a lot. But this won't be easy with any of the paths you choose :smile:
    Wish you good luck and, most importantly, have fun!

  • @tja said:
    Thanks for the link, @cian

    The page itself does not exist, but the site is OK.

    Never did functional programming, so not sure :D

    I left the 't' off the end of the link...

    try this:
    https://www.kadenze.com/courses/real-time-audio-signal-processing-in-faust

  • One thing about plugins which is a pain, is that you can't use most GUI libraries with them (this is one reason for JUCE's popularity). Not sure if that's true for AU3, but it's definitely true for VSTs.

    You can use Faust with JUCE to develop libraries, though FAUST is not as optimized as native C++ (or indeed Rust) would be.

    For audio Rust currently doesn't really have the libraries. People (including me) are working on that, but there's a lot to do before it can compete with C++.

  • Many, many thanks, @skrat
    I will have look at this, and it really sounds like an easier entry than pure React Native.
    Also, i like that TypeScript is possible, even as i don't know this or JavaScript yet.

  • Thanks for link, @cian
    Got it now.

    You are working on and with Rust?!?
    Does that mean you are a developer from the Rust team?
    Or did i misunderstand?!?

  • tjatja
    edited June 2020

    Myself, i got stuck.

    My initial test with Flutter worked good enough, but i it seems that it needs to mature a bit more.
    Esp. in regards to Windows support.
    Also, it cannot develop for iOS when not running on a Mac.

    I then wanted to check out Xamarin, but the latest news of Swift coming to Windows and that it is already available on Linux, made me hestitate in which direction to run.

    I have only some time to spare, after all.

    So let's wait a bit....

  • @tja said:
    Thanks for link, @cian
    Got it now.

    You are working on and with Rust?!?
    Does that mean you are a developer from the Rust team?
    Or did i misunderstand?!?

    Ha! No, I wish. I'm creating a DSP library for my own purposes in Rust. It's very experimental at the moment, and may never leave the laboratory. It's fun to work on though. I like Rust working in Rust a lot. It's a very good language for doing low level stuff, with extremely good tooling. One of the things I used to like a lot about Ruby was that it took care of all the boilerplate for you. Rust is similar, except that unlike Ruby your code will be blisteringly fast.

  • About WebAssembly, i found this:

    It is very enlightening in regards of possibilities, expectations and limits!

  • wimwim
    edited June 2020

    @tja said:
    Myself, i got stuck.

    My initial test with Flutter worked good enough, but i it seems that it needs to mature a bit more.
    Esp. in regards to Windows support.
    Also, it cannot develop for iOS when not running on a Mac.

    I then wanted to check out Xamarin, but the latest news of Swift coming to Windows and that it is already available on Linux, made me hestitate in which direction to run.

    I have only some time to spare, after all.

    So let's wait a bit....

    I hate to repeat myself, but without any indication that SwiftUI** will be open sourced and ported to other platforms than iOS, I believe you're dead in the water with Swift for Windows. I believe you will be waiting a long time for that component - if it ever comes.

    But - maybe you're not in any hurry. In that case no harm in waiting. But I wouldn't make that decision based on simply that article saying Swift will come to Windows. That doesn't really mean all that much if the need for cross-platform GUI tools in your OP is important to you.

    (I expect there will be some mention at WWDC in a few days of the direction, so maybe that assessment will be confirmed or disproven soon.)

    ** SwiftUI is the current generation GUI management for Apple platforms (only). UIKit / AppKit / WebKit are the older iteration GUI platforms, which are gradually being superseded by SwiftUI and are not being developed further. Those also aren't multi-platform and open source.

  • Thanks, @wim

    I just need one platform at first, so that i can build and test and learn and debug.
    The others i can wait for, some years at least.

    Of course, it would be great to have this on iPad, but then i need a Mac, when using Swift or when using Flutter.

    When using Flutter, it currently also does not work on Windows. Neither for Windows nor for iOS as target.
    Same problem.

    I should maybe instead develop some libraries in C on Linux and later see if and how i can make use of them.

    Or simply start learning Rust, which seems to be promising.
    I could compile this at least on Linux, as it seems....

    But then, my first wish for an App would be a better "Wishlist" App.
    Something that could be enhanced to store other sorts of links and texts and tags :)
    But that would very much require an iPad to test on.
    So, i'm stuck :D

    So, Xamarin may still be the solution.
    But that also seems to mean C#, need to check.

    I was hoping to find my content management App more early, so that i directly could do this research with that App.

    And yes, i still hesitate to go the JavaScript / TypeScript route.
    But still i will check out Electron / Atom and that Expo Framework.

    I will report back what i found.

  • tjatja
    edited June 2020

    Just to add that to this thread:

    I discovered Lua, quite a fast language that can be compiled with LuaJIT to be even more fast.

    LuaJIT seems a bit abandonned and only works for a somewhat older version of Lua.

    It is similar to C and interacts very easy with C libraries.
    In part, this reminded me of Rust.

    It also has a coding environment on iOS that can export packages right into Xcode:

    Codea
    https://apps.apple.com/app/codea/id439571171

    I will never be able to make a decision :D

  • edited June 2020

    I've spent some time researching this topic a year ago. I have some Android app development experience and wanted to start developing for iOS.

    My advice: go full native. It will save you a lot of headache in the future.

    If you have a lot of code you want to share between different platforms, you can use native views and just put your core logic inside a shared library or framework. C/C++ libraries work best, but you can also use Go, Kotlin/Native, Rust, etc.
    For some it works fine, for some (see this article by the Dropbox tech team and a very interesting discussion on HN) - it does not. Debugging that shared code would certainly be a real issue.

  • @yug said:
    I've spent some time researching this topic a year ago. I have some Android app development experience and wanted to start developing for iOS.

    My advice: go full native. It will save you a lot of headache in the future.

    If you have a lot of code you want to share between different platforms, you can use native views and just put your core logic inside a shared library or framework. C/C++ libraries work best, but you can also use Go, Kotlin/Native, Rust, etc.
    For some it works fine, for some (see this article by the Dropbox tech team and a very interesting discussion on HN) - it does not. Debugging that shared code would certainly be a real issue.

    Many, many thanks for this!

    I had no problem to simply start with Swift, but i tried hard to not needing to buy a Mac.
    I don't like them. Had a Mac Book Air once and gave it away after 3 months of trying.
    I'm simply a windows type :-D

    But maybe i should drop this and get some Mac.
    My main platforms of interest are iOS / iPadOS and Windows.

    The discussion in the second link of yours is very, very interesting - but also very long.
    I only read the first part so far.

    I will let this sink, thanks again!

  • @tja said:

    @yug said:
    I've spent some time researching this topic a year ago. I have some Android app development experience and wanted to start developing for iOS.

    My advice: go full native. It will save you a lot of headache in the future.

    If you have a lot of code you want to share between different platforms, you can use native views and just put your core logic inside a shared library or framework. C/C++ libraries work best, but you can also use Go, Kotlin/Native, Rust, etc.
    For some it works fine, for some (see this article by the Dropbox tech team and a very interesting discussion on HN) - it does not. Debugging that shared code would certainly be a real issue.

    Many, many thanks for this!

    I had no problem to simply start with Swift, but i tried hard to not needing to buy a Mac.
    I don't like them. Had a Mac Book Air once and gave it away after 3 months of trying.
    I'm simply a windows type :-D

    But maybe i should drop this and get some Mac.
    My main platforms of interest are iOS / iPadOS and Windows.

    The discussion in the second link of yours is very, very interesting - but also very long.
    I only read the first part so far.

    I will let this sink, thanks again!

    Just my 5 cents as I see your thoughts and doubts: If you want to build your "app wishlist" consider even if just a simple web app wouldn't be enough for this. This will be definitely the easiest way to get a working prototype, anything else will be always tougher.
    If you want native iOS app, you definitely need Mac, there's really no way around it (yes, people try crazy things, but believe me, it's out of question). So with Windows, your only bet are still multiplatform frameworks like React Native, Xamarin, Flutter... For this kind of app, it's completely fine to go with multiplatform as you won't use any specific APIs which these frameworks usually can't support.
    So I would maybe narrow down your question to wether you want to learn specific stuff (e.g. iOS development) or you want to simply build an app the most straightforward way with the setup you have right now.
    That said, for such an app, I'd forget about native development, unless you really want to learn that specific platform. And if that platform is iOS, then you'd need a Mac. Otherwise, pick some multiplatform framework, likely one of React Native, Flutter or Xamarin.

  • edited June 2020

    @wim
    SwiftUI is the current generation GUI management for Apple platforms (only). UIKit / AppKit / WebKit are the older iteration GUI platforms, which are gradually being superseded by SwiftUI and are not being developed further.

    Can't help myself but i don't like MVVM used by SwiftUI. Simply old good MVC is hardwired to my brain i'll stick with it for now.

    More i dive into Swift, more i like it. Hope one day they will add something which will make possible to use Swift code also inside realtime audio tread and stay thread safe - i don't like you're forced to use C++ for DSP code - Swift is soo much more readable than old raw C++ :))))

  • @tja
    had no problem to simply start with Swift, but i tried hard to not needing to buy a Mac.

    Unfortunately, there is no way around - if you want deploy app to appstore, you need Mac with XCODE. You can do whole developement in other IDE, even on Windows (Matt develops whole NS2 in C++ in Visual Studio on Windows), but for final build / deploy Mac/XCode is mandatory.

  • @dendy said:

    @wim
    SwiftUI is the current generation GUI management for Apple platforms (only). UIKit / AppKit / WebKit are the older iteration GUI platforms, which are gradually being superseded by SwiftUI and are not being developed further.

    Can't help myself but i don't like MVVM used by SwiftUI. Simply old good MVC is hardwired to my brain i'll stick with it for now.

    More i dive into Swift, more i like it. Hope one day they will add something which will make possible to use Swift code also inside realtime audio tread and stay thread safe - i don't like you're forced to use C++ for DSP code - Swift is soo much more readable than old raw C++ :))))

    Use Rust.

  • edited August 2021

    Just my two very biased cents… Swift is a very cool language. If you have a Java or JavaScript background you will feel very much at home with the syntax. For me it very much resembles Groovy if you know this fine little language. I would not do any serious app development with any of those cross platform tools like flutter, cordova, etc. These apps somehow never feel really native. For the personal wishlist it might be sufficient though. If you do not develop for Windows natively I think a Mac or a Linux machine is the better choice for a developer. Think about it. There was no better point in time than now to buy a MacBook. Even the cheapest M1 MacBook Air beats any medium range Windows laptop out of the water regarding bang for the buck, battery life and performance.

  • @krassmann said:
    Just my two very biased cents… Swift is a very cool language. If you have a Java or JavaScript background you will feel very much at home with the syntax. For me it very much resembles Groovy if you know this fine little language. I would not do any serious app development with any of those cross platform tools like flutter, cordova, etc. These apps somehow never feel really native. For the personal wishlist it might be sufficient though. If you do not develop for Windows natively I think a Mac or a Linux machine is the better choice for a developer. Think about it. There was no better point in time than now to buy a MacBook. Even the cheapest M1 MacBook Air beats any medium range Windows laptop out of the water regarding bang for the buck, battery life and performance.

    As I now own a Mac Mini M1, I started delving into Xcode, Swift and SwiftUI.
    There is lots that I don't like about Swift, but it is a capable language, even if a bit bloated.

    My first mock App was already running on my iPad (doing nothing of interest), but I try to be able to run it on Mac, iPhone and iPad.

    There are immense amounts of stuff that I need to learn about Xcode, Swift and SwiftUI. But as I know can compile and deploy stuff, I think it will slowly work :smile:

    If I would ever need a library from a faster language, I would be tempted by Rust!

  • @tja said:
    The stable version of Flutter seems to be geared towards Android development.
    Only the beta channel has early support for building web applications.

    And only the beta versions seems to include "dart", but still i find it in a sub-directory of flutter.
    The documentation is way off the reality, which is never a good sign.

    https://flutter.dev/docs/deployment/ios seems to imply, that you need to develop on Mac to be able to produce an iOS App.

    Nothing hints to iOS development on Windows, beside a "Cupertino" package.
    https://flutter.dev/docs/get-started/flutter-for/ios-devs

    But where is also no hint that this is possible on Windows.
    I only need a working simulator.

    The "Test drive" with "flutter create myapp" pointed to a missing Android SDK.

    I will tomorrow try to install the Android SDK to test if i could select an i-Device with Cupertino, or if it is as i fear.
    Very sad.

    I also found this:

    The https://www.cogniteq.com/flutter-app-development service also turned out to be useful; with the help of their professionals you will receive the best software for your business.
    https://stackoverflow.com/questions/47006906/developing-for-ios-device-in-windows-environment-with-flutter

    With links to

    https://medium.com/flutter-community/how-to-sign-flutter-apps-for-ios-automatically-without-a-mac-a2dc9cfa5a6c

    and

    https://medium.com/flutter-community/developing-and-debugging-flutter-apps-for-ios-without-a-mac-8d362a8ec667

    But i am finally not sure that i like this.

    In summary, it seems that i need to develop Android Apps as there is no iOS simulator outside Xcode and only at a later stage may use the above workaround or simply get a Mac.

    This did not go as easy as i thought.

    While Flutter is primarily focused on Android development, there are ways to develop and test iOS apps on Windows, although these may involve workarounds and additional steps.

    Regarding the missing Android SDK, be sure to install it correctly as it is important for Flutter development, especially for testing on Android devices or emulators.

    While developing for iOS on Windows may not be as easy as developing for macOS, it is still possible with the right settings and tools.

  • You resurrected a nearly 3 year or topic, @Gery1938 😅
    Meanwhile, I got an M1 Mac and tried around with Xcode on macOS.

Sign In or Register to comment.