wvsharber / beatmapsynthesizer Goto Github PK
View Code? Open in Web Editor NEWAutomatic Beat Saber mapper for custom songs
License: MIT License
Automatic Beat Saber mapper for custom songs
License: MIT License
Hi, i just want to tell you did an amazing, job, even though there is a small mistake in the code, when i tried to load expert / hard / expert plus, song it couldn't because the difficulty rank was: null
it's came from the lines 69 / 73 /77 where there is 2 equals instead of one.
Hi Wyatt,
i have a question i try to generate a 15 min and 45 min map when i use
python beatmapsynth.py '/Volumes/bs/Hangingtree.ogg' 'Example Song' 'normal' 'segmented_HMM' -k 12 --version 1
or
python beatmapsynth.py '/Volumes/bs/Hangingtree.ogg' 'Example Song' 'normal' 'rate_modulated_segmented_HMM' -k 4 --version 1
i get only red cubes und no blue ?
do you have an idea why?
best york
Traceback (most recent call last):
File "beatmapsynth.py", line 3, in
import pandas as pd
ModuleNotFoundError: No module named 'pandas'
This happened after I did 'python beatmapsynth.py "location of song :>" "Song name" expertPlus rate_modulated_segmented_HMM -k 4 --version 1
I also tried random also didn't work did I do something wrong. (Yes, I did git clone it)
Using anaconda 4.8.2 and python 3.8.2 on a new Windows 10 Pro version 1909 (build 18363.836) installation.
'pip install numba' reports numba (0.49.0) and its requirements are installed.
Here's the command prompt and result:
(BSMapSynth-env) D:\Downloads\Utilities\BeatMapSynthesizer-master>python beatmapsynth.py "Music/Ehrling---Sthlm-Sunset.mp3" "Sthlm Sunset" segmented_HMM
Traceback (most recent call last):
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\numba\core\typeconv\typeconv.py", line 4, in
from numba.core.typeconv import _typeconv
ImportError: DLL load failed while importing _typeconv: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "beatmapsynth.py", line 4, in
import librosa
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\librosa_init_.py", line 12, in
from . import core
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\librosa\core_init_.py", line 125, in
from .time_frequency import * # pylint: disable=wildcard-import
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\librosa\core\time_frequency.py", line 11, in
from ..util.exceptions import ParameterError
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\librosa\util_init_.py", line 77, in
from .utils import * # pylint: disable=wildcard-import
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\librosa\util\utils.py", line 10, in
import numba
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\numba_init_.py", line 20, in
from numba.misc.special import (
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\numba\misc\special.py", line 3, in
from numba.core.typing.typeof import typeof
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\numba\core\typing_init_.py", line 1, in
from .context import BaseContext, Context
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\numba\core\typing\context.py", line 11, in
from numba.core.typeconv import Conversion, rules
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\numba\core\typeconv\rules.py", line 2, in
from .typeconv import TypeManager, TypeCastingRules
File "E:\anaconda3\envs\BSMapSynth-env\lib\site-packages\numba\core\typeconv\typeconv.py", line 17, in
raise ImportError(msg % (url, reportme, str(e), sys.executable))
ImportError: Numba could not be imported.
If you are seeing this message and are undertaking Numba development work, you may need to re-run:
python setup.py build_ext --inplace
(Also, please check the development set up guide http://numba.pydata.org/numba-doc/latest/developer/contributing.html.)
If you are not working on Numba development:
Please report the error message and traceback, along with a minimal reproducer
at: https://github.com/numba/numba/issues/new
If more help is needed please feel free to speak to the Numba core developers
directly at: https://gitter.im/numba/numba
Thanks in advance for your help in improving Numba!
If possible please include the following in your error report:
sys.executable: E:\anaconda3\envs\BSMapSynth-env\python.exe
(BSMapSynth-env) D:\Downloads\Utilities\BeatMapSynthesizer-master>
Is there a plan for doing multiple difficulties? Currently I'm having to do 4 to 5 runs of this to get each individual version, then splice them all together by editing the info.dat. Is there currently a way to do this/planned way, or do I have to continue to individually combine the difficulties? Sorry if there is already a way, and I'm just not seeing it.
How do i fix these
Hello, I am trying to run this program and have followed the steps you provided on the readme. However when I run the beatbeatmapsynth.py file, I get the error "Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll".
The command promt tells me that this file should be in "C:\ProgramData\Anaconda3\envs\BSMapSynth-env\Library\bin\mkl_intel_thread.dll"
I went to check and it is there, so I don't know what is happening.
Could I get some help?
Thanks in advance.
@wvsharber I turned your project into an Electron-based GUI app that's all-inclusive. Let me know what you think!
https://github.com/theace0296/BeatMapSynthesizer/releases
I ran pip install ffmpeg, but installing that lib didn't remove the warning.
(base) D:\Downloads\Utilities\BeatMapSynthesizer-master>python beatmapsynth.py "Music/Ehrling - Sthlm-Sunset.wav" "Sthlm Sunset by Ehrling" Hard rate_modulated_segmented_HMM
E:\anaconda3\lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
Loading Song...
Song loaded successfully!
Mapping with rate modulated segmented Hidden Markov Model...
E:\anaconda3\lib\site-packages\pandas\core\reshape\merge.py:1108: UserWarning: You are merging on int and float columns where the float values are not equal to their int representation
UserWarning,
Mapping done!
Writing files to disk...
Converting music file...
Traceback (most recent call last):
File "beatmapsynth.py", line 719, in
beat_map_synthesizer(args.song_path, args.song_name, args.difficulty, args.model, args.k, args.version)
File "beatmapsynth.py", line 50, in beat_map_synthesizer
rate_modulated_segmented_HMM_mapper(song_path, song_name, difficulty, version = version, k = k)
File "beatmapsynth.py", line 512, in rate_modulated_segmented_HMM_mapper
music_file_converter(song_path)
File "beatmapsynth.py", line 125, in music_file_converter
AudioSegment.from_wav(song_path).export('song.egg', format='ogg')
File "E:\anaconda3\lib\site-packages\pydub\audio_segment.py", line 904, in export
p = subprocess.Popen(conversion_command, stdin=devnull, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "E:\anaconda3\lib\subprocess.py", line 800, in init
restore_signals, start_new_session)
File "E:\anaconda3\lib\subprocess.py", line 1207, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
heres an image of what i got, all the errors i got before with the python modules i just installed manually and i use the command to start it and i got this. have i done something wrong with installation. if so can you help me or make a video outlining how to install this because i believe it would help
Hey,
Like the titel says I have an error during the mapping process. Did i installed something wrong or what could that mean?
On Line 85 the songAuthorName should have some value. See Info.dat schema for more info.
Also, on Line 308, Line 498, and Line 714, there it should read int(num)
rather than just num
, because when writing the difficulty.dat file it will sometimes put quotes around the note type. This goes against the schema as well, see difficulty.dat schema for more info.
You can use https://jsonschemalint.com/ to test some maps, but I've found that sometimes a map won't be playable inside of Beat Saber because of this.
Once you map your songs how do you combine the difficulties for one song into a single entry on Beatsaber? Right now I have a separate entry on beatsaber for each difficulty of a song rather than just selecting song and seeing all difficulty levels associated with it. I tried putting them all into one folder and that didn't work and neither did modifying the info.dat to include the code from each difficulty into one file. I dont know what I am missing can you help me please?
I'm getting the following when enabling the environment:
ResolvePackageNotFound:
would a linux .yml file be possible?
Loading this project causes a numpy error. Update numpy to 1.21, librosa to 0.8, and pandas to 1.2.1.
Also, with the given models, only red blocks are produced.
Heya I'm giving BeatMapSynthesizer a go. Nice work thanks so much!
I was wondering, How can I toggle rate_modulated_segmented_HMM to behave more like segmented_HMM?
I like the variation of rate_moduled, but the breaks are too much and I want 70% of the song to go by the beat. I was wondering how I could start with rate_modulated_segmented_HMM and taper off on it's variation power?
i am extremely confused and i am clueless at python please take me through this step by step thanks
I don't know if this is related to the FileNotFoundError I get when using other models.
(base) D:\Downloads\Utilities\BeatMapSynthesizer-master>python beatmapsynth.py "Music/Ehrling - Sthlm-Sunset.wav" "Sthlm Sunset by Ehrling" Hard segmented_HMM
E:\anaconda3\lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
Loading Song...
Song loaded successfully!
Mapping with segmented Hidden Markov Model...
Traceback (most recent call last):
File "beatmapsynth.py", line 719, in
beat_map_synthesizer(args.song_path, args.song_name, args.difficulty, args.model, args.k, args.version)
File "beatmapsynth.py", line 48, in beat_map_synthesizer
segmented_HMM_mapper(song_path, song_name, difficulty, k = k, version = version)
File "beatmapsynth.py", line 330, in segmented_HMM_mapper
notes_list = segmented_HMM_notes_writer(y, sr, k, difficulty, version)
File "beatmapsynth.py", line 468, in segmented_HMM_notes_writer
preds = segment_predictions(segments_df, MC)
File "beatmapsynth.py", line 434, in segment_predictions
pred = HMM_model.walk(init_state = tuple(preds.iloc[-5:, 0]))
File "E:\anaconda3\lib\site-packages\markovify\chain.py", line 137, in walk
return list(self.gen(init_state))
File "E:\anaconda3\lib\site-packages\markovify\chain.py", line 126, in gen
next_word = self.move(state)
File "E:\anaconda3\lib\site-packages\markovify\chain.py", line 112, in move
choices, weights = zip(*self.model[state].items())
KeyError: ('0,2,0,7,1,3,0,7,999,999,999,999', '0,0,0,6,999,999,999,999,999,999,999,999', '0,1,2,5,1,2,0,6,999,999,999,999', '0,2,0,7,999,999,999,999,999,999,999,999', '999,999,999,999,1,3,1,3,999,999,999,999')
How do i fix this
Getting this TypeError:
beat_track() takes 0 positional arguments but 2 positional arguments (and 1 keyword-only argument) were given
Any thoughts? Would love to use this program!
Is the macos file compatible with Ubuntu
if I want to add to / improve the model using specific mappings that appeal to my playstyle, how would I do so ? I am very new to the whole ML & python thing, but if you could point me in the right direction of where to look in the code, I would appreciate it.
You said that you only used mappings with user ratings above 90% and 70% for the two datasets, but did you also sort out the mappings that have a low number of ratings? If not, I would suggest finding a reasonable cut-off for the number of ratings required to eliminate any "high" ratings because the maps haven't been played or rated by that many people.
hey man im clueless can ya help me? i have pretty much no expince in python or aconda because i usally work in c#
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.