Complete EXPAND implementation
tonyc opened this issue · comments
The EXPAND functionality in #87 is basic, and works, but has a couple of shortcomings:
- When scrolling in CENTER mode, the bandscope data that was "offscreen" isn't rendered, so we lose the main advantage of EXPAND mode in CENTER.
- Spectrum/waterfall data seems to be "chunkier" than on the radio. I think the radio does some interpolation/averaging between points.
The solution seems to be to do most of the work client-side
- Back out the changes in #87 to make the server-side expand functionality done in the client.
- Broadcast a new event for EXPAND mode state, and handle it in the Bandscope Hook in JS.
- This is challenging because the spectrum points are all just jammed straight into the resulting SVG, and none of the functionality for the spectrum is drawn in JS.
- Interpolate/average the points, rather than simply duplicating them.
- Figure out a way to draw the bandscope "offscreen" and then scroll the offscreen pixels into view when changing frequency in CENTER mode.