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.

I want to start coding. Looking for hints, resources, etc

Hi everyone,

as I was saying on the title I really want to start coding.
I have some very rudimentary knowledge of what does it means coding(some experience with html, css, js, processing and arduino, did some Pascal thousands of years ago) but actual no knowledge of How should I start coding for iOS.
So I'm looking for study materials but first I need some direction like:
Is Swift the only way to code for iOS? There better ways to do so?
Are there different cases where different languages offer some benefit over another? Like compatibility with 3rd party libraries and so on.

Thanks everyone

M

Comments

  • You do know that your girlfriend will never get any attention if you start coding! ;)

  • @Fruitbat1919 said:
    You do know that your girlfriend will never get any attention if you start coding! ;)

    Get her to join in (or compete).

  • edited April 2016

    Rob Percival iOS programming course on udemy and the audio programmers handbook are a good start ;)

    And yes you need to use swift

  • Maybe ask @Sebastian for some pointers & advice?

  • Swift is a very nice language, easy to learn and to use. When compared to ObjectiveC

    A much bigger challenge is to learn all the frameworks and SDKs

    Also, a lot depends on what are going to develop. For example, if it's a game, there are some high-level cross-platform frameworks for developing games (like Corona SDK, Unity). But if it's a music app, you better stick to Xcode/Swift

  • Thanks everyone for suggestions. I'll have a look right now. Namely I want to code a wave editor a la Audacity. I actually was thinking that could be a nice idea to port Audacity itself(obviously for free) to iOS.

  • @mschenkel.it said:
    Thanks everyone for suggestions. I'll have a look right now. Namely I want to code a wave editor a la Audacity. I actually was thinking that could be a nice idea to port Audacity itself(obviously for free) to iOS.

    Nothing like starting with the hardest possible project! Most programmers I know, including myself, start with a 'Hello World' program and then progress on from there. Not to burst your bubble but it takes quite a while to get proficient in a linear programming language, much less an object oriented programming language that I think is like Swift. Anyway programming a synth or wave editor is going to take you some time before you get to the skill level required of a releasable public app.

    With that said, programming is an awesome hobby if you can stick with it and don't mind sitting in front of the computer for some more hours. Personally I tried doing a bunch of things in C++ and have taken a look at Swift. They definitely have made things easier with Switft but it isn't "easy" at all, especially if you have to deal with anything that isn't available as an object you can manipulate such as direct audio.

    But you've got me thinking maybe I should give it a try again myself. Having a reasonable goal and a stretch goal is the way to stay motivated... see a need, create a program to address it is the best way to stick with it.

  • Learn an object-oriented language, which is crazy different from the structural coding you did in Pascal. (HTML/CSS will be of no help other than potential UI things) I'd recommend C++ as it's one of the lowest-level languages, which is often necessary for audio development.

    Once you get the basics of OO programming down, look into some frameworks for development in iOS or Audio frameworks.

    It will be a lengthy process IMO.

  • @fprintf
    Indeed that is the stretch goal. Right now the reasonable goal is finding the resources to code a screen with a play button and having it to actually make some sound. Already managed to make an arduino play a little tune but that was it.

  • @ImNotDedYet said:
    Learn an object-oriented language, which is crazy different from the structural coding you did in Pascal. (HTML/CSS will be of no help other than potential UI things) I'd recommend C++ as it's one of the lowest-level languages, which is often necessary for audio development.

    Once you get the basics of OO programming down, look into some frameworks for development in iOS or Audio frameworks.

    It will be a lengthy process IMO.

    Got plenty of time and motivation, and actually a good learner(I presume). Thanks for the hints

  • @mschenkel.it said:
    Thanks everyone for suggestions. I'll have a look right now. Namely I want to code a wave editor a la Audacity. I actually was thinking that could be a nice idea to port Audacity itself(obviously for free) to iOS.

    I wonder if buying the code and rights to an app that has been ditched by the Dev could be an option. Then practice making that better?

  • actually audacity is open source and it is not ditched so it could be a perfect fit

  • @mschenkel.it said:
    actually audacity is open source and it is not ditched so it could be a perfect fit

    Yeah sounds a good plan then :)

  • @Fruitbat1919 said:

    @mschenkel.it said:
    actually audacity is open source and it is not ditched so it could be a perfect fit

    Yeah sounds a good plan then :)

    A lot of helpful guys and gals out in the open source world

  • Cool! Good luck @mschenkel!
    For your next projects, or to look from a different point of view, you can check out
    http://audiokit.io

    It also looks fun building with Mobmuplat's engine
    http://www.mobmuplat.com

  • Looking forward to iAudacity!

  • I've programmed (including OOP) in the past, and so if Swift is a reasonably friendly language maybe i could pick it up.

    The problem I remember hitting in the past, though, was maths. There comes a point when my maths simply wasn't up to writing algorithms for the things I wanted to do.

    Any thoughts?

  • @TGiG said:
    Cool! Good luck @mschenkel!
    For your next projects, or to look from a different point of view, you can check out
    http://audiokit.io
    ...

    +1

    I know coding for other things, but haven't done iOS apps per se. I downloaded Audiokit and had compiled one of the example projects within minutes. That is obviously not coding, as the examples were coded by someone else, but at times it can be nice to have working examples, with code, that you can tweak/toy/break, which can increase learning speed.

  • This could be another kind of collab else than "I do drums you do guitars"
    Just saying uh...

    :D

  • @Matt_Fletcher_2000 said:
    I've programmed (including OOP) in the past, and so if Swift is a reasonably friendly language maybe i could pick it up.

    The problem I remember hitting in the past, though, was maths. There comes a point when my maths simply wasn't up to writing algorithms for the things I wanted to do.

    Any thoughts?

    There's a ton of math in audio development, yes. One would likely have to have a very strong mathematical understanding to really make something and be able to actually support it.

  • @mschenkel.it said:
    This could be another kind of collab else than "I do drums you do guitars"
    Just saying uh...

    Start a project on github and see what happens. Audiokit.io does look awfully nice.

    An audacity port is really to large to start with but there's definitely value in learning-by-porting. The UI will never win any awards but audacity has quite a lot of elegant (and clever) code if you browse its source. Learning how to recreate that sort of elegance in your target language ain't a terrible idea at all. You could start with a few of its processing modules and go from there.

    Try to be conscious of what is a control and what actually does something to your data and fight like hell to keep them separate. This took me a long time (continues to take me, I should say!). The concept is called 'decoupling' if you wanna look into it.

    Trivial example: If you get your audio file to play (you will) and then sort out how to change the start and end time, you're part of the way to a wave editor! Bullied by success, you add a couple of sliders or buttons to the UI to adjust the start and end points. Woot! If you tie those sliders too closely to the changing of the start and end times, what are you going to do when you finally sort out how to display a waveform and want to use touch position to set the start? Make huge invisible sliders? Don't laugh, it's been done. :) or what if you want to allow direct time entry via keypad? Or when you sort out downbeat detection and want to set the sample start time to the first downbeat? Programmatically move the slider? Again, don't laugh (I did something similar in JS this week.... Sigh).This is actually a terrible example but hopefully it gets the point across: as you go down this path, work hard to make all of the code you write do one thing and one thing only. Viva decoupling!

  • edited April 2016

    It is unlikely that you can port Audacity directly since the GPL license terms will cause issues. There are some ways that folks have found to use LGPL'ed code as libraries, esp. since iOS8, but not GPL'ed code directly in an app. So, any project you borrow code from must usually have a less restrictive (read, more free), license, like BSD, Apache, etc. public domain, or the code must be something you develop from scratch.

Sign In or Register to comment.