Skip to content

CaYaDev MilkDrop Presets: layout, embedding and the first five (#825) - #826

Merged
CaYatur merged 3 commits into
mainfrom
feat/cayadev-preset-pack
Oct 21, 2026
Merged

CaYatur merged 3 commits into
mainfrom
feat/cayadev-preset-pack

Conversation

@CaYatur

@CaYatur CaYatur commented Oct 21, 2026

Copy link
Copy Markdown
Owner

Part of #825. Adds the layout for the CaYaDev MilkDrop Presets and the first five presets.

What

  • presets/cayadev/: the .milk files, pack.json (id, category, TR/EN description, MD3 flag), LICENSE.md (CC BY 4.0, attribution "CaYaDev") and a README listing the checks.
  • scripts/preset-pack.js:
    • generates src/shared/presets-milkdrop-pack.js, which presets-milkdrop.js appends to the built-in list (all four pages load it first);
    • --check reports drift;
    • --zip builds CaYaDev-MilkDrop-Presets-<version>.zip for the release, now listed in scripts/release-assets.js.
  • English descriptions come from pack.json via i18n.
  • .gitattributes: the .milk files are kept byte-exact (CRLF) on every OS.

Presets

Neon Monsoon (liquid), Event Horizon (tunnel), Prism Lattice (geometric), Northern Veil (ambient scene), Twelve Moons (MilkDrop 3; an MD2 player shows four of the moons).

Checked

  • 90 s on looped synthetic music: no fade-out, white-out or freeze.
  • 1080p frame time: 12–13.5 ms on a Radeon 610M iGPU, 5.5–7 ms on an RTX 5070 Laptop.
  • 60 vs 144 Hz: the same average brightness, since fades are scaled by q30 = 60/fps.
  • MilkDrop 2 presets rendered in BeatDrop (reference renderer) look the same as in our engine.
  • In the dev app with an isolated profile: 10 built-ins in the panel and the visualizer, all five render, and the English descriptions resolve.

Tests

tests/preset-pack.test.js:

  • embedded copy in sync;
  • naming, ids, license and README;
  • shaders present and translatable;
  • MD3 flag matches the file;
  • prefixed noise samplers are declared (MilkDrop drops the comp shader otherwise);
  • no aspectx/aspecty in wave/shape code (MD2 doesn't pass them there);
  • q30 fades;
  • the zip round-trips through src/main/zip-reader.js.

Existing tests now exclude the pack where they describe the original five, and accept MD3 slots for MD3 presets. 3507 tests pass.

CaYatur and others added 2 commits October 21, 2026 23:07
…825)

Adds presets/cayadev (CC BY 4.0, attribution "CaYaDev") with Neon Monsoon,
Event Horizon, Prism Lattice, Northern Veil and Twelve Moons (MilkDrop 3).
scripts/preset-pack.js embeds the folder as src/shared/presets-milkdrop-pack.js,
which presets-milkdrop.js appends to the built-in list; it also builds the
release zip, now in the release asset list. English descriptions come from
pack.json through i18n.

Each preset was checked: warp and comp shaders, 90 s on looped music without
fade-out, white-out or freeze, 12-13.5 ms per 1080p frame on a Radeon 610M,
the same brightness at 60 and 144 Hz, and (MilkDrop 2 presets) the same
picture in BeatDrop. Tests enforce the two MilkDrop 2 rules that comparison
caught: aspectx/aspecty are not visible to wave and shape code, and prefixed
noise samplers must be declared in the shader.

Co-authored-by: caganturgut <271973834+caganturgut@users.noreply.github.com>
The embedded copy and the test compare the exact bytes; with autocrlf the
files were stored with LF and an Ubuntu checkout would not match.

Co-authored-by: caganturgut <271973834+caganturgut@users.noreply.github.com>
Repository owner deleted a comment from cayadraft Bot Oct 21, 2026
)

MilkDrop 2 #defines its inputs (time, bass, q1..q32, and per stage rad, ang,
uv, uv_orig, hue_shader), so a variable with one of those names fails to
compile there; PSVERSION 3 means ps_2_x, which has no dynamic break. Both
were caught by compiling the presets the way MilkDrop does. The generated
pack file carries the pack's CC BY 4.0 header instead of the MIT one, and
the embedded-copy check ignores CRLF from Windows checkouts.

Co-authored-by: caganturgut <271973834+caganturgut@users.noreply.github.com>
@CaYatur
CaYatur merged commit e8f44a1 into main Oct 21, 2026
5 checks passed
@CaYatur
CaYatur deleted the feat/cayadev-preset-pack branch October 21, 2026 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant