MilkDrop: mash-ups from the library (#579, part 2) - #610
Merged
Merged
Conversation
A preset built out of six parts of others: look, motion, waves, shapes, warp shader, and composite shader with the blur ranges. - Every key belongs to exactly one part (86 header keys counted from the corpus). Parts come whole and their lines are copied as they are; version lines are rewritten from the presets giving the shaders. - Part tests pick candidates without parsing and agree with the parser on all 10,332 corpus presets. - A one-preset mash-up is that preset again for the whole corpus; in 5,000 random mash-ups every part equals its donor's. 300 random mash-ups ran in the engine with no new shader or equation failure. Written from a description of the behaviour in our own words; MilkDrop 2's mash-up code was not opened. Refs #579
- New Mash-up draws each part from the presets the MilkDrop panel's list shows (search and filter apply), only from presets with that part. Warp and composite are sometimes "none", so the look's fixed pipeline still gets a turn. - One part can be drawn again, or all six can start from the preset on screen; an unsaved preview never gives a part. - A recipe history steps back through mash-ups and skips a recipe whose preset was deleted. The id comes from the recipe, so saving twice leaves one file. - Every new string has an English entry. Refs #579
The interface splits text at " · " and translates the pieces:
"Karismim · ..." (layer blend) read "Blend · ..." and the generated pair
"Dingin Halkalar" is a builtin preset's name ("Still Rings"). Mash-up
names use ": " and the ring nouns are now Cemberler/Circles. A test runs
every generated word pair and a mash-up name through the English
translation; the card's wiring test requires the mash-up module.
Refs #579
This was referenced Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The second half of #579: mash-ups of the presets in the user's library. The generator came in #609.
What it does
The generator card gets a Mash-up from Your Library block. A preset is built out of six parts of others, each taken whole from one preset:
b1n…b1ed, which setGetBlur's scalemd_mix1_…), so saving twice leaves one file.Clean room: the behaviour was described in our own words first, and MilkDrop 2's mash-up code was not opened.
Measured on the whole 10,332-preset corpus
Scripts outside the repo.
Found on the way:
Tests
20 new tests: 10 for the module, 9 for the panel with a fake DOM (the search is typed into the MilkDrop panel's real search box), and 1 that runs generated and mash-up names through the English translation. 23 of 23 mutations are caught; a 24th was equivalent, and its branch was removed.
npm testpasses 2167/2167. Smoke passes, and the user-data checksums were unchanged.Not done: MIDI/OSC or web-remote actions that generate or mix.
Refs #579