Elektrine lite

← Feed

@xavier@sunny.garden

Post #1480566

2026-02-22 15:02 UTC

I went ahead and resurrected project #lopal, which is a sort of exploratory project in UI for music, but also other things. The core idea is to have an interface made of elements that compose together by nesting. Container elements can provide a "medium" for their children, which informs them on how and where they should render. Here in this demo I have two medium: a 2D medium, and a temporal medium. The canvas widget implements the former, while the track widget implements the latter. I can put any widget into any container, but some widgets will implement special behaviors in some contexts. For example, the "clip" widget will size itself based on the zoom level of the temporal medium it's in. Widgets can also implement behavior. Here pretty much each widget implements a sampling method, which gets called by the player widget when I press play. The audio widget will just sample from its audio buffer. The clip widget will clip the buffer returned by its inner widget. The temporal position widget will offset the buffer of its inner widget. The track widget will sum the buffers of all inner widgets. And so on.

Replies (1)