Jack Schaedler builds interactive essays and small web projects on signal processing, music, and handwriting recognition.
Commenters recommend his interactive 'Circles, Sines and Signals' primer as a wonderful, visual way to build intuition for DSP, and one uses it in a course.
Mr Staltz, please allow me to elaborate. I did not mean to be mean at all, nor to reduce the value of your work, excuse me if I made you feel like that. I am actually grateful that you made this animation as it allows one to reflect on the concept.
If your kid proudly brings home a drawing, you are most probably going to greet him with warm encouragements no matter the quality of the art. The kid is in a process of developing his creative sense, learning, and forming his/her sense of reality. Comparing the drawing to what mature artists produce would certainly have a negative effect on the kid. The point is to provide a feedback relevant to the recipient of the critic.
The same goes here with this animation. I respect your work but obviously disagree with the usefulness of it. You made an animation to explain the matrix product, which is a really good idea. Alas, I think the realization of it gives a confused picture of what it is. I doubt that a student with no prior understanding of matrix products will get much enlightment. Too many operations are going on at the same time. This means that it misses its intended audience: students in need of building an intuitive understanding of the matrix product. That's what all those javascript (among others) animations (ex: http://jackschaedler.github.io/circles-sines-signals/dft_introduction.html) are all about: make it simpler to grasp a concept. Unfortunately, though beautiful, the animation is not clear. At best it provides a…
>anyone has a more rigorous explanation of the in-between frequencies part
I think it's because the DFT is one period of the sampled version of the DTFT of your discrete input signal, or equivalently one period of the DTFT of the periodic continuation of your discrete input. (Equivalence here is that convolving by a dirac comb in time domain is multiplying by a dirac comb = sampling in the frequency domain)
When you use a windowing function (e.g. multiplication by a rect) to convert an infinite continuous signal into a time-limited one, the fourier spectrum of the original becomes convolved by the spectrum of the window (e.g. sinc). For a given sample length (window size), I guess if you capture the signal at a period boundary then your discretization of the DTFT is done exactly at peaks and zeroes. Otherwise if there's a mismatch, then you're not sampling the DTFT exactly at the peaks/zeroes so you get the spectral leakage. See [1] for a nice interactive example. Figure 3 shows as input a pure sin. If this was infinite, the fourier transform would be a dirac delta at the correpsonding frequency. But since it's windowed by a fixed window of 12 samples, the DTFT is the dirac convolved with a sinc.
Another perspective might be that if you don't capture it at a period boundary, when you create a periodic summation of your input you're introducing higher frequencies at the discontinuity.
[1] https://jackschaedler.github.io/circles-sines-signals/dft_leakage.html
[2]…
Thanks, for another good introduction to DSP, there's this excellent website: http://jackschaedler.github.io/circles-sines-signals/index.html. It also has good animations, and some are more interactive than mine. It takes a bit of a different path through DSP concepts, and focuses on the relationship between circles, trigonometric functions, and signal analysis.
For a more in depth study of DSP, I would recommend this book: http://www.amazon.com/Understanding-Digital-Signal-Processing-Richard-ebook/dp/B004DI7JIQ. It's quite readable for a textbook, and from my experience with linear algebra and signals and systems texts (they're all related), it's more understandable.
It would be nice to have a full online, animated DSP book, as that's a natural fit for DSP, but I'm not aware of something like that, yet. Maybe these posts could be the beginning of something like that.
(edit: Amazon link)
> you can add your own symbols (that can optionaly expand to words)
> it can display graphics such as graphs, plots, diagrams, images or even interactive ball-and-stick model of a chemical compound
> it is programmable, i.e. you can write your own functions with recursion, conditionals and loops
This sounds similar to Ken Perlin's Chalk Talk. See the demo at https://youtu.be/xuzrF_82z7U?t=2679 but the whole video is worth watching.
> RAND Tablet had handwriting recognition that was based on _clever heuristic+, i.e. no machine learning, and it required person to write slightly different than it would normally write with a pen and paper.
The linked page on handwriting recognition is as interesting as this article: https://jackschaedler.github.io/handwriting-recognition/
Great demo.
I used to do some web audio and tonejs works, but later switched to rust and glicol for sound synthesis.
For example, this handwritten dattorro reverb:
https://glicol.org/demo#handmadedattorroreverb
This karplus-stress-tester may also be interesting to you.
https://jackschaedler.github.io/karplus-stress-tester/
In short, I think to study more powerful physics synthesis, you need to consider the technology stack of
- rust -> wasm - audioworklet - sharedarraybuffer
Visual can rely on wgpu. Of course, webgl is enough in this case imho.
If it is purely desktop, you can consider using the physics library in bevy.
A fun alternative is to build everything yourself for free, from scratch, as an app! Shameless plug: [1]
Some resources for getting started down this path: [2] [3] [4]
If anybody wants to chat about audio synthesis on iOS, feel free to get in touch :)
[1] https://github.com/aclissold/twyst
[2] http://jackschaedler.github.io/circles-sines-signals/
[3] http://mkonrad.net/projects/ios_audio_synth.html
[4] https://developer.apple.com/library/ios/documentation/MusicAudio/Conceptual/CoreAudioOverview/Introduction/Introduction.html