Make audio computer software/apps (programming) help
Greetings,
I want to start off by saying that i don't have any background whatsoever on programming. Recently i had a really good idea, i want to make a sampler app for my iphone.
At the same time i have planned to learn Arduino and utilize it with Max, so i was thinking on learning Max MSP, but i don't know if this will also work for making apps.
where should i start learning? should i learn Xcode/swift (i work in a mac)first? or rather learn Max Msp? and if i use both where should i start?
Also is there a difference between and ChucK or PureData? I'm really confused, please help me.
Hi, Miguael
Actually it is a lot of questions in your post, but:
Programming skills are not required, if you want to work with Max or PureData, but some orientation on this field is very useful, especially if you are planning to create complex projects and/or use semi-advanced features (e.g. scripting).
PureData is - as Max - so called "visual language", ChucK is more "classical" text-based programming language profiled for music and audio processing.
Xcode (Swift or ObjectiveC) is basically the only choice for creating apps for iOS. You can't run Max projects on your iOS device - however you may use Max for prototyping or even creating some C code (for more details check: "gen~" + "code export" in Max documentation and this forum). There is also an interesting solution for running projects created in PureData on iOS or Android devices - dig on libpd.cc website for more info.
Arduino is a device and programming environment, but for typical applications (reading data from sensors, etc.) it's very simple to find ready-made solutions. It is very simple to connect Arduino to Max.
If you have no programming skills yet you can also - instead of Xcode - use Processing (processing.org) to learn programming techniques - moreover it is very simple to interfacing Processing and Max, and - what may also be interesting - Processing and Arduino programming environment are both sharing a lot of concepts.
Miguel - good Luck! I do want to stress that one can create iphone apps *only* through iOS and it's Objective-C/Swift programmer's interface ("API") ..
although you could use PD and it's embeddable "pdlib" to create the audio portion of the app,
OR
use Max's Gen! object to create C code that can be exported, and compiled into a iOS application...
BUT:
to make an iPhone App, one must use Objective-C/Swift iOS code.
both above techniques for using Max or PD can also be used to embed audio code
into an Android application, using the Java API for Android.
HEY!!! ...the reference to Processing is excellent idea!
: learning Processing you will learn standard programming techniques ,
in a syntax that will translate well to both Java and C languages...
and most likely, generate fun images and sounds.
Then look into moving onto Swift/Objective-C for iOS, or perhaps Java for Android...
Again, good luck!
Charlie Baker
aka j2k
I'm sorry guys, but i didn't quite understand the order. So, i already know the programs that i need. I'm learning max, C, and pdlib. Which is the best order of learning these?
Sorry if this question may seem stupid!
Thank you guys!
Im late to the party I suppose, but I sat right where you sat at the time of this post once. Two years later I may have some insight for you if you haven't already found it, or maybe help the next guy with similar questions, as well as pose some new ones. For one, are you planning to make this app for your own personal use, or are you looking to actually market this thing in hopes to sell it commercially? Do you care if windows and linux users have access to your app or are you fine with making an apple-only release etc? I love max MSP - LOVE IT... but as one who uses prodominately linux based systems and has a strong distaste for all things apple, I cant recommend MAX as a platform for serious app development and distribution. Mainly that it is not generally cross platform. While things like gen export give you access to exporting aspects of max apps for embedded devices etc, as far as I am aware , that is for more low level programming and doesnt mean that you can make a flashy GUI or a regular old max patch and fire it up on an iphone, droid or raspberry pi. To me, one of the areas in which max truly shines is in it's ease and flexibility in quickly making nice looking GUIs... and it only frustrated me in the end that my nice looking GUIs that I spent a lot of time on were unavailable to use on anything besides mac or windows, which I am more and more distant from with each passing day. Max kept me stuck on apple longer than I wanted to be there as the main reason for me not to switch... but eventually I had to, and all my work in Max got chalked up to a mere learning experience. I loved the use of max as a stepping stone for learning, and if your goal is to simply make cool apps to use for your own sound designs or prpjects while stuck to apple it's great for that too. For commercial app releases on mobile devices, I would recommend learning a language that is open source, cross platform and widely supported by hardware and communuties of seasoned programmers. Things like C, Javascript, python, JUCE, processing etc are powerful and make development and release of an app available to the widest variety of hardware platforms and operating systems. Juce may have some licensing snags to pay attention to, though Im not to be quoted on that sort of thing as Im no expert. C is and always has been open source, making it a sound choice for people looking to make commercially released apps. I would say C (obj C, C++, C family of languages) are the best place to start, as it is widely used, supported and the basis of many programming languages which followed it historically. Even max or Puredata in their text form break down to a very C like language. Arduino is also a C based language which is intended to be used as a means of controlling AVR boards like arduinos, but not really relevant unless your app has some sort of physical hardware aspect of it's design. The point is, learning C is a good basis which will make many other languages easier to learn, as most languages are either directly derrived from C, share many similarities, and interface easily with C. So the short answer to your question in my humble opinion is to start with C.
If you are attached to modular signalflow and visual programming, Puredata is open source and cross platform. It's rough around the edges compared to max, but shares many similarities. Maybe start with max as it's much easier to learn and has much better documentation than Puredata, then when you are familiar enough, much of that knowledge will carry over to PD.
Finally, I have heard talks here and there about making an app in max or puredata, then wrapping the patch in some layer of code to allow it to be used as a VST or on various platforms etc.. however doing so would involve a reasonably advanced understanding of - once again - C, which brings us once more back to the need to learn C.
That's my two cents on the matter, but then Im still tackling the learning curves myself as a relative newby to app design. If any seasoned veterens have anything to add or make corrections on, I'm appreciative to hear it.
Hope that helps, long winded though it is.