Coder Social home page Coder Social logo

matrixoperator / milkdrop3 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from milkdrop2077/milkdrop3

0.0 0.0 0.0 167.76 MB

MilkDrop 3.0, supports any audio source, double-preset (.milk2), loading presets based on beat detection and much more...

Home Page: https://twitter.com/MilkDrop2077

C++ 67.15% C 18.97% HTML 13.10% HLSL 0.79%

milkdrop3's Introduction

MilkDrop3

MilkDrop 3.0 is a portable program that supports any audio source (Spotify, YouTube, SoundCloud, Winamp...)
It is based on BeatDrop from Maxim Volskiy, so it's 100% compatible with any presets created with MilkDrop and projectM.
MilkDrop3 does everything that MilkDrop2 can do, I will be only listing on this page the additional new features :)

It supports a new type of double-preset (.milk2 file) mixing 2 presets and displaying them both simultaneously.
Here are a few double-preset: https://www.youtube.com/watch?v=6UXKyz4nOfI
You can create new presets by pressing just a few keys, without knowing any lines of code
(F9 and then press the spacebar to create a new double-preset, that's it).
Create new colors by pressing just the key 'c' https://twitter.com/MilkDrop2077/status/1614526230929498113
Also I created a new mode for auto-changing the presets based on beat detection.
Here is a fast version of that: https://www.youtube.com/watch?v=pSzdThg1iW8

  • Lots of new key shortcuts, see the whole list above.
    For some letters, the majuscule and minuscule matters.
    As an example, I'm using the lower-case "a" for the classic random mini-mash-up and
    upper-case "A" (shift+a) for another function: back to previous random preset.

  • Support always on top window (F7) and borderless mode.

  • Support multiple monitor stretching (ALT+SHIFT) thanks to milkdropper for the code.

  • Real-time toggling FPS (F2) 60fps, 90fps, 120fps ect... (some presets may not work well on high fps).

  • Real-time toggling seconds between auto transition to next preset (F3) 15sec, 30sec, 45sec ect...

  • Support of displaying 16 shapes simultaneously instead of 4.
    Shapes are now exported with the '.shape' file extension in Milkdrop3\shapes\file.shape

  • Support of displaying 16 waves simultaneously instead of 4.
    Waves are now exported with the '.wave' file extension in Milkdrop3\waves\file.wave

  • 8 new simple waveform (total of 16).

  • The q1-q32 variables have been expanded; the range is now q1-q64.

  • Support going back to previous generated preset when pressing the key 'A' (Shift+a).
    I've waited 20 years for that function!

  • Support deep-mash-up, not just warp and comp mashup, but all 5 bins (z).
    Note: this is quite unstable, some complex presets could crash MilkDrop3. But the results can be really great.

  • Support going back to previous generated preset when pressing the key 'Z' (Shift+z).

  • Support randomize colors function, pressing the (c) key will change all the colors in the comp shader directly in the memory.
    Don't forget to save the preset if you like the new color.

  • Support going back to previous generated color when pressing the key 'C' (Shift+c).

  • Lots of new debug information pressing the letter 'n', very useful if you want to create or mashup a double-preset.

  • Support auto-changing the presets based on beat detection (F8) ex: https://twitter.com/MilkDrop2077/status/1617405613960560641
    hardcut1 : load a new preset if bass > 1.5 with a minimum delay of 0.2 sec
    hardcut2 : load a new preset if treb > 2.9 with a minimum delay of 0.5 sec
    hardcut3 : load a new preset if treb > 2.9 with a minimum delay of 1 sec
    hardcut4 : load a new preset if treb > 2.9 with a minimum delay of 3 sec but if treb > 8 then it will load a new preset
    hardcut5 : load a new preset if treb > 2.9 with a minimum delay of 5 sec
    hardcut6 : load a new preset if bass >1.5 + will load Bass/WHITE.milk if bass > 4.90

  • Lots of new transition effects (when pressing the spacebar), the first old 4 were : "zoom", "side", "plasma", "cercle".
    New ones: "plasma2", "plasma3", "snail", "snail2", "snail3", "triangle", "donuts", "corner", "patches", "checkerboard", "bubbles", "stars", "cisor", "wave", "curtain", "vertical", "horizontal", "linesvertical", "lineshorizontal".
    And since version 3.21, an extra 7 transitions: "square", "stars2", "clock", "nuclear", "arrow", "cross", "cross2".
    A few example here: https://www.youtube.com/watch?v=WXK-pzCPfYk

  • Improved search function:
    Now we can search for anything in the presets list, not just one letter.
    You can type 'mar' for martin's presets.
    You can even type 'kings' if you search for 'martin - kings cross' for example.

  • Bunches of optimized functions with chatgpt

  • PLAYER CONTROL:
    Pressing CTRL+right will load the next track (on any player, spotify, youtube if you're listening to a playlist of songs...)
    CTRL+left will load the previous track on any player.
    CTRL+up will send a fastforward 5sec command to winamp only.
    CTRL+down will send a fastrewind 5sec command to winamp only.

  • Pressing the key 'f' will filter the presets : showing (and loading) only normal .milk presets, only double .milk2 presets or ALL of them.
    When pressing the keys A,D,M,Z or F9, it will auto-switch to 'Show only classic-presets' to avoid any mash-up errors.

  • Double-preset (.milk2) https://www.youtube.com/watch?v=n37SbxfLK0k
    Press F9 to enter double-preset mode. Now if you press the spacebar, you'll create a mix of 2 presets.
    You can save them with the key 's' like a normal preset, it will create a new milk2 file.
    Try the different types of blending pattern by pressing the key 'p' ("zoom", "side", "plasma" ect...).
    If you press the key 'P' (shift+p) you can force the blending progress (10%, 20%, 30% ect...).
    Some blending pattern like plasma have a lots of random values,
    you can reload those values to see a different plasma effect by pressing the key 'o'.
    All of these random values are saved in the .milk2 file.
    You can now flip the preset1 and preset2 by pressing the key 'u'.
    Force the blending direction (from the inside or outside) by pressing the key 'U' (shift+u).

Also:

  • WAVE_SIZE can now have 0-100 value
  • ZOOM_AMOUNT can now have 0-100 value
  • ZOOM_EXPONENT can now have 0-100 value
  • WARP_AMOUNT can now have 0-100 value
  • WARP_SCALE can now have 0-100 value
  • WARP_SPEED can now have 0-100 value
  • Max shape sides increased to 500 points (from 100 originally)

I've setup up a patreon page, I've spend countless hours on MilkDrop3, if you would like to support this project and future updates:
https://www.patreon.com/MilkDrop3
https://www.buymeacoffee.com/MilkDrop2077/

History:

21/10/2023 : Version 3.23

  • fixed some issues with display DPI scaling.

11/10/2023 : Version 3.22

  • Better compatibility with Windows 11.
  • Better compatibility for low and ultra high resolution screen.
    The font size will be adjusted if the resolution is lower than 1000 or higher than 2000 vertical pixels.
  • Font size is now adjustable in the MilkDropPanel.
  • An external program like Winamp, Spotify, foobar2000, a videogame... or anything you want
    can be launched when MilkDrop3 is starting or when pressing the key 't' or 'T'.

03/10/2023 : Version 3.21

  • 100 new presets (for total of +900!) + some new textures.
  • Options saved in the .ini file were completely rewritten.
  • You can now save any options available, save the exact window position, start MilkDrop in fullscreen...
  • New transition effects: square, stars2, clock, nuclear, arrow, cross, cross2.
    The last 2 are some kind of hybrid transition, some parts of the screen are not blending at all :)
  • New algorithm for saving presets: size is much smaller, load time will be a bit faster.
    Only the wavecode and shapecode enabled will be saved.
  • Values were optimized for each pattern when displaying a double-preset.
    That means the blend percentage when you're pressing the spacebar will be adjusted for each pattern
    so it won't be over or under-blend. For example "triangle" will be set between 0.2 and 0.6,
    but "cross2" between 0.7 to 0.95, because "cross2" will only start to appear after 0.7!
  • When pressing 'P' to change the progress, it will increment the actual progress number and not start from 0.
    For example if you're at the blending progress 0.42, it will jump to 0.45 > 0.50 > 0.55...
  • Locked blending patterns / progress / directions are now displayed in red colour on the information screen (n).
  • New algorithm for changing colors to avoid multiple ret /= float3 in the composite shader.
    Pressing 'c' will search for //MilkDrop3 Color Mode: and replace the line underneath with the ret /= float.
  • New borderless mode, press F7 multiple times to toggle modes.
    "NoBorder + Resize ON" : can resize the window to any size (but can't use the double-click to enter fullscreen).
    "NoBorder + Resize OFF" can't resize, but can use the double-click to enter fullscreen.
  • Better behaviour when using deepmash : dm menus will disappear when pressing 's' or 'shift+z'.
  • Corrected a few bugs : while saving a preset after using a blocked preset, while renaming some presets, exiting fullscreen, exiting AlwaysOnTop, I fixed some old legacy bugs from loading textures...
  • New menus and new GUI (MilkDropPanel), both are a bit empty at moment, but they will grow over time with lots of new functionalities coming!
    MilkDropPanel is called for the Options/Donate/About box.
  • Know bugs that need to be fixed : don't have a preset named 0.milk, it crashes MilkDrop3 when mashing presets.

20/07/2023 : Version 3.2

  • Double-preset are now displayed correctly when entering/exiting full screen or resizing the window.
  • Live blending update: pressing the keys 'p' and 'P' will display directly pattern or progress, no more backspace/spacebar needed!
  • Reload a double-preset: pressing 'o' will reload a double-preset only with different random values,
    very handy to see different plasma blends for example.
  • Flip presets: press 'u' to flip preset 1 and 2 (and keep the exact position).
  • Locked direction: press 'U' to force the direction of the blending,
    ex: if you are using the cercle pattern, -1 = from the INSIDE, 1 = from the OUTSIDE.
  • Block a preset: press 'b' to lock a preset, it will always load first when creating a double-preset (F9 and then SPACEBAR)
  • Press 'B' to choose the blending time.
  • When pressing F4, you can now see both preset names if it's a double-preset.
  • New borderless mode with F7.
  • New delete mode: press CTRL+DELETE to start delete mode.
    Now you can delete any preset you see simply by pressing the DELETE key (no need to load the list and confirmation).
    Very handy if you want to clean a large number of presets, be careful you can't restore a deleted preset!
  • When pressing the keys A,D,M,Z or F9, it will auto-switch to 'Show only classic-presets' to avoid any mash-up errors.
  • Added the Beginners Guide to MilkDrop Preset Writing in html and doc in the Milkdrop3\docs folder.

09/04/2023 : Version 3.12 :

  • 10x faster way to load the presets list, can load 50.000 presets under 1 second!
  • Better way to display preset names (F4) for milk and milk2 files.
  • New plasma3 transition effect (a bit crazier than plasma and plasma2).
  • Corrected a few bugs while loading preset with textures.
  • I removed the V2M player in the installer to avoid any false-positive.

19/03/2023 : Version 3.1 : stable.

03/03/2023 : Version 3.0 : alpha, pretty unstable.

milkdrop3's People

Contributors

milkdrop2077 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.