Page 1 of 1

I *SUCK* at math. what do i need to know to understand fft?

Posted: Wed Jan 29, 2014 9:55 am
by misk
I don't really suck at math, but i skated by throughout school. I had plenty of reasons to hate it, but if ANY of those math teachers told me how dope math is, and how knowing it will allow you to make cool synthesizers and crazy-ass dsp tomfoolery, I'd have been early at the front of class every day.

so now i wanna learn what I need to know to understand the fourier transform. My goal is to get to the point where I can design my own waveforms (from scratch, i.e. math) in reaktor core, or max/msp.

I'm probably at a (rather rusty) intermediate algebra level. what's the best path to get to the point that I can better understand dsp? Those engineers and physicists amongst you who did something in university besides getting a degree in music composition (hi, I'm Aaron, and I have a fine arts degree)... what's the most straightforward and logical way to go from algebra to calculus, trigonometry, or whatever I need to know?

I know i'm smart enough. It's more a matter of not knowing where to begin so I don't feel like i'm in over my head. thanks in advance er'eryone :dunce:

Re: I *SUCK* at math. what do i need to know to understand f

Posted: Wed Jan 29, 2014 12:01 pm
by NinjaEdit
Algebra -> Trigonometry -> Calculus -> Differential equations
would be the correct order.

My Book on engineering math says elementary integral calculus is the prerequisite for Fourier Analysis.

DSP also requires complex analysis.

I recommend:
Will Pirkle - Designing Audio Effect Plugins in C++
Musimathics vol 2
dspguide.com
optional engineering math book

You will also need to know C++.

Re: I *SUCK* at math. what do i need to know to understand f

Posted: Wed Jan 29, 2014 5:42 pm
by ehbes
jonahmann wrote:Algebra -> Trigonometry -> Calculus -> Differential equations
would be the correct order.

My Book on engineering math says elementary integral calculus is the prerequisite for Fourier Analysis.

DSP also requires complex analysis.

I recommend:
Will Pirkle - Designing Audio Effect Plugins in C++
Musimathics vol 2
dspguide.com
optional engineering math book

You will also need to know C++.
what the fuck are you on about?

OP no math is needed to make music really. there are no rules no formulas, no equations...its music

Re: I *SUCK* at math. what do i need to know to understand f

Posted: Wed Jan 29, 2014 5:55 pm
by Simulant
ehbrums1 wrote: what the fuck are you on about?

OP no math is needed to make music really. there are no rules no formulas, no equations...its music
I thought the OP wanted to learn DSP programming? In which case he will need coding and math skills.

If he just wants to program Max and Reaktor patches then he could just read the manual and jump straight in.

Personally I'm with you, I'd rather just make music. I tried building synths and quickly worked out that there's a ton of great ones already out there that do everything I need.

Re: I *SUCK* at math. what do i need to know to understand f

Posted: Wed Jan 29, 2014 7:17 pm
by SunkLo
Khan Academy for the math fundamentals up to calc.
Then DspGuide and this JOS online book for the actual transform. Between the two you should end up with a pretty solid grounding.

Basically in the discrete case, you're multiplying the input signal by a single frequency to correlate how much of that frequency is present. The more samples in your input that line up with the cosine, the higher the correlation will be. Repeat that for all frequencies at regular intervals from 0hz up to half the sampling rate, and you've got your frequency response. DSPGuide has a good explanation of the correlation and the JOS book goes more in depth with complex numbers, Euler's identity, the Z/S plane and exponentials, etc.


If you're just looking to do sound design though, understanding of the inner workings of the DFT is far from necessary. Zebra lets you draw your own waveforms, both with bezier curves in the time domain, or additively in the frequency domain. Steeper lines and discontinuities = more high frequency content, smooth gentle lines = low frequency content. That's pretty much all you need to know to experiment with different timbres. Even some developers won't write their own FFT routines, they'll just use highly optimized libraries instead. Oscillators aren't designed purely in mathematical terms either. Most synths will use wavetables or other DSP trickery plus interpolation to generate their oscillators for the sake of CPU efficiency. Anything other than the basic fundamental oscillators will be wavetables anyway since it would be way too much computation to approximate them mathematically. They'd be most likely designed in the frequency domain too, so you're better off just using an additive synth to do basically the same thing without all the headache.

Re: I *SUCK* at math. what do i need to know to understand f

Posted: Sat Feb 01, 2014 6:36 am
by __________
ehbrums1 wrote:
jonahmann wrote:Algebra -> Trigonometry -> Calculus -> Differential equations
would be the correct order.

My Book on engineering math says elementary integral calculus is the prerequisite for Fourier Analysis.

DSP also requires complex analysis.

I recommend:
Will Pirkle - Designing Audio Effect Plugins in C++
Musimathics vol 2
dspguide.com
optional engineering math book

You will also need to know C++.
what the fuck are you on about?

OP no math is needed to make music really. there are no rules no formulas, no equations...its music
FFT =/= music. As I understand it, FFT is 100% grounded in rules, formulas and equations.

Misk, fair play to you. I tried to get my head around FFT when I began making my VST plugin. I genuinely DO suck at maths though and all the numbers scared the shit out of me so I gave up. Good luck on your quest!

Re: I *SUCK* at math. what do i need to know to understand f

Posted: Sat Feb 01, 2014 7:03 pm
by titchbit
OP - as others have said, you don't need much math for synthesis, but if you still think you want to know it, feel free to shoot me a pm. i used to be a tutor for calculus/algebra/geometry. i could explain things to you if you want.

Re: I *SUCK* at math. what do i need to know to understand f

Posted: Sun Feb 02, 2014 7:19 pm
by misk
Thanks for the suggestions everyone - I'm very comfortable with synthesis, I'm talking about designing a phase vocoder in max - or designing my own oscillators in max/ reaktor core. As far as synthesis goes, i'm at a level where subtractive, FM, additive, waveshaping, granular, etc is all pretty intuitive to me, but i'm really interested in spectral cross-modulation (e.g. "tau morphing" as kyma refers to it).

I know there are synths out there like harmor (i'm on a mac) or alchemy that kind of do this, but not at the level of quality that i'm looking for - and i'm not shelling out 4 grand or whatever for a pacarana - nor am I willing to spend the next 6 months learning the kyma language before I make anything useful with it.

Since I'm comfortable in max and reaktor, i want to use the tools i have - learning DSP is sort of something I'm doing on the side - as well as writing music. I'll check the books that were suggested - and big up on kahn academy - that's where I was thinking of starting :)

Re: I *SUCK* at math. what do i need to know to understand f

Posted: Thu Feb 06, 2014 8:41 am
by rickyarbino
ehbrums1 wrote:
jonahmann wrote:Algebra -> Trigonometry -> Calculus -> Differential equations
would be the correct order.

My Book on engineering math says elementary integral calculus is the prerequisite for Fourier Analysis.

DSP also requires complex analysis.

I recommend:
Will Pirkle - Designing Audio Effect Plugins in C++
Musimathics vol 2
dspguide.com
optional engineering math book

You will also need to know C++.
what the fuck are you on about?

OP no math is needed to make music really. there are no rules no formulas, no equations...its music
Ehbs, How much did you read before writing that?