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
898ebbecc7
UDPProto: Fixed index-out-of-bounds bug
2021-03-18 21:22:30 +01:00
Thomas Kolb
b683c8a391
main: handle “Connection refused” UDP errors
2021-03-10 22:38:30 +01:00
Thomas Kolb
24850f1a1b
particles animation: config tuning
2021-03-10 22:18:29 +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
45475cb89d
UdpProto: fixed data offset
2021-02-23 22:31:31 +01:00
Thomas Kolb
5da4548e25
Provide Lua function to calculate output array index from led and strip
2021-02-23 22:30:04 +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
001af5f0f3
Added test Lua script demonstrating current features
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