Braintree Posted February 2, 2012 Report Share Posted February 2, 2012 How does one learn how to program for audio applications? It seems there is a bit of demand for this position in the gaming industry, and I'm interested in switching careers. I know there are quite a few web developers on here, so I thought you fellas might have an idea. Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide Braintree's signature Hide all signatures colindyer.bandcamp.com williamsbraintree.bandcamp.com Link to comment https://forum.watmm.com/topic/71564-audio-programming/ Share on other sites More sharing options...
Guest iep Posted February 2, 2012 Report Share Posted February 2, 2012 (edited) openAL is looking very promising these days. there's a lot of middleware stuff these days, especially the UE stuff that has nice editors for sound placement. licenses don't come cheap tho, so get some hands-on C++ experience and experiment with OpenAL, i'd say, and just join an (amateur) development team to get make things real. Edited February 2, 2012 by iep Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1745977 Share on other sites More sharing options...
Guest tompty Posted February 2, 2012 Report Share Posted February 2, 2012 c++, dsp books. bam Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1745978 Share on other sites More sharing options...
Guest iep Posted February 2, 2012 Report Share Posted February 2, 2012 On 2/2/2012 at 12:35 AM, tompty said: c++, dsp books. bam you're probably gonna need some C knowhow and basic dsp/audio manipulation shissle to get stuff done yeah, but middleware will get you very far, semi-codeless. again, i recommend you join a team of devs that you like and a task that can handle, probably some basic stuff. Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1746023 Share on other sites More sharing options...
cruising for burgers Posted February 2, 2012 Report Share Posted February 2, 2012 c-sound? Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide cruising for burgers's signature Hide all signatures https://www.instagram.com/ancestralwaves/ Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1746035 Share on other sites More sharing options...
Guest iep Posted February 2, 2012 Report Share Posted February 2, 2012 csound? maybe for designing your sounds, yeah... we're talking about a way to implement sounds into a game enviroment here though API's, yo. (appie, sounds like a maroc coke dealer's name, lol) Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1746037 Share on other sites More sharing options...
foresense Posted February 2, 2012 Report Share Posted February 2, 2012 we started with portaudio in dsp programming class. it's very easy to begin with, and works on almost anything. if you want something to get going, that will work. Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide foresense's signature Hide all signatures Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1746040 Share on other sites More sharing options...
Guest iep Posted February 2, 2012 Report Share Posted February 2, 2012 basically you can't learn this on your own. you need some one to supply the sound, and some one to supply the enviroment to put the sounds in. whatever API you use, openAL, UE, portAudio, you'll be the middle man between supplier and demander. unless you want to go solo and do it all yerself, in that case you better have strong ideas. you have strong ideas? On 2/2/2012 at 12:30 AM, Braintree said: It seems there is a bit of demand for this position in the gaming industry chortle Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1746052 Share on other sites More sharing options...
Braintree Posted February 3, 2012 Author Report Share Posted February 3, 2012 Thanks for the tips guys! I have a much better idea of what I should be looking into. On 2/2/2012 at 2:07 AM, iep said: On 2/2/2012 at 12:30 AM, Braintree said: It seems there is a bit of demand for this position in the gaming industry chortle There's more demand than sound designers, anyway Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide Braintree's signature Hide all signatures colindyer.bandcamp.com williamsbraintree.bandcamp.com Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1747212 Share on other sites More sharing options...
Guest iep Posted February 4, 2012 Report Share Posted February 4, 2012 On 2/3/2012 at 10:07 PM, Braintree said: Thanks for the tips guys! I have a much better idea of what I should be looking into. On 2/2/2012 at 2:07 AM, iep said: On 2/2/2012 at 12:30 AM, Braintree said: It seems there is a bit of demand for this position in the gaming industry chortle There's more demand than sound designers, anyway On 2/3/2012 at 10:07 PM, Braintree said: Thanks for the tips guys! I have a much better idea of what I should be looking into. On 2/2/2012 at 2:07 AM, iep said: On 2/2/2012 at 12:30 AM, Braintree said: It seems there is a bit of demand for this position in the gaming industry chortle There's more demand than sound designers, anyway yeah maybe, good fucking luck tho. you like audio and you like programming. so what? Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1747423 Share on other sites More sharing options...
Braintree Posted January 14, 2013 Author Report Share Posted January 14, 2013 Almost one year later, I finally take the plunge... Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide Braintree's signature Hide all signatures colindyer.bandcamp.com williamsbraintree.bandcamp.com Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1931371 Share on other sites More sharing options...
Guest Posted January 15, 2013 Report Share Posted January 15, 2013 so what are you plunging into? Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1931455 Share on other sites More sharing options...
Braintree Posted January 15, 2013 Author Report Share Posted January 15, 2013 Learning C right now to get programming basics. Using this book, Programming in C by Stephen Kochan: Getting everything in order to code has been frustrating. It leaves a lot of things out concerning how to get up and running. The code contained within is simple and easily discernable, but there is little explanation as to how to use it or what to do with it. Anyway, after I'm done with this one, I'm going to move on to The Audio Programming Book by Richard Boulanger and Victor Lazzarini: At the same time I'm trying to learn the XCode SDK. I have my work cut out for me. Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide Braintree's signature Hide all signatures colindyer.bandcamp.com williamsbraintree.bandcamp.com Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1931489 Share on other sites More sharing options...
zkom Posted January 15, 2013 Report Share Posted January 15, 2013 I'm a professional programmer and I was programming in low level C as a job for 4 years and before that as a hobby for at least 10 years. I've never learned any programming language from a book, just by trying out, googling, reading the help files, talking with other programmers, banging my head against the desk, etc. Anyway, K&R is THE classic in C programming. In fact I have it on my shelf here, but I've only used it as a reference. (I bought it because my employer was willing to pay for it..) About audio programming, I've been thinking of making my own VST plugins but haven't really found the motivation yet. I have a formal education in signal processing, so I know in theory how to calculate FFTs and how to make various filters but I've only ever used it in image processing when programming. Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide zkom's signature Hide all signatures electro mini-album Megacity Rainfall "cacas in igne, heus" - Emperor Nero, AD 64 Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1931638 Share on other sites More sharing options...
Guest Posted January 15, 2013 Report Share Posted January 15, 2013 so it looks like you want to write audio stuff for the Apple platforms... that's good, Core Audio is pretty cool I think... it's a pretty convoluted C API to begin programming with imho, but once you realise how much it actually does for you, you'll be really happy it exists... in the end, the process basically boils down to - you setup some framework code according to your needs (offline processing vs. synthesis etc.. etc..) using Core Audio stuff - you write numbers into buffers (the creative stufffff) http://my.safaribooksonline.com/book/audio/9780321636973 this book will get you up and running with Core Audio, before it came out you had to scan header files to get an idea of how to set things up.... i'd recommend to put the C book back to the shelf and use it as a reference when needed, while learning Audio Units with the Core Audio book.. you should be able to apply concepts from your Audio Programming Book once you get an Audio Unit graph going... that way, you'll maybe more quickly get to the creative part... you can always improve your C skills later, and get to the fun parts quicker... this is really important in my opinion... this shit is hard, you'll need some fun to keep yourself motivated :] that said, i've also tried to seriously learn this stuff, but it's very time consuming and i just didn't want to spend all my time for this.. built some fun FM stuff for iOS a year ago or so, but realised that i had to learn a lot more to make it good.. so I decided to use existing sound processors (Elektron Machinedrum currently) instead, working on controlling these in fancy ways... it's so much more comfy and i can focus on the creative side... however, looking forward to this: http://theamazingaudioengine.com this audio engine should make working with Core Audio a lot easier... Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1931651 Share on other sites More sharing options...
zkom Posted January 15, 2013 Report Share Posted January 15, 2013 About programming in general (because I have no actual knowledge of audio programming..) The way I've learned any new thing in programming is I never start with the theory but I learn as I go. Set up a project and decide concretely what kind of piece of SW you want to write. Then try to implement it, learn from your mistakes, learn alternative techniques, learn the theory behind the techniques, talk with other programmers and so on. If you manage to get it done or the whole thing fails, see how horribly everything was designed now that you know better and start a new project with more knowledge on how things should be done. Then repeat. Also start modest. Very modest. Write the stupid "Hello, World!" program first. Then do something bigger. Otherwise the frustration of never getting anything done will get you. Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide zkom's signature Hide all signatures electro mini-album Megacity Rainfall "cacas in igne, heus" - Emperor Nero, AD 64 Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1931693 Share on other sites More sharing options...
Guest Babar Posted January 15, 2013 Report Share Posted January 15, 2013 I'm a professional programmer and I was programming in low level C as a job for 4 years and before that as a hobby for at least 10 years. I've never learned any programming language from a book, just by trying out, googling, reading the help files, talking with other programmers, banging my head against the desk. Very important indeed. Coding is like surviving in an hostile environment. You can be very good at surviving in rain forests but once you're dropped in the desert, you're helpless. This is something I observed when I started studying programming at uni before having coded on my own. People would just state they weren't able to solve a problem or would ignore the teacher directives once he had turned his back. A "you will fail" has a way different flavor than a "I have failed and now I should do that". At least you know why you must organize your code in this specific way and not in this one : because you rage-banged your keyboard too many times. It's also important to shout angrily at things and insult people who designed them (at least remotely). Don't take for granted that programs that are widespread are well designed. For instance makefiles syntax defines tabs as something crucial. If you leave a tab in the wrong place, you're up for a few hours of stupid debugging, hunting for something that is invisible. Often, (non self-taught) people in my class would ask me for help when they encountered problem. Most of time I had no idea what the solution was, but was able to find a way to get through it. Once, a guy had a problem compiling a multithreaded c program with codeblocks. Because I had used xcode in the past and because I knew you had to set compiler flags under certain conditions even though I'd never done it myself (a side information I had gathered from googling other things). I solved the problem in five minutes. He had spent one hour or so trying various things because he didn't know where to look for the solution Well what I wanted to say is that you have to learn how to learn. This is the only way to not die in the desert if you're used to rain forests. Now a few concrete advices : - stackoverflow. Append this keyword to any google search you might perform. Also just copy paste error-lines, that'll usually do the job. - stay away from c. I hate c. People who like c are people who like to pour information then siphonate it out of buffers. Not really interesting. Too verbose, hence too many opened doors for bugs. You'll eventually learn c anyway. - Make pauses. Hunting specific bugs for hours is counterproductive sometimes. Sometimes you just wake up in the morning, get back to coding and solve the damn thing within minutes. - do code katas And yes I can only agree with mokz. Learn by doing not reading, have fun and get passionated about what you build and coding in general. (You'll eventually Teach Yourself Programming in Ten Years and that won't be painful at all). Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1931711 Share on other sites More sharing options...
Guest Posted January 15, 2013 Report Share Posted January 15, 2013 /thread (ten years later......) Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1931722 Share on other sites More sharing options...
Braintree Posted January 17, 2013 Author Report Share Posted January 17, 2013 Cheers, guys. I'm not trying to learn this stuff overnight. I revel in the journey, in spite of the trials and tribulations. I understand html since I used to fuck around with building websites back in the day, but lower level programming has always been a mystery to me. I actually don't learn that well by reading about something, I've always been more of a kinetic learner. By seeing and doing. I love to play puzzle games, so I like the aspect of trying to find a solution to an unwritten problem. The math is challenging since you're finding numbers from different perspectives. It's interesting, though. So you guys think I should try messing around with XCode first and then come back to C? Or at least read through this book and let the information sink in while I'm working on other stuff? Seems like it's not that long of a read. A chapter a day would take about three weeks. Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide Braintree's signature Hide all signatures colindyer.bandcamp.com williamsbraintree.bandcamp.com Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1932578 Share on other sites More sharing options...
kcinsu Posted January 17, 2013 Report Share Posted January 17, 2013 I don't know a lot about C but I do know that it is pretty low level. Maybe start with C++ and/or Objective-C which are built on top of C anyways. You'll get the general C stuff but in addition you can focus on object oriented programming concepts. I'd say its really important to understand these concepts, and as much as you don't like reading, you kind of have to. But good tutorials will mix English with concrete examples, which makes it easier to understand. You are definitely really good at puzzle games... You have the mind for it. Like people have said already, its an act of constant problem solving and learning. Those really are constants in programming. Oh and yes, stackoverflow.com is your friend. At my last job, I basically taught myself advanced android programming through asking questions there and reading discussions. If you have a question, I promise you its already been asked there. I learn well by discussing back and forth, which is why I went back to school for 2 years, so I could discuss and ask questions in real time. It can be hard to find that kind of setting outside of academia though. I'd try to find groups or friends that you can meet up with. I'm sure there are real time chats for this too, I've just never done it. Anyways, good luck dude! Just don't forget to spend time on sound design while you're at it. Programming can consume you. :) Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1932584 Share on other sites More sharing options...
zkom Posted January 17, 2013 Report Share Posted January 17, 2013 C is good for low level programming and when you need to optimize something to run as fast as possible or with as little memory foot print as possible. One solution that I see sometimes is that the user interface and some other components are done with higher level language (f.e. Python) and the engine that needs to be optimized is done with C (or sometimes with assembler which is even lower level, being a symbolic representation of the machine code). If you're doing something that has lots of variable size data arrays, string manipulation or other data that changes size runtime then C is going to be pain in the ass because you probably then need to implement lots of code handling the memory allocation and deallocation and the data structures and you better be familiar with pointers then :). Higher level languages will usually do this automatically for you, so you just drop whatever you like in the array and it stretches to fit your data. Anyway, to fully take advantage of optimizing with low level languages you need to understand how the CPU, memory and other HW parts actually work so you know where to optimize and how. Personally I think object-oriented programming is touted too much as an all around solution even to problems that would be much simpler to solve with conventional procedural programming. But if you're planning to work in the industry you will probably run into object-oriented SW sooner or later so you might as well learn it. Thanks Haha Confused Sad Facepalm Burger Farnsworth Big Brain Like × Quote Hide zkom's signature Hide all signatures electro mini-album Megacity Rainfall "cacas in igne, heus" - Emperor Nero, AD 64 Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1932690 Share on other sites More sharing options...
Guest frankbank Posted January 17, 2013 Report Share Posted January 17, 2013 Hey Braintree, I have used the Audio Programming book before and highly recommend it. I suggest you just do some basic tutorials on using xcode so you can compile etc, and then just focus on the book. It starts of slowly explaining all the concepts very clearly and ends with showing you how to build a phase vocoder ( very cool ) . Once you have completed this book ( make sure you do the exercises! ), you will be at a great point to expand your skills with other resources. Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1932868 Share on other sites More sharing options...
Guest frankbank Posted January 17, 2013 Report Share Posted January 17, 2013 The problem with learning C/C++ books etc is that you will end up learning far more than your purposes require. I started this route and was banging my head off the wall as level of difficult goes up dramatically past the fundamentals. I persevered for a couple of months, completing several texts, only to find that to write plugins, design wicked DSP, I would only need some of the most basic language features. As I mention above, complete the audio programming book, absorb all the info. It teaches you the amount of C and c++ required to operate the examples which you will probably find cover 90% of the languages that you will ever need. Good luck! Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1932871 Share on other sites More sharing options...
Guest Posted January 17, 2013 Report Share Posted January 17, 2013 A good starting point for C/C++ and audio coding could be the Arduino maybe.. http://arduino.cc it enforces economical programming by its limitations and you can get creative with it very quickly... A lot of hobbyists & professionals work with it, lots of resources on the web... then there's this: http://www.nicolascollins.com/handmade.htm and you might end up inventing the next http://mutable-instruments.net Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1932884 Share on other sites More sharing options...
Ego Posted January 17, 2013 Report Share Edit Hide Delete Posted January 17, 2013 C++ can add a lot of unwanted complexity but a major advantage is that you can use STL containers and libs like boost so you don't have to reimplement every basic data structure. You can write C-style code while still using that stuff. Quote Link to comment https://forum.watmm.com/topic/71564-audio-programming/#findComment-1932898 Share on other sites More sharing options...
Recommended Posts