-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BPM change functionality & implementation #382
Conversation
It doesn't actually work. I tried merging it and it says some variables are missing. What should I do? I am new to this. |
After some more testing, I think this requires extra work before it can be merged. Not because the proposed change causes any new issues, but because the rest of the existing system for changing BPM is not yet functional. Changing the BPM also updates the Conductor's crochet, which is used along with the absolute song position to calculate the current step/beat etc. (curStep, totalSteps, totalBeats). If the BPM changes, the calculation will suddenly be very different, and while the BPM will appear to change visually, it's most likely misaligned with the actual beats of the song. This also messes up calculations for what the current section is, which can eventually lead to the game trying to read from sections that do not exist, and thus crashing. The solution here is to keep track of when the BPM changes and work relative to the last change. Still thinking about what the best way to do this could be. Perhaps BPM changes should be mapped out on song load? Keeping track of changes as they happen could be impacted by lag, and keeping track of it within the Conductor class is impractical as it doesn't ever seem to reset. Regardless, something is gonna require a bit of an overhaul. Ideas are welcome! |
Thank you. This is the EXACT issue I have been suffering from. |
trims off unnecessary data, supports bpm changes proper and according to my proposed system, also just happens to fix other issues with the chart editor
In making the ChartingState compatible with this new BPM system I ended up overhauling it a bit more than I intended. Here's a quick demo of how it fared with a rechart of Monster with proper BPM changes (see below): The strumLine follows the tempo nicely and does not typically escape the bounds of the grid. Starting playback anywhere in the middle of the track isn't an issue either. Not much testing done with actual chart editing though, but placing notes seems to work just fine. After setting the BPM for a section, you may need to go back and forth to the previous one to have it reflect the new BPM. Vocals also stop playing after the song loops. Still figuring those out. |
Hello! I’m sorry to be rude, but can you post it as a mod when you’re done? If not, I understand. |
In-game events (animations, fx etc.) now sync properly even after BPM has changed.
No problem! If you mean the Monster chart, I suppose I already have in the comments here. It kind of depends heavily on the BPM changes, so unless the code gets merged, I don't think I'll release it anywhere else. |
…e curStep/curBeat
That’s cool! I wanted a version of FNF with changeBPM (under review) and section length changing (which I know you haven’t finished) so much, to the point where I put the entire thing on a 225 GameBanana point bounty! (If the section length is changeable, I would give it to you per request) If you do not want to continue after the ChangeBPM, then I understand. |
Video demonstration of the Monster map (above). Visual quirks like the camera zoom, background elements (philly train/lights, halloween lightning etc.) all sync more accurately after the latest change.
In the end, anything is possible, but a lot of the game's logic is built around having 4 steps in a beat and 4 beats in a section, regardless of what lengthInSteps wants you to believe. So it would just require a lot of work, and lengthInSteps would probably have to be replaced with some kind of time signature equivalent so the game knows how long a beat and a step are individually. |
REAL GANGSTER HOURS MUTHUFUKIN BLES UP GOT BLESS U MTH |
May I distribute the compiled .exe with changeBPM? |
1 similar comment
May I distribute the compiled .exe with changeBPM? |
hmm if u want yeah, although later today I WILL update game with a 0.2.7.1 update if u wanted to wait for that hehehe |
BPM change functionality & implementation
BPM change functionality & implementation
epic |
Tweaks changeBPM functionality so that the BPM is not reset back to the original after having been changed.
Worth noting is that this may cause inconsistencies with the chart editor, particularly in the function
recalculateSteps()
.A potential fix for this could be done by doing this for its for loop instead:
But the chart editor scares me so I do not touch it, not that there are many songs I could test with.