Commit Graph

207 Commits

Author SHA1 Message Date
Scott Lawson e09578da1d Updated dsp.py and led.py to be Python 3.5 compatible 2016-12-27 03:06:57 -07:00
Scott Lawson f4a3a39b58 Fixed formatting error in README. Added disclaimer 2016-12-27 02:29:27 -07:00
Scott Lawson cd767521ac Fixed typo in readme 2016-12-27 02:27:40 -07:00
Scott Lawson e454aa93f7 Greatly expanded the README with project information 2016-12-27 02:27:07 -07:00
Scott Lawson 43c6af1adc Updated README with overview information 2016-12-27 01:36:06 -07:00
Scott Lawson 63f0a74af1 Updated README with overview information 2016-12-27 01:35:56 -07:00
Scott Lawson d9677a4f8e Renamed mel_visualization.py to visualization.py 2016-12-27 01:31:50 -07:00
Scott Lawson ade61f41e8 Removed completely inaccurate information from README 2016-12-27 01:12:05 -07:00
Scott Lawson 94eb789bf4 Added demo gif of scroll effect 2016-12-27 01:11:17 -07:00
Scott Lawson cb87a01e34 Added gif to demonstrate LED visualization effect 2016-12-27 00:58:29 -07:00
Scott Lawson 8d6671bf97 Added block diagram image to top of README 2016-12-26 23:59:13 -07:00
Scott Lawson 7522bc2110 Added a cropped description gif to better match README formatting 2016-12-26 23:58:29 -07:00
Scott Lawson d9921263c3 Added block diagram to explain the purpose of this repository 2016-12-26 23:21:44 -07:00
Scott Lawson a465976d1a Fixed minor markdown formatting issue with readme 2016-12-26 18:00:09 -07:00
Scott Lawson 1388b33239 Added a smaller description gif that doesn't take up as much space 2016-12-26 17:59:08 -07:00
Scott Lawson 21425f9e40 Update README.md 2016-12-26 17:50:12 -07:00
Scott Lawson bc278d9a65 Fixed issue where gif did not loop forever 2016-12-25 19:32:11 -07:00
Scott Lawson 03310f350a Added description gif to README 2016-12-25 19:30:36 -07:00
Scott Lawson f225b160e4 Added description gif to demonstrate project capabilities 2016-12-25 19:19:45 -07:00
Scott Lawson 7efceb4592 Create README.md 2016-12-25 00:52:54 -07:00
Scott Lawson 6f98d31096 Removed function that is no longer needed 2016-12-24 22:54:43 -07:00
Scott Lawson b6551e04a2 Very minor PEP8 formatting changes 2016-12-24 22:54:06 -07:00
Scott Lawson e677742584 Added a status indicator LED that blinks when command is received 2016-12-24 20:37:43 -07:00
Scott Lawson 2a87d040a7 Added several new visualizations 2016-11-21 20:11:45 -08:00
Scott Lawson 4dcf3e9a49 Minor pep8 formatting changes 2016-11-21 20:11:31 -08:00
Scott Lawson 1e630f2151 Removed two DSP functions that are no longer needed 2016-11-21 20:11:16 -08:00
Scott Lawson e3a810db09 Updated documentation for configuration settings 2016-11-21 20:08:35 -08:00
Scott Lawson 51eda2f0ba Made noticeable improvements to performance 2016-11-13 01:11:15 -08:00
Scott Lawson 9bdc8f8cb9 Changed pixels from row vectors to column vectors to improve performance 2016-11-13 01:10:44 -08:00
Scott Lawson e8b8a09047 Removed useless comments from melbank.py 2016-11-13 01:10:07 -08:00
Scott Lawson b65989c8f1 Removed some dsp module functions that are never called 2016-11-13 01:09:47 -08:00
Scott Lawson 2bad2cd4d4 Deleted sandbox.py and visualize.py 2016-11-13 01:09:14 -08:00
Scott Lawson ff6d7719af Removed obsolete gamma table and updated config file to match 2016-11-13 01:08:51 -08:00
Scott Lawson cdc4c2976c Mel visualization is now globally normalized instead of individually normalized.
Also added realtime adaptive brightness correction to avoid having the
LED strip under or over saturated
2016-11-11 15:52:57 -08:00
Scott Lawson 627f67d3dd Added ability to change mel filterbank at runtime 2016-11-11 15:52:00 -08:00
Scott Lawson 7aa12f17ed LED optimization using gamma correction 2016-11-11 15:51:41 -08:00
Scott Lawson ffbec2901f Added new visualization module that uses a mel filterbank instead of onset detection
The Mel filterbank visualization is relatively simple but produces
visualizations that are quite nice. Run this file to view the mel
filterbank visualization
2016-11-07 17:45:52 -08:00
Scott Lawson 83453ed436 Refactored led module and fixed a gamma table bug 2016-11-07 17:44:23 -08:00
Scott Lawson ea8b381c8a Added gui.py module for handling pyqtgraph plots 2016-11-07 17:43:47 -08:00
Scott Lawson 81190a7f4c Added a new gamma table that seems to work better 2016-11-07 17:43:31 -08:00
Scott Lawson 404a216272 Updated visualize.py to reflect changes in DSP module 2016-11-07 17:43:12 -08:00
Scott Lawson cb34b6353d Significantly changed and improved sandbox.py visualizations
Note: All code in sandbox.py is temporary and used for experimenting
with different visualizations.
2016-11-07 17:42:50 -08:00
Scott Lawson 65d35c2724 dsp module now creates a mel filterbank
Mel filterbank generated based on settings in config.py. Other small
pep8 formatting changes. Renamed ExponentialFilter to ExpFilter.
2016-11-07 17:41:26 -08:00
Scott Lawson 696d684c79 Added melbank.py module for generating Mel filterbanks 2016-11-07 17:40:18 -08:00
Scott Lawson 262206d359 Major changes to onset detection and visualization
Changes to config.py:
> Increased STFT rolling window size
> Added configurable options for setting the max and min FFT frequency

Changes to dsp.py:
> Significantly improved the normalized weighted phase deviation code.
This noticeably improves the onset detection accuracy.
> Logarithmic partitioning of the FFT bins now happens after onset
detection instead of before onset detection. This improves onset
detection accuracy at the expense of CPU time.
> Fixed a bug in the log_partition function which would sometimes cause
out of bounds errors
> Refactored and removed some functions that aren't needed anymore

Changes to sandbox.py:
> Sweeping changes to the visualization functions. The onset detection
functions are now combined after applying Gaussian blur to each onset
function individually. This improves the overall agreement between the
onset functions.
> Hyperbolic tan function is used to map saturated pixels to the range
[0, 1]
> Added a new rainbow generation function with more options than the old
one.
> Refactored most of the led update functions.
> The LED brightness is now being plotted instead of onsets
2016-10-24 16:42:03 -07:00
Scott Lawson a38a8e1680 Refactored all of the led_update_X functions
Led update functions no longer return a colorized array. Colorizing is
now done in led_visualization. It makes more sense for the led_update_X
functions to return 1D brightness arrays and then to apply color
afterwards. This should also improve performance somewhat. Also added a
new function leak_saturated_pixels() which allows saturated colors (>255
value) to leak into the adjacent color channels
2016-10-23 16:46:52 -07:00
Scott Lawson 9e615e0f35 Added a lowpass filter to pixel output 2016-10-23 15:39:18 -07:00
Scott Lawson 8a1a53fd61 Changd led update functions to return pixel arrays
Led update functions now return an array of pixel values instead of
updating the LED strip directly.  This change makes it possible to
combine the effects of different LED update functions before updating
the LED strip. The function responsible for updating the LED strip is
led_visualization()
2016-10-23 14:56:03 -07:00
Scott Lawson 39325ce69b Minor bug fixes and tweaks 2016-10-22 22:16:08 -07:00
Scott Lawson d966bb878d Complete rewrite of most sections, added new onset detection 2016-10-22 21:55:22 -07:00