Skip to content

OfficialIncubo/BeatDrop-Music-Visualizer

 
 

Repository files navigation

Discord Shield Chat with us on Discord!

Twitter @BeatDropVis

BeatDrop Logo (logo design by Incubo_)

BeatDrop Music Visualizer

BeatDrop Music Visualizer is an improved standalone version of the original inactive repository fork based of the Original MilkDrop2 Plug-in for Winamp that aims to add better features and bug fixes/optimizations for versatility, usability and amazing. This is also considered as MilkDrop improvement.

It features:

  • Based of the Original MilkDrop Plug-in.
  • Perfectly adjusted beat detection for better audio reaction (also configurable)
  • New waveforms and transitions
  • 16 custom shapes and waves limit
  • Spout integration
  • projectM-eval library integration
  • Hard Cut Modes, Transparency Mode, Playback Controls, Startup Preset etc.
  • And so much more!

Before compiling the code:

  • First of all, Visual Studio 2022 is now required.
  • Workloads required before compiling: Workloads required to use with Visual Studio 2022
  • CMake is now obligatory to install! Look at the name from Desktop development with C++ category below and check this box. projectM-eval library is now integrated in.

CMake optional library checked

  • After that, please change from debug to release and build it.

HOW TO COMPILE THE CODE AND UPDATE/INTEGRATE PROJECTM-EVAL LIBRARY CORRECTLY

BeatDrop now uses projectM-eval library, a drop-in replacement of Nullsoft Expression Evaluation Library, which it's assembly-free and it uses much faster instructions than i386 instructions that achieves preset compilation performance optimization. projectM-eval also performs a few compile-time optimizations like replacing larger constant expressions with a simple value.

Steps on how to compile BeatDrop with projectM-eval library:

First method: Using vcpkg

  1. Vcpkg options from the project configuration are enabled by default. If you want to disable them for building as local files, look at the second method.
  2. First update your baseline by clicking View -> Terminal, then type vcpkg x-update-baseline.
  3. Compile your code. Vcpkg automatically generates the projectM-eval library using CMake.
  4. It will receive an error about one of the libraries: Invalid or corrupt file: cannot read at 0x536E (projectM_ns-eel2.lib).
  5. The generated files are in vcpkg_installed folder. Copy both libraries from vcpkg_installed\x86-windows-static\x86-windows-static\lib, then paste them to lib folder from the main source code folder.
  6. (If needed) Copy the ns-eel header from the same step from 3., but in include\projectm-eval\ns-eel2, then paste it to ns-eel-shim folder, still from the main source code folder.
  7. Now compile the code and you are ready to go. If you see that your output gives "1 up to date", just delete BeatDrop.exe from vis_milk2 -> Release folder. Compile it again.
  8. It will receive The command "copy /y /v "..\vis_milk2\Release\BeatDrop.exe" "..\BeatDrop\BeatDrop.exe", but it built succesfully. It tries to copy the generated .exe file to BeatDrop folder, which it doesn't exist. Ignore it. Please check your generated .exe file in vis_milk2/Release/BeatDrop.exe, then copy it in your BeatDrop folder.

Second method: Using CMake (for latest version build)

  1. Make sure you have disabled the vcpkg feature (if you want). First go to Project from toolbar, click properties, then go to Configuration Properties -> vcpkg, then turn the first two options off. It should look like this:
image

If you want to turn back on, do the same step, then change them to "Yes".

  1. Use VS2022's terminal or PowerShell. Clone the repository and check the status
git clone -b more-fixes-and-tests https://github.com/kblaschke/projectm-eval.git
or using my latest build:
git clone -b more-fixes-and-tests https://github.com/OfficialIncubo/projectm-eval.git
cd projectm-eval
git fetch --all (if needed)
  1. Go to your main code folder -> projectm-eval -> CMakeLists.txt, look at BUILD_NS_EEL_SHIM option, then turn it on.

For example: option(BUILD_NS_EEL_SHIM "Build and install the ns-eel2 compatibility API shim." ON)

  1. Build the projectM-eval library using CMake.
mkdir your_build_folder
cd your_build_folder
cmake -A Win32 ..
cmake --build . --config "Release" --parallel
cmake --install . --prefix your-installation-folder-name-here.
  1. Now do the same steps as step 4 and 5, but look at Go to your main code folder -> projectm-eval -> your build folder -> your CMake installation Folder you provided, then there are include and lib installed.
  2. Now compile and it should be working. If the same problem happens about the copy command, please look at the step 8 from the first method.

If you have problems, ask me on Discord, Twitter or Instagram.

BEFORE YOU RUN BEATDROP

Please download and install DirectX End-User Runtime Web first.

BeatDrop now has a Spout integration! It now only supported to route the visual to any apps, such as NestDrop, OBS (as plug-in) etc.

Download Spout: https://spout.zeal.co

HOW TO USE BEATDROP

  1. First, use any audio output if you want before running

Audio Output Settings

  1. Easily run BeatDrop!
  2. If you did the first step, change it back to the default audio output, instead remain what it was.
  3. Open YouTube, Spotify, AIMP or any media players/audio sources and let them play! (Yes! It reacts to all the audio sources)
  4. Watch them react and enjoy! 👌🪩

USAGE

You can use BeatDrop for parties, karaoke, music videos, DJ mixes and so on, but you must credit this repo if you used this! I am not even angry anymore if you didn't credit this, but use #beatdrop, #beatdropmusicvisualizer or BeatDrop as tags, then I'll look at them.

MILKDROP MEGAPACK - GET ALL THE MILKDROP PRESETS

If you want to have all the MilkDrop presets in your own, just download this MegaPack, then extract them to your BeatDrop folder (ex: to BeatDrop Resources folder).

Featured Websites:

Softpedia

AlternativeTo

VJ Union

TopDownload.Club

The Audio File

Spout Open-Source Projects

Opensource-DVD

Never Complete Only Abandoned

Follow me on any social networks:

X Discord (Join server)


BeatDrop is a stand-alone implementation of the amazing Milkdrop2 Winamp plug-in. It lets you experience the stunning visual 2D effects with your music player of choice. No additional configuration steps needed! Just start BeatDrop and play your music. Use BeatDrop with your favourite:

System Requirements

  • Windows 11, Windows 10
  • Minimum 2GB of RAM required
  • WASAPI - compatible sound card
  • DirectX 9 or higher - compatible GPU
  • DirectX End-User Runtimes (also included in the installer) contains the required 32-bit helper libraries d3dx9_43.dll and d3dx9_31.dll

Acknowledgements

Special thanks to:

License

This repository is licensed under the 3-Clause BSD License (LICENSE or https://opensource.org/licenses/BSD-3-Clause) with the exception of where otherwise noted.

Although the original Matthew van Eerde's loopback-capture project didn't explicitly state the license, the author has been kind enough to provide the license clarification

Sunny March 29, 2015 at 11:06 pm

Hi. Just wondering is this open source? I'm looking for something like this for my school project.

Maurits [MSFT] March 30, 2015 at 8:35 am

@Sunny do with the source as you like.

All changes in this repository to the original Matthew's code are published either under the terms of BSD license or the license provided by original author.

Contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above.