Giter Site home page Giter Site logo

officialincubo / beatdrop-music-visualizer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mvsoft74/beatdrop

38.0 38.0 2.0 883.21 MB

The Milkdrop2 Music Visualization Standalone, only for Windows

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

License: Other

C++ 74.42% C 14.75% HLSL 0.61% HTML 10.22%
art audio audio-visualizer beatdrop creative creative-coding dj generative-art milkdrop music music-visualisation music-visualizer projectm streaming vj windows

beatdrop-music-visualizer's People

Contributors

clangen avatar mvsoft74 avatar officialincubo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

beatdrop-music-visualizer's Issues

Drag and Drop MilkDrop Preset (.milk) feature!

Milkdrop2077 (a.k.a. serge000) posted a latest tweet that supports drag and drop feature of presets and custom shapes/waves code.
If you drag and drop any files, such as .obj, .png .gdb etc, the Standalone Visualization gives an error (like Pixel Shader Error) that said "Error: Failed to load preset (.milk) or format. [.extension] not supported.".

All I need is to use 'case WM_DROPFILES' or drag and drop implementation technique like, and accept it to load .milk preset files.

I'm getting this error and some others

image
It's really hard to screenshot because I have 10,000 presets and only in some of those these messages appear. Is there a way to hide these or auto-skip (better yet, auto-delete) these presets that don't work?

BeatDrop Installer doesn't let me to do that.

I am making an installer using InstallForge and it built correctly, but when I started to install, it gives me an error:
Captură de ecran 2023-10-26 130533
I have tried all of the compression algorithms and still didn't work also tried by changing the path too.
Can somebody explain me how can I ditch this error?

InstallForge Version 1.4.4.22

Milkdrop 3 Presets and Features Support [BEATDROP FREE/PRO EXCLUSIVE]

@milkdrop2077 did a fantastic release of the updated Milkdrop engine with lots of features and stuff, such as Double Presets, new waveforms (also included in the BeatDrop v1.2.4 RC1 and higher. free/pro feature and open source), new transitions etc.!

Original Milkdrop 3 repository here: https://github.com/milkdrop2077/MilkDrop3
I am waiting for the source code of this.

After the implementation of new Milkdrop 3 features and milk2 preset support, it will be released as the official 2.0 version alongside with Spout integration included in version 1.3 and higher!

Here is the list that it will exist:

  • Double preset (PRO only)
  • Pressing 'C' to add ret /= float 3(r, g, b); in the final of the comp shader code (with 30% chance to add ret /= float3(bass, mid, treb); (Free and PRO)
  • New transitions (Free and PRO, no open-sourcing)
  • Spout integration (on version 2.0/Integrated in version 1.3 ✅)
  • Choosing any transitions what you want by pressing P (idk if it needs)
  • Hardcut Modes (F11 Hotkey) (✅)

Showing an actual preset name in the Window Title

It's a great feature that it shows a preset info on title, like projectM!

Here is the code that actually implemented:

        case VK_F2:
            
            ShowPresetOnTitle = !ShowPresetOnTitle;
            if (ShowPresetOnTitle)
            {
                while (true)
                {
                    SetWindowText(hWnd, "BeatDrop Music Visualizer - (m_nLoadingPreset != 0) ? m_pNewState->m_szDesc : m_pState->m_szDesc");
                    Sleep(100);
                }
                wsprintfW(m_szSongTitle, L"Show Preset Name on Window Title ON"); LaunchSongTitleAnim();
            }
            else
            {
                SetWindowText(hWnd, "BeatDrop Music Visualizer");
                wsprintfW(m_szSongTitle, L"Show Preset Name on Window Title OFF"); LaunchSongTitleAnim();
            }
        return 0;

I pressed F2 and it changed the title to "BeatDrop Music Visualizer - (m_nLoadingPreset != 0) ? m_pNewState->m_szDesc : m_pState->m_szDesc")".
...and the while statement freezes BeatDrop for no reason at all.

I would like to see this preset info on window title correctly, like "BeatDrop Music Visualizer - martin - colorwall" or "BeatDrop Music Visualizer ⫸ Geiss - Blur Mix 3".

MacOS Port

The BeatDrop Music Visualizer is only supported for Windows.
I am waiting for porting this visualizer for MacOS, so it should be working.

So, anyone can try to google ".exe to MacOS" or "Windows app to MacOS", or I just try myself.

Getting BeatDrop's Song Title data from Windows Playback

Desktop Mode

Milkdrop2 still has a Desktop Mode feature.
Pressing ALT + D will go to Desktop Mode (plus showing the icon on taskbar). Hovering the icon on taskbar will show "BeatDrop - Double click to exit desktop mode". Double clicking it will exit the desktop mode.

Support changing audio input!

Really excited about this feature!
This feature will change all the audio inputs sequentially, from speakers, microphone to stereo mix! If it's on the final list and you press the hotkey again, it will hop again to speakers.
Hotkey: CTRL + A
I'll share this as a reference: milkdrop2077/MilkDrop3#10

Blending the visualizer with Webcam (CTRL + W hotkey)

  • Toggle on/off by pressing CTRL + W key.
  • 2 modes when the feature is on:
  1. Normal mode: The webcam turns on and uses chromakey to black color (removes black color).
  2. Burn Mode: The webcam turns on, uses chromakey to black color (removes black color) and it blends/burns.
  • Turning off will turn off the webcam and stoos blending.

  • Implement this program without any necessary programs, such as OBS, Spout and more.

  • Example of video how to inject a live webcam to NestDrop: https://vimeo.com/599028390 (at 2:25).

Picture example:

Image

Screensaver Support

In the next version, BeatDrop will run as a screensaver (same as .exe file), but the differences are:

  • The screensaver starts only on fullscreen, not windowed.
  • No key and mouse interactions (such as L - Load Preset, F7 - Always On Top, Scrolling the Mouse Wheel to load next and previous preset etc.)
  • Exit the program (or screensaver) by pressing any key, clicking/moving the mouse or the monitor is off.
  • No resetting sleep idle timeout.
  • Preset cycling is in RANDOM
  • Preset duration isn't locked while running as screensaver.
  • Not showing "Press F1 for help" or "scanning presets..." while the screensaver started running.

Hardcut Modes!

I tried to recreate the hardcut modes based on the beat detection, like Milkdrop 3!
My implementation gone sucky and unstable.

My code is:

        case VK_F11:   //NOT FUNCTIONAL BECAUSE EXECUTED ONE TIME
        {
            HardcutMode++;
            if (HardcutMode == 1)
                {
                    m_bHardCutsDisabled = false;
                    wsprintfW(m_szSongTitle, L"Hardcut Mode: Normal"); LaunchSongTitleAnim();
                }
            if (HardcutMode == 2) //WIP: Bass Blend
            {
                m_bHardCutsDisabled = true;
                int upd = GetTime();
                if (upd % 1 == 0) timetick += 0.1;
                if ((double)mysound.imm_rel[0] > 1.8 && timetick >= 1 && !m_bPresetLockedByCode)
                {
                    if (m_nLoadingPreset == 0)
                    LoadRandomPreset(m_fBlendTimeAuto);
                    timetick = 0;
                }
                wsprintfW(m_szSongTitle, L"Hardcut Mode: Bass Blend"); LaunchSongTitleAnim();
            }

            if (HardcutMode == 3)
            {
                m_bHardCutsDisabled = true;
                wsprintfW(m_szSongTitle, L"Hardcut Mode: Bass"); LaunchSongTitleAnim();
            }
            if (HardcutMode == 3)
            {
                if ((double)mysound.imm_rel[0] > 2 && !m_bPresetLockedByCode)
                {
                    if (m_nLoadingPreset == 0)
                        LoadRandomPreset(0.0f);
                }
            }

            if (HardcutMode == 4)
            {
                HardcutMode = 0;
                m_bHardCutsDisabled = true;
                wsprintfW(m_szSongTitle, L"Hardcut Mode: OFF"); LaunchSongTitleAnim();
            }
        }   //WORK IN PROGRESS

I initialized HardcutMode, timetick as int. I need to press F11 to change hardcut modes without freezing BeatDrop! That was a very hard challenge for me to implement it. I want every hardcut mode to be worked on every frame.

Milkdrop2077 (serge000) told me on Twitter DM:
image

Very hard to do :(

Windows XP Professional 32-bit: BeatDrop.exe is not a valid Win32 application.

Hey! I have downloaded VMware Workstation and I have installed Windows XP Professional 32-bit on it, then I have downloaded an installer and copied to the virtual machine.
I installed it, but if I try to open: it says "C:...\BeatDrop.exe is not a valid Win32 application.".
I need to know how I can make this program compatible with 32-bit computers?
I am sorry if I don't post a photo for proof, but I think I can try to do this in the morning.

Three things

I thought I submitted this issue already but can't see it now. If I duplicated anything, sorry.

I have three things:

  1. It's great you are moving this project forward! It seems the original maintainer has gone silent.
  2. Could you implement this PR for multiple monitor support? mvsoft74#4
  3. Can you give an option to toggle unlimited FPS? I am on a 244hz monitor and getting 200+FPS. This looks really nice for some presets, but others act like they are going way too fast. This is because many presets are based on the FPS counter which is expected to be 60 and were designed originally on 60.

Thanks!

Windows 7 - Entry Point Not Found

I just installed BeatDrop on the old laptop from 2013 and I tried to run, but the error appeared right there.
20231106_072016.jpg

Laptop: Acer Aspire E1-531
OS: Windows 7 Professional

I have pasted USER32.dll in the BeatDrop folder and still didn't work.
Is there a solution to solve this?

EDIT: I think it doesn't work on the older Windows versions, e.g. Windows XP.

EDIT 2: The code that happens will be right there

EDIT 3: I tried on another Windows 7 laptop and in the version v1.2.4 did work then, but idk why the version 1.3 didn't work?

BeatDrop force crashing when using more instances of sprites!

Today's problem is, BeatDrop crashing when going to fullscreen/borderless/monitor stretch mode or resizing/maximizing when it's using the multiple instances of the same sprite!

Winamp's Milkdrop didn't happen from now on.

Anyone can find the part of the code or a solution to fix this problem?

Spout Input as Sprites!

Hey! It would be cool if this feature will be integrated in! This will be the true Mini-NestDrop!

The usage:
If you want to invoke a sprite as a Spout Input, then beatdrop_img.ini will be necessary to access images/Spout Inputs.

Add Spout/SpoutInputName before img= on any digit headers you want, so it should be able to access it. SpoutInputName is the Spout Sender name that you want to invoke it, else it gets an error.

For example: The Spout OBS Plug-in Sender Name that I route from a YouTube Video is YouTubeSpoutActivator, so it should be img=Spout/YouTubeSpoutActivator in the [img11] header on beatdrop_img.ini.
If I try to change to Sprite Mode and type 11 (e.g. K11), it will invoke a Spout Input Sprite routed from OBS.

Killing/Clearing a Spout Sprite (e.g. In sprite mode, pressed DEL or CTRL+SHIFT+K), it should stop and releasing the received Spout texture, freeing up some resources.

Hey, @leadedge, a.k.a. Lynn Jarvis, you are the one who made the Spout Output Integration of BeatDrop and I am the one who improves this project. Will it be possible to add a Spout Sprite Input functionality like the example that I have mentioned?

Closes Issue #4.

BeatDrop only reacts to the treble at bass variable, but not the accurate bass, mid, treb (compared to projectM) - Beat Detection Issue

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.