Re: Sound from scratch
Re: Sound from scratch
- Subject: Re: Sound from scratch
- From: Jens Alfke <email@hidden>
- Date: Mon, 9 Feb 2009 07:51:02 -0800
On Feb 8, 2009, at 8:21 PM, Ron Olson wrote:
I'm not sure where to begin with this one, but I want to create some
music purely through code; no use of devices or instruments or
anything. That said, I don't want to to come out sounding like beeps
or bloops; I'd rather like to be able to play around with generating
sound like I can do with graphics programming.
Audio synthesis seems (to my eyes) to be kind of a black art, much
harder than manipulating existing sound. The ones who practice it are
the synthesizer designers, and a lot of the things they do are
considered trade secrets, so they're not published. (Even back in the
'70s heyday of analog synths, the circuitry was more complex than
you'd expect: if you took a scope to the supposedly sawtooth-wave
oscillator, what you saw wouldn't look like a pure sawtooth at all,
but one that had been heavily tweaked to sound better.)
It's all math, of course, and DSP techniques to make it run fast. The
CoreAudio part is easy — you just write a function to copy your output
samples into a buffer and hook your function up to the input of an
AudioUnit.
Things to read up on:
- Fourier transforms and the FFT algorithm, so you can do stuff in the
frequency domain, like filtering (thankfully, this is implemented in
the OS)
- Subtractive synthesis (what analog synths use -- oscillators and
filters)
- FM synthesis (this is the most common technique in digital synths,
such as the ubiquitous '80s Yamaha DX-7)
- Analog circuit simulation (how softsynths emulate analog synths, a
la Rebirth.)
My knowledge of this is only inch-deep, so apologies if I'm spouting
nonsense :)
—Jens
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden