Loopy Pro: Create music, your way.
What is Loopy Pro? — Loopy Pro is a powerful, flexible, and intuitive live looper, sampler, clip launcher and DAW for iPhone and iPad. At its core, it allows you to record and layer sounds in real-time to create complex musical arrangements. But it doesn’t stop there—Loopy Pro offers advanced tools to customize your workflow, build dynamic performance setups, and create a seamless connection between instruments, effects, and external gear.
Use it for live looping, sequencing, arranging, mixing, and much more. Whether you're a live performer, a producer, or just experimenting with sound, Loopy Pro helps you take control of your creative process.
Download on the App StoreLoopy Pro is your all-in-one musical toolkit. Try it for free today.
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!
Get her to join in (or compete).
Rob Percival iOS programming course on udemy and the audio programmers handbook are a good start
And yes you need to use swift
Here's a starters guide in case you have not already read it.
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2-ID1
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.
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.
Got plenty of time and motivation, and actually a good learner(I presume). Thanks for the hints
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
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?
+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...
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.
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!
http://www.macrumors.com/2016/04/07/google-possibly-adopting-swift-for-android/
Google, apparently, looking at Swift for Android. Hmm.
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.