Skip to content

Rewrite waveform using RenderNodes

Alternative to !64 (closed)
Fixes #61

This MR also rewrites the waveform to use RenderNodes instead of Cairo, improving performance.
However, this MR completely rewrites the rendering logic, instead of only adapting the draw methods.

The code was originally created in 2023, while creating a concept for fixing #3: #3 (comment 2047227)
I originally didn't submit the code because there wasn't a consensus from a design perspective.
I'm now posting this as a seperate MR as suggested in !64 (comment 2058307)

Additional changes:

  • Add a third color to show the difference between the drag-position and audio-position
  • Expose state- and style-related variables as gobject properties

This video shows the new behaviour:

Merge request reports