Skip to content

MilkDrop: preset thumbnails #575

Closed
Closed

Description

@caganturgut

The preset list is names only; with hundreds of presets, finding one by its look is impossible.

  • Render each preset once, small, after enough frames to fill its feedback buffer, with the demo signal so a thumbnail is the same every time; cache it in userData.
  • A grid view in the panel; a thumbnail is redone when its preset changes.

Activity

  1. added
    enhancementNew feature or request
    milkdropMilkDrop preset engine
    libraryPresets, packs, templates, browser
    on Sep 18, 2026
  2. added a commit that references this issue on Sep 22, 2026
  3. CaYatur commented on Sep 22, 2026

    @CaYatur
    Owner

    Done on main via #608 (c1049ab, 55b0a41, 75e68ec, ab37843).

    • Layout. The MilkDrop panel's list has a Layout choice: List or Grid. In the grid, every preset shows a thumbnail. Each is drawn once in a hidden window, kept in userData/milkdrop-thumbs/, and drawn again when the preset or a texture it uses changes.
    • Recipe. Measured on a seeded 200-preset sample of the corpus.
      • Black start, 60 frames of the demo sound, drawn at 640x360 and scaled to a 256x144 WebP.
      • A seed image was not used. It fixed only 2 of 200 black thumbnails, took 45% longer, and painted its colours into other presets.
    • Deterministic.
      • Each thumbnail uses a new engine instance, with seeds taken from a content key.
      • Requested textures are waited for.
      • Nothing is written unless every frame was drawn on a live context.
      • Busy presets, a textured one and a sampler_randNN one gave the same bytes after different predecessors, and under load.
    • Panel.
      • Only the cells in view are drawn, newest request first.
      • Waiting and failed cells look different from a thumbnail that is really black.
      • A visualizer window drawing MilkDrop at the same time had no frame over 27 ms.

    Found on the way:

    • New render targets could start with another MilkDrop window's picture when the CPU was busy (13 of 24 draws). They are now allocated from zeros (0 of 48).
    • The light colour sampler (MilkDrop: drive the lights from the colours MilkDrop draws #589) now reads a small canvas.
    • The smoke test no longer drives physical lights.

    Not done:

    • Thumbnails in the web remote and in the list view.
    • Drawing every thumbnail ahead of time.

    This stays open until the v3.1.5 release.

  4. added this to the v3.1.5 milestone on Oct 12, 2026
  5. CaYatur commented on Oct 12, 2026

    @CaYatur
    Owner
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestlibraryPresets, packs, templates, browsermilkdropMilkDrop preset engine

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions