{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Signal Processing\n", "\n", "[back to main page](../index.ipynb)\n", "\n", "[audiolazy](audiolazy.ipynb)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Links\n", "\n", "http://scikits.appspot.com/talkbox\n", "\n", "http://bmcfee.github.io/librosa/\n", "\n", "http://thomas-cokelaer.info/software/spectrum/html/contents.html\n", "\n", "http://nipy.org/nitime/index.html\n", "\n", "https://github.com/MTG/sms-tools\n", "\n", "http://pythonhosted.org/audiolazy/\n", "\n", "http://ajaxsoundstudio.com/software/pyo/\n", "\n", "Bob (signal-processing and machine learning toolbox) \n", "http://idiap.github.io/bob/\n", "\n", "Speech Signal Processing: \n", "https://github.com/idiap/ssp\n", "\n", "http://siggigue.github.io/pyfilterbank/, https://github.com/SiggiGue/pyfilterbank\n", "\n", "https://github.com/fakufaku/AudioTools\n", "\n", "Signal Processing for Communications [Jupyter notebooks with examples](https://github.com/LCAV/DSPNumex), [free PDF book](http://www.sp4comm.org/download.html), [MOOC](https://www.coursera.org/course/dsp)\n", "\n", "MIT opencourseware video lectures:\n", "[Signals and Systems (Alan V. Oppenheim)](http://ocw.mit.edu/resources/res-6-007-signals-and-systems-spring-2011/),\n", "[Digital Signal Processing (Alan V. Oppenheim)](http://ocw.mit.edu/resources/res-6-008-digital-signal-processing-spring-2011/)\n", "\n", "Soundpipe (C library): http://paulbatchelor.github.io/proj/soundpipe.html, https://github.com/PaulBatchelor/Soundpipe\n", "\n", "libaudioverse, A (C++) library for 3D and environmental audio: \n", "http://camlorn.github.io/libaudioverse/docs/branches/master/libaudioverse_manual.html \n", "https://github.com/camlorn/libaudioverse \n", "Python bindings: http://camlorn.github.io/libaudioverse/docs/branches/master/python/\n", "\n", "https://github.com/ronnyandersson/zignal\n", "\n", "https://github.com/crabl/HeadSpace\n", "\n", "http://willdrevo.com/fingerprinting-and-audio-recognition-with-python/\n", "\n", "https://github.com/Parisson/TimeSide/ \n", "http://files.parisson.com/timeside/doc/index.html \n", "https://github.com/thomasfillon/Timeside-demos\n", "\n", "https://github.com/pierre-rouanet/dtw \n", "https://github.com/pierre-rouanet/aupyom\n", "\n", "https://github.com/micknoise/Maximilian (C++)\n", "\n", "https://github.com/endolith/waveform_analysis \n", "https://gist.github.com/endolith/148112 \n", "http://mathworks.com/matlabcentral/fileexchange/69-octave\n", "\n", "https://github.com/astorfi/speechpy\n", "\n", "signal (C++11): https://github.com/ideoforms/signal, http://libsignal.io/\n", "\n", "https://github.com/everdrone/libsnd (C++)\n", "\n", "https://github.com/LancePutnam/Gamma (C++)\n", "\n", "https://madmom.readthedocs.io/, https://github.com/CPJKU/madmom (Python audio and music signal processing library)\n", "\n", "Automatic headphone equalization: https://github.com/jaakkopasanen/AutoEq\n", "\n", "Introduction to Digital Filters (with Audio Applications): https://ccrma.stanford.edu/~jos/filters/ \n", "Jupyter Notebooks: https://github.com/khiner/notebooks/tree/master/introduction_to_digital_filters\n", "\n", "C++ Library for Audio Analysis: http://www.adamstark.co.uk/project/gist/, https://github.com/adamstark/Gist\n", "\n", "The Synthesis ToolKit in C++ (STK): https://ccrma.stanford.edu/software/stk/, https://github.com/thestk/stk\n", "\n", "Fast, modern C++ DSP framework, FFT, Audio Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, ARM NEON): https://github.com/kfrlib/kfr (GPL-3.0)\n", "\n", "A Collection of Useful C++ Classes for Digital Signal Processing: https://github.com/vinniefalco/DSPFilters\n", "\n", "Phase Vocoder In Python: https://github.com/haoyu987/phasevocoder\n", "\n", "Learning DSP Illustrated: https://dspillustrations.com/\n", "\n", "https://rust.audio/articles/useful-resources/\n", "\n", "PySDR: A Guide to SDR and DSP using Python: https://pysdr.org/\n", "\n", "The Scientist and Engineer's Guide to Digital Signal Processing: http://www.dspguide.com/pdfbook.htm\n", "\n", "Intuitive Guide to Convolution: https://betterexplained.com/articles/intuitive-convolution/\n", "\n", "Q Audio DSP Library (C++): https://cycfi.github.io/q/, https://github.com/cycfi/q\n", "\n", "https://github.com/olilarkin/awesome-musicdsp\n", "\n", "https://github.com/c4dm/qm-dsp (C++)\n", "\n", "A Hierarchical Approach for Audio Capture, Archive, and Distribution: https://www.aes.org/e-lib/browse.cfm?elib=20456\n", "\n", "The Gentle Art of Dithering: https://www.aes.org/e-lib/browse.cfm?elib=20457\n", "\n", "http://bastibe.de/2012-11-02-real-time-signal-processing-in-python.html\n", "\n", "http://www.swharden.com/blog/2013-05-09-realtime-fft-audio-visualization-with-python/\n", "\n", "http://www.swharden.com/blog/2013-05-08-realtime-data-plotting-in-python/\n", "\n", "http://www.swharden.com/blog/2010-03-05-realtime-fft-graph-of-audio-wav-file-or-microphone-input-with-python-scipy-and-wckgraph/\n", "\n", "http://samcarcagno.altervista.org/blog/basic-sound-processing-python/\n", "\n", "http://blog.chrisarndt.de/article/499 (de)\n", "\n", "Think DSP: Digital Signal Processing in Python: http://greenteapress.com/thinkdsp/\n", "\n", "https://github.com/kylemcdonald/AudioNotebooks\n", "\n", "https://zach.se/generate-audio-with-python/ \n", "https://github.com/zacharydenton/wavebender\n", "\n", "https://github.com/hecanjog/pippi\n", "http://pippi.readthedocs.io/en/latest/\n", "\n", "https://project-awesome.org/faroit/awesome-python-scientific-audio" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Filter Design\n", "\n", "http://www.dsprelated.com/showarticle/164.php \n", "http://www.dsprelated.com/showarticle/170.php \n", "http://www.dsprelated.com/showarticle/194.php\n", "\n", "http://www.dsprelated.com/showcode/270.php\n", "\n", "http://scipy-cookbook.readthedocs.org/items/FIRFilter.html\n", "\n", "http://scipy-cookbook.readthedocs.org/items/FiltFilt.html\n", "\n", "https://github.com/chipmuenk/pyFDA" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fourier Transform\n", "\n", "#### Relation of Fourier Transform with Epicycles\n", "\n", "https://www.youtube.com/watch?v=QVuU2YCwHjw\n", "\n", "https://www.youtube.com/watch?v=qS4H6PEcCCA\n", "\n", "https://mathematica.stackexchange.com/questions/118834/how-to-graph-the-contour-of-a-resulting-manipulate-curve\n", "\n", "https://mathematica.stackexchange.com/questions/171755/how-can-i-draw-a-homer-with-epicycloids\n", "\n", "https://bl.ocks.org/jinroh/7524988\n", "\n", "Drawing an elephant with four complex parameters: https://doi.org/10.1119/1.3254017" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### IIR\n", "\n", "http://www.earlevel.com/main/2012/11/26/biquad-c-source-code/\n", "\n", "http://www.earlevel.com/main/2013/10/13/biquad-calculator-v2/\n", "\n", "IIR filters can be evaluated in parallel:\n", "https://raphlinus.github.io/audio/2019/02/14/parallel-iir.html\n", "\n", "https://github.com/berndporr/iir1 (C++)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fixed Point\n", "\n", "http://www.dsprelated.com/showarticle/580.php" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### MP3 Encoder\n", "\n", "http://nbviewer.ipython.org/github/LCAV/MP3Lab/blob/master/mp3python.ipynb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Digital Media\n", "\n", "http://xiph.org/video/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Time-Frequency Transforms\n", "\n", "https://en.wikipedia.org/wiki/Constant_Q_transform\n", "\n", "https://grrrr.org/research/software/nsgt/ \n", "https://github.com/grrrr/nsgt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Voice Activity Detection (VAD)\n", "\n", "https://github.com/wiseman/py-webrtcvad" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Music Information Retrieval\n", "\n", "http://musicinformationretrieval.com/ \n", "https://github.com/stevetjoa/stanford-mir" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Synthesizer\n", "\n", "https://github.com/irmen/synthesizer\n", "\n", "https://github.com/VCVRack/Rack" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Signal Processing in General\n", "\n", "http://python-for-signal-processing.blogspot.de/\n", "\n", "https://sites.google.com/site/sigsys15/\n", "\n", "A Journey in Signal processing with IPython: https://github.com/jfbercher/LecturesSignalProcessing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Kalman Filters\n", "\n", "A. Kiruluta, M. Eizenman und S. Pasupathy. „Predictive\n", "head movement tracking using a Kalman filter”, IEEE\n", "Transactions on Systems, Man and Cybernetics,Vol. 27,\n", "No. 2, 1997.\n", "\n", "J. J. LaViola, “Double exponential smoothing:\n", "An alternative to Kalman filter-based predictive\n", "tracking”, Workshop on Virtual environments\n", "(EGVE '03), Zürich, 2003.\n", "\n", "https://ntrs.nasa.gov/citations/20040037784\n", "\n", "https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python\n", "\n", "https://praveshkoirala.com/2023/06/13/a-non-mathematical-introduction-to-kalman-filters-for-programmers/,\n", "https://news.ycombinator.com/item?id=36971975\n", "\n", "https://www.kalmanfilter.net/,\n", "https://news.ycombinator.com/item?id=37879715\n", "\n", "https://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/,\n", "https://news.ycombinator.com/item?id=29473271\n", "\n", "https://jbconsulting.substack.com/p/is-the-kalman-filter-just-a-low-pass\n", "https://news.ycombinator.com/item?id=32271351" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Systems and Control Theory\n", "\n", "https://github.com/python-control/python-control\n", "\n", "http://harold.readthedocs.io/, https://github.com/ilayn/harold\n", "\n", "https://github.com/alchemyst/Skogestad-Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n",
" \n",
"
\n",
" \n",
"
\n",
" To the extent possible under law,\n",
" the person who associated CC0\n",
" with this work has waived all copyright and related or neighboring\n",
" rights to this work.\n",
"