This makes the dac_emulator far more concise by using futures to
represent I/O, broadcast timer and point emission timers.
The visualiser has also been vastly improved. Rather than retrieving
"frames" from the LASER DAC, we instead create a "persistence of vision"
effect based on how recently the point was emitted. The weight and
luminosity of the lines are affected by the points age. This could be
made more efficient by using the point rate to determine the age rather
than creating a new instant for every emitted point, update and frame.
Independent points should also now appear correctly, whereas before
they were discarded by the renderer.
Publishes ether-dream-dac-emulator version 0.3.
NOTE: Currently, the dac-emulator produces a stream that yields an
individual point at the specified point rate. This is highly CPU intensive and
will likely fall apart at very high point rates (10khz+). The plan is to swap out
this per-point emission rate in favour of buffering points over a user-specified
window of time, but I have not yet had the time to implement this.
This makes the dac_emulator far more concise by using futures to represent I/O, broadcast timer and point emission timers.
The visualiser has also been vastly improved. Rather than retrieving "frames" from the LASER DAC, we instead create a "persistence of vision" effect based on how recently the point was emitted. The weight and luminosity of the lines are affected by the points age. This could be made more efficient by using the point rate to determine the age rather than creating a new instant for every emitted point, update and frame. Independent points should also now appear correctly, whereas before they were discarded by the renderer.
Publishes
ether-dream-dac-emulator
version 0.3.NOTE: Currently, the dac-emulator produces a stream that yields an individual point at the specified point rate. This is highly CPU intensive and will likely fall apart at very high point rates (10khz+). The plan is to swap out this per-point emission rate in favour of buffering points over a user-specified window of time, but I have not yet had the time to implement this.