Commit Graph

18 Commits

Author SHA1 Message Date
Thomas Kolb 04fd4fc7c8 Added new fire animation (Work in progress) 2023-05-25 22:38:21 +02:00
Thomas Kolb fb1eae119e Added new "racers" animation 2022-03-19 23:46:55 +01:00
Thomas Kolb 347a95ea8d Implement silence detection and „standby“ mode 2021-06-27 22:01:15 +02:00
Thomas Kolb fc43035f9b Removing last remains of the Lua interface 2021-04-09 17:48:20 +02:00
Thomas Kolb d01c5b459c New animation: sparkles 2021-04-09 17:38:42 +02:00
Thomas Kolb c1202bb41c Work around panic in time::Instant subtraction
Also, reduced the maximum lag measure. 5 Frames lag should be enough.
2021-04-08 20:49:32 +02:00
Thomas Kolb c08f24f8dc Reset send timing if lag becomes too high
This happens always if the input stream stops (for example, if the MPD
is paused). If the timing is not reset in this case, the program starts
spamming the target with UDP packets, resulting in unpredictable
animation behaviour.
2021-04-04 17:59:46 +00:00
Thomas Kolb b683c8a391 main: handle “Connection refused” UDP errors 2021-03-10 22:38:30 +01:00
Thomas Kolb 35c5c33689 Disabled userscript module 2021-03-07 21:36:57 +01:00
Thomas Kolb 7929861ad4 Implement "particles" animation in Rust 2021-03-07 20:32:34 +01:00
Thomas Kolb a9202d8303 Limit main loop and packet send rates
LED data packets are now sent with at most 60 updates per second. The
main loop tries to uniformly distribute calculation updates over time.
2021-02-23 22:32:34 +01:00
Thomas Kolb 7631bfb669 Started implementing the UDP protocol 2021-02-22 23:24:32 +01:00
Thomas Kolb ded8a7c21f main: cleanup 2021-02-21 19:49:16 +01:00
Thomas Kolb 8776e8e960 Properly handle and display Lua errors 2021-02-21 19:49:16 +01:00
Thomas Kolb 864add8403 Provide SignalProcessing methods to the Lua script
This is accomplished by providing a wrapped reference to the
SignalProcessing instance of the Rust program as a global Lua variable.
The wrapper class implements mlua::UserData, wraps the relevant
SignalProcessing methods and provides them as Lua methods.

So far, this is implemented for get_energy_in_band() only.
2021-02-21 19:49:16 +01:00
Thomas Kolb 62bbff481c Lua support: add script handling class with basic I/O
The relevant functions are called and the return types and sizes
verified. The API for the user is not implemented yet.
2021-02-19 23:29:52 +01:00
Thomas Kolb 942f66f7df Support overlapping FFT blocks
Now an arbitrary number of samples can be read and appended to the FFT
block. Old samples will be dropped such that only BLOCK_LEN samples
are in the memory buffer. Currently one half of the FFT block is
replaced per update.
2021-02-19 23:26:28 +01:00
Thomas Kolb ff018a98e1 Initial commit
Start experimenting with Rust. This is a little experimental, but fully
functional real-time FFT program based on the FFTW library.
2021-02-16 22:44:31 +01:00