Jump to content

  • Log In with Google      Sign In   
  • Create Account

Sound Programming from Scratch


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
10 replies to this topic

#1 Glass_Knife   Moderators   -  Reputation: 5056

Like
1Likes
Like

Posted 26 January 2013 - 08:25 AM

Not sure if this question is better asked here or in the programming forum.  I've been playing with sound programming, but I find the APIs hide too much stuff.  When I learned 3D graphics, I started by learning from scratch.  I would like to know if anyone has any resources (books or online) that teach audio programming from scratch.  Much like writing a software renderer from scratch to learn about the algorithms.

 

I've googled and amazoned, but I don't really know enough about the subject to make a decision if the books I found are any good.  And man, I though software books were expensive.  Audio books are not cheap.  :)

 

Thanks,

 


I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

Sponsor:

#2 Python Blue   Members   -  Reputation: 151

Like
1Likes
Like

Posted 26 January 2013 - 09:15 AM

Honestly, I'm not sure which forum this belongs in. My hunch, however, would be the programming forum, as you don't have to be a programmer of code to be able to make music.

 

As for the main topic, I've fluctuated over what I've wanted to do specifically in music, so I sometimes performed a similar search. Sadly, all results I've found so far are either completely irrelevant, or relate only to programming in general.

 

UPDATE: just found this article. Not sure yet if it has everything you're looking for, but it's a start, at least.

 

http://www.metafilter.com/105057/Write-Your-Own-Software-Synth


Edited by Python Blue, 26 January 2013 - 09:18 AM.

Python Blue - composer available for work

Official Website
Bandcamp

#3 Glass_Knife   Moderators   -  Reputation: 5056

Like
0Likes
Like

Posted 26 January 2013 - 09:22 AM

Honestly, I'm not sure which forum this belongs in. My hunch, however, would be the programming forum, as you don't have to be a programmer of code to be able to make music.

 

Thanks what I thought, but I thought i'd ask here first.  I've purchased a book that I thought would help, but it was written for a sound designer.  Whenever a topic would start to get interesting (from my perspective) the author would say "Go ask your programmer." as if we're some commodity sound people keep in the basement until they need us.  Actually, since I'm in my basement right now, that may be true.  smile.png  But either way, where did these programmers learn all about audio programming?


Edited by Glass_Knife, 26 January 2013 - 09:23 AM.
can't type

I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

#4 Python Blue   Members   -  Reputation: 151

Like
2Likes
Like

Posted 26 January 2013 - 09:26 AM

But either way, where did these programmers learn all about audio programming?

 

Did you see my edit to my response? :) If not:

 

http://www.metafilter.com/105057/Write-Your-Own-Software-Synth


Python Blue - composer available for work

Official Website
Bandcamp

#5 Glass_Knife   Moderators   -  Reputation: 5056

Like
1Likes
Like

Posted 26 January 2013 - 09:35 AM

I will be checking it out.  Thanks.  ph34r.png


I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

#6 Kristoff K.   Members   -  Reputation: 207

Like
0Likes
Like

Posted 26 January 2013 - 12:34 PM

This might be totally irrelevant to your interest, but have you considered making your own ensembles in Reaktor 5? I know this isn't quite what you are looking for, but still, it could be helpful to learn about the signal flow in some particular DSPs or synths.

Other than that, there's also Csounds with its multitude of manuals and tutorials.

Edited by Kristoff K., 26 January 2013 - 12:35 PM.


#7 Glass_Knife   Moderators   -  Reputation: 5056

Like
0Likes
Like

Posted 26 January 2013 - 02:32 PM

One of the issues sending a question to the internet, whether it's to Google, a forum, or Wikipedia, is that if you don't know a lot about the subject, it is hard to ask the right questions.

 

I'm not trying to figure out how to use Reaktor 5 or Csounds, I want the knowledge so that I could create those programs from scratch by writing all the code by hand.

 

 


I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

#8 lawnjelly   Members   -  Reputation: 429

Like
0Likes
Like

Posted 26 January 2013 - 04:00 PM

One of the issues sending a question to the internet, whether it's to Google, a forum, or Wikipedia, is that if you don't know a lot about the subject, it is hard to ask the right questions.

 

I'm not trying to figure out how to use Reaktor 5 or Csounds, I want the knowledge so that I could create those programs from scratch by writing all the code by hand.

 

Ok I'm tired and ready for bed, so apologies in advance as this will be wishy washy and probably contain errors:

 

Firstly this is a programming question. A lot of musicians using such software won't have a clue how it works underneath.

 

Things you want to have a bit of understanding about:

 

1) What is sound. Get a physics book or wiki and make sure you understand what it is. Soundwaves of compression travelling in the air.

 

2) As background it's slightly helpful to know how people perceive sound in the ear through the cochlear etc. And that slightly different versions are received in left and right ears, and the brain is able to interpret these differences to perceive direction, distance etc.

 

3) Understand how computers, and all digital audio devices (cds, dvds etc) output audio. It's done as samples. If you are interested you can read back on the history of this with things like the Fairlight CMI, Synclavier etc.

 

4) If you are doing things yourself (and sounds like that's what you want) you'll be writing raw audio data out for your device (PC, tablet etc) to play. There are various APIs for this. Which you use isn't that important to your understanding of the rest of the system, as they all tend to do the same thing.

 

5) Making a music app is about mixing together a bunch of sound sources (could be samples, software instruments, whatever) with the right timing, then usually rigging it up so you can add audio effects to the mix, like reverb, delays, flangers etc. There are lots of ways of doing this. You might be inspired by another program or come up with your own way of doing it.

 

6) Depending on what your app is to do, you will probably have to spend a lot of time thinking about your GUI, how your sequencer works, tracks patterns. There is no 'rule book', so it's not realistic to expect someone to lay out exactly how you should do this for your program.

 

7) For your sound sources I'd suggest starting with being able to just handle samples for instruments, and varying the pitch. That's pretty easy. I'd also suggest using a plugin system for your instruments, and your effects. You can also have a look at the specs for things like VST plugins if you want ideas, or want to be able to use them in your app (I dunno the practicalities of this).

 

8) If you want to use realtime MIDI input you need to think about this from the outset, because this will have a lot of design implications (low latency etc).

 

Right bedtime *yawn*. :)



#9 jbadams   Senior Staff   -  Reputation: 19425

Like
1Likes
Like

Posted 30 January 2013 - 12:26 AM

In case anyone else is interested in the responses, Glass_Knife re-asked this question in one of the programming forums and got a number of helpful responses from a programmer's point of view.  You can view the topic HEREsmile.png



#10 Glass_Knife   Moderators   -  Reputation: 5056

Like
0Likes
Like

Posted 30 January 2013 - 10:42 AM

In case anyone else is interested in the responses, Glass_Knife re-asked this question in one of the programming forums and got a number of helpful responses from a programmer's point of view.  You can view the topic HEREsmile.png

Thanks. I should have posted the link to the other one. Many people have responded with online programming resources. Check it out!
I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

#11 bschmidt1962   Crossbones+   -  Reputation: 1879

Like
0Likes
Like

Posted 30 January 2013 - 12:04 PM

Timely topic for me-- I teaching a class at DigiPen on exactly this topic!  (the students' final lab project is a working MIDI synthesizer)

 

There's a very good online introduction to music synthesis and digital audio processing here

http://music.columbia.edu/cmc/musicandcomputers/

 

 

Brian Schmidt

Executive Director GameSoundCon

Brian Schmidt Studios


Brian Schmidt

Executive Director, GameSoundCon:

GameSoundCon 2014:October 7-8, Los Angeles, CA

 

Founder, EarGames

Founder, Brian Schmidt Studios, LLC

Music Composition & Sound Design

Audio Technology Consultant





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS