|
![]() |
|
Thread Tools | Search this Thread | Display Modes |
|
![]() |
#1 | ||
Member
Join Date: Oct 2018
Posts: 69
|
BeatDrop2077 : my small attempt to make BeatDrop a little better :)
Hey lovely people,
I managed to recompile BeatDrop Music Visualizer with Microsoft Visual Studio 2019. It took me a week just for that as I don't code in c++ ![]() https://github.com/milkdrop2077/BeatDrop2077 To recompile the exe without any fatal error, you'll need to install too the DirectX SDK (DXSDK_Jun10.exe) from here: https://www.microsoft.com/en-ca/down...s.aspx?id=6812 (Windows Update needs to be enabled for installing the DirectX SDK) Here is what I had to change to be able to recompile BeatDrop: Quote:
I had this error example for the line 1065 : C2679 binary '=': no operator found which takes a right-hand operand of type 'const wchar_t [1]' (or there is no acceptable conversion) Any idea how to fix that? Here is the list of tweaks I added: Quote:
Download : https://github.com/milkdrop2077/Beat...tDrop.2077.zip it comes with 10 epic presets ![]() Please if you code in c++ and see something wrong let me know! I would like to add the latest small update from wacup to BeatDrop (like see more lines of text), shouldn't be too hard comparing the code from https://github.com/WACUP/vis_milk2 with https://winmerge.org/ right? ![]() |
||
![]() |
![]() |
![]() |
#2 | ||
Member
Join Date: Oct 2018
Posts: 69
|
Hey guys I did a big upgrade on BeatDrop2077:
first I managed to compile the original files changing less code : Quote:
then I managed to update the font size, and be able to see more lines when loading a preset, in defines.h: Quote:
F4 Show preset name F5 Show FPS F6 Show preset rating Now BeatDrop2077 looks way better than the original version of BeatDrop. Unlimited FPS, no more CanvasStretch or messy nTexSize, everything looks sharper!!! Download v2.0 here: https://github.com/milkdrop2077/Beat...tDrop.2077.zip it come with an epic collection of 300+ presets!!! |
||
![]() |
![]() |
![]() |
#3 |
Member
Join Date: Oct 2018
Posts: 69
|
I have a bug that I can't fix myself, I need help for that:
when loading the menu with 'm' and choosing 'do a preset mash-up', the names of the presets chosen are not displaying, instead I can see some Chinese character: I believe it may have something to do with the #include <string> that I added in plugin.h messing with the std::wstring, but as I don't code in C++ it's hard for me. Any ideas why? thanks |
![]() |
![]() |
![]() |
#4 |
Member
Join Date: Oct 2018
Posts: 69
|
I made a version 2.2 that support Always On Top window and multiple monitor stretching
![]() new key mapping : ALT+SHIFT toggle multiple monitor stretching F1 help F4 Show preset name F5 Show FPS F6 Show preset rating F7 Always on top F10 Pause |
![]() |
![]() |
![]() |
#5 |
Junior Member
Join Date: Sep 2022
Posts: 2
|
Greetings and thanks for all your hardwork. Is it possible to include a compiled .exe in your github?
Thanks! |
![]() |
![]() |
![]() |
#6 |
Member
Join Date: Oct 2018
Posts: 69
|
by the way I've just noticed I've uploaded an exe with debug infos that didn't run without Visual Studio installed
![]() here is the new link that work on every computer (you just need the directx files installed from the folder Redist\DirectX\DXSETUP.exe included in the zip file: v2.3: https://github.com/milkdrop2077/Beat...tDrop.2077.zip edit : this fixed the bug I had displaying the Chinese character !!! ![]() |
![]() |
![]() |
![]() |
#7 |
Junior Member
Join Date: Sep 2022
Posts: 2
|
Great! Works as intended! Thanks!
|
![]() |
![]() |
![]() |
#8 |
Member
Join Date: Oct 2018
Posts: 69
|
I released a version 2.9 with many fixes. So many keys were not working in BeatDrop, the mashup key 'A' (never mashed something, just loaded a random preset), 'D', '@' (randomize comp shader), '!' (randomize warp shader) ect... never worked. it's all working now! Now you can double click to enter or exit full-screen mode. keys: F1 help F2 change max FPS F3 change time between preset F4 show preset name F5 show FPS F6 show preset rating F7 always on top F10 pause For the first time, MilkDrop can run alone (not launched as a plugin) at full speed with all the options/button working, and I think this good news. it's super easy to re-compile (the MilkDrop dll was always a nightmare to compile), and with ChatGPT available, I believe anyone could add something. I will add new functionality in the next version that I thought it would have been impossible just few months ago. ChatGPT is a game changer ![]() Last edited by serge000; 4th January 2023 at 04:15. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Join Date: Sep 2016
Posts: 120
|
Huh, this is pretty cool. Works fine in Windows 11. Would it be possible to have a desktop mode?
![]() Desktop mode or not, I'm definitely using this. Thanks for your work and sharing with us. ![]() |
![]() |
![]() |
![]() |
#10 |
Member
Join Date: Oct 2018
Posts: 69
|
somebody still using the desktop mode??
![]() I'll look into that, I think this was completely skipped for BeatDrop. I would like to encourage people adding or optimizing stuff for MilkDrop with chatGPT. it's insane what you can do. for example I've modified the basic search function (when you are in the loading presets menu by pressing 'L'). original code: HTML Code:
void CPlugin::SeekToPreset(wchar_t cStartChar)
{
if (cStartChar >= L'a' && cStartChar <= L'z')
cStartChar -= L'a' - L'A';
for (int i = m_nDirs; i < m_nPresets; i++)
{
wchar_t ch = m_presets[i].szFilename.c_str()[0];
if (ch >= L'a' && ch <= L'z')
ch -= L'a' - L'A';
if (ch == cStartChar)
{
m_nPresetListCurPos = i;
return;
}
}
}
and also to search the whole line not just the first letter if not found. this is what chatGPT made: HTML Code:
void CPlugin::SeekToPreset(wchar_t c) { using namespace std::chrono_literals; static std::wstring searchString; static std::chrono::steady_clock::time_point lastInputTime = std::chrono::steady_clock::now(); std::chrono::steady_clock::time_point currentTime = std::chrono::steady_clock::now(); if (currentTime - lastInputTime > 1000ms) searchString.clear(); lastInputTime = currentTime; searchString += c; bool found = false; for (int i = m_nDirs; i < m_nPresets; i++) { std::wstring ch = m_presets[i].szFilename.substr(0, searchString.length()); if (ch.length() == searchString.length()) { std::transform(ch.begin(), ch.end(), ch.begin(), ::toupper); std::transform(searchString.begin(), searchString.end(), searchString.begin(), ::toupper); if (ch == searchString) { m_nPresetListCurPos = i; found = true; break; } } } if (!found) { for (int i = m_nDirs; i < m_nPresets; i++) { std::wstring ch = m_presets[i].szFilename; std::transform(ch.begin(), ch.end(), ch.begin(), ::toupper); std::transform(searchString.begin(), searchString.end(), searchString.begin(), ::toupper); if (ch.find(searchString) != std::string::npos) { m_nPresetListCurPos = i; break; } } } } you can type 'mar' for martin's presets. you can even type 'kings' if you search for 'martin - kings cross' for example. It would have take me hours to this on my own. And it took 2 mintues with chatGTP. and the best part, you can just ask chatGPT to optimize some code for you. and you can go crazy and ask to optimize some complex code from the ns-eel2 VM. and it works! just copy/paste a whole function and ask to optimize it! |
![]() |
![]() |
![]() |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|