added frame limiting, e.g. the FFT only gets sent to plot every so often instead of every time it is calculated
also added a dependency list
there's bound to be some bugs but it appears to be working on my system