forum

AIBat v3.1 - v10 Compatibility

posted
Total Posts
327
Topic Starter
akrolsmir
Source now on Git: https://github.com/akrolsmir/AIBat

AIBat v3.1.jar:
(For some reason, Firefox saves '.jar' files as '.jar.zip'. If you get this, just remove the '.zip' portion to run AIBat properly.)



No, this won't automatically rank your beatmaps :P . However, much like AIMod makes the life of human modders easier, hopefully AIBat will do the same for BATs, by checking things such as consistent tags/leadins/preview/timing, mp3 quality, catmull sliders, etc. This is still a work in progress. Source to be uploaded soon. This is for modders and mappers who want to save time looking at this stuff.

Please see the README to see what is currently in place.


NOTE: Source.zip, and OsuJavaApps.zip have not been updated recently; click on titles instead to install.

Beatmap URL Formatter:
SPOILER
So... managing a whole bunch of beatmaps in the forums can be a pain if you want to pothole correctly, get the proper artist name and song title, etc. Particularly for Beatmap Projects (such as mine) where the list of beatmaps can get really long.

So, I wrote a simple program to do the formatting. Since all that information is available from the page source of a Beatmap Listing page, the program asks you to copy that source and paste into the box, and generates the proper code.

(In the end it probably would have been faster to do it by hand. But hey, this was more fun!)



Acquired Knowledge:
- Text Areas
- Scroll Panes
- Popup Dialogs

Future Direction:
I might want to try and get a better GUI for this- positioning the objects with a GridBagLayout. If I'm able to learn how to access the web through Java, I might be able to cut out the whole "paste in source text" thing. That will be a low priority, though, since this wasn't meant to be a particularly powerful program. Also, this was coded pretty inefficiently- I didn't know how to use Scanners at the time.

Osu Distance Checker:
SPOILER
This was actually a request made by someone- a program that would list out the various distance-spaces in one text, so one could quickly scan through for spacing errors. To do this, I consulted with ziin and lolcubes to decode the .osu file format for hitobjects, and played around with a few formulas to find out how spacing was calculated. It wasn't that much of a challenge, just a lot of coding work.

To get this to work, put the file into a song folder with .osu files, and run it.



Acquired Knowledge:
- Specifications of the .osu file format and formulas used
- Better understanding of how to use inheritance
- Directory reading
- Scanners
- Decimal Formats

Future Direction:
This actually doesn't work very well, for one reason: sliders. I think it would work 100% efficiently if a map were only circles and spinners, but I still haven't figured out how to calculate the precise position and time of the end of a slider, particularly with things such as Bezier curves (There's a file there, but it's a copy of something I found by jomax on this thread, and it's unused). I went with using the position of the last node and approximating the time, but the latter might be 1 ms off due to rounding errors and the former can be completely wrong. So, the first priority would be to fix that. Additionally, this will calculate incorrectly on maps with multiple timing sections, or varying slider velocities.

If you actually read through all that long text, you're awesome. Comments/ questions/ suggestions/ problem reports are welcome. If something broke AIBat, tell me what file you were using, please.

Download: OsuJavaApps.zip

Download: Source.zip

Download: AIBat v1.1 Source.zip
Guy-kun
>Java
Dai
I can't run .jar file without .zip
Aqua
pretty handy tools :)
mm201
The second one is already provided by AiMod basically. It points out any incorrect spacings and you can see the spacing ratios in the top right corner when you select an object.
The first one, what does it actually do? Do you feed it a beatmapsetid and it retrieves the song title for you?

Also, in the future, please consider writing osu! support tools in C# in case they turn out useful enough to include inside of osu!
Topic Starter
akrolsmir

lufi10 wrote:

I can't run .jar file without .zip
I'm not actually sure how to fix that, but I'll give it a try. Are you using Windows, and do you have Java installed?

Aqua wrote:

pretty handy tools :)
Hopefully that means these work for somebody :D.

mm201 wrote:

The second one is already provided by AiMod basically. It points out any incorrect spacings and you can see the spacing ratios in the top right corner when you select an object.
The first one, what does it actually do? Do you feed it a beatmapsetid and it retrieves the song title for you?

Also, in the future, please consider writing osu! support tools in C# in case they turn out useful enough to include inside of osu!
Yeah, I realized that- and AIMod is better at it. This is simply meant to be a complete listing of those ratios in the top right corner because AIMod doesn't show that spacing when you open it.

Also, I was wondering exactly how AIMod calculates which times are snapped and which aren't. From playing around with .osu files and the editor, it looks like there's an approximate error margin of about 1 ms from the true snapped time, which is the ticks the Editor shows you. I think those are calculated from intervals of 1/8th or 1/6th of the beat space time (that second number in an entry for a red timing point- I'm not sure what to call that decimal that is 60000/BPM) plus the starting time of that red point, rounded down if it's a decimal. However, this error margin doesn't seem to always work, so I think I missed something.

On the first one: you feed it the source code for a page of beatmap listing, and it will return a list of all beatmaps on that page, formatted for the forums like so:

52. Baby Alice - Pina Colada Boy (Nightcore Mix) ~ Mapped by osuplayer111

Obviously of very limited utility- I just happened to want the function for myself and posted it in case anyone else did too.

I will consider learning C#- thanks for the suggestion! It's just that Java is the first language I've learned and only one I know so far.

Thanks, everyone, for the feedback so far!
blissfulyoshi
For your third program, you could basically include everything asked for in this thread (viewtopic.php?p=399976#p399976) xD.

As for your already released programs, they not bad. Not sure where I would use them, but oh well.
Topic Starter
akrolsmir

blissfulyoshi wrote:

For your third program, you could basically include everything asked for in this thread (viewtopic.php?p=399976#p399976) xD.

As for your already released programs, they not bad. Not sure where I would use them, but oh well.
Yes, I was planning on doing that already and had looked at that thread for suggestions. Unsnapped endings should be easily added, song quality/ BG size might be feasible, and so should break warning. I"m not a storyboarder so I'm not sure how to check for a pulse/loop for an epilepsy warning, but I can throw in a suggestion to put one in if there is any kind of storyboard. Hopefully, this will be finished in a week.

Oh, and thanks for answering my questions about the osu file format way back when- that helped a lot in writing these programs!
Sakura
This looks pretty good, i'll edit this post with some suggestions when i come up with some that arent already on the "To do" list, for now, check for storyboard elements that are on the .osb but have no code assigned to them? (Even worse when the images exist in the song folder as well, and arent being used yet they are included in the sprite library with no keyframes at all)
blissfulyoshi
Nice job so far. I love the fact that I don't have to manually check for unsnapped notes now xD.

Other comments:
Inconsistent stack leniency is fine to have, so I probably won't bother warning about it.
You might want to post a warning about low stack leniency (0.2 and below)
You might want to also warn about numbers that are not achievable in the editor (I guess this only applies to stack leniency and circle size.....)

Oh well, will add more when I think of more.
Topic Starter
akrolsmir

Sakura Hana wrote:

This looks pretty good, i'll edit this post with some suggestions when i come up with some that arent already on the "To do" list, for now, check for storyboard elements that are on the .osb but have no code assigned to them? (Even worse when the images exist in the song folder as well, and arent being used yet they are included in the sprite library with no keyframes at all)
Those are great ideas. Unfortunately, I'm not a storyboarder so I'll probably need some help understanding exactly how osu processes the .osb and [events] under .osu, to be able to check for this.

blissfulyoshi wrote:

Nice job so far. I love the fact that I don't have to manually check for unsnapped notes now xD.

Other comments:
Inconsistent stack leniency is fine to have, so I probably won't bother warning about it.
You might want to post a warning about low stack leniency (0.2 and below)
You might want to also warn about numbers that are not achievable in the editor (I guess this only applies to stack leniency and circle size.....)

Oh well, will add more when I think of more.
First two comments about stack leniency were both implemented. What are the acceptable ranges for stack leniency and circle size?

Thanks, Sakura and Yoshi, for the input and encouragement!

Also, bumped to say that v0.3b has been released, with a new feature to format all warnings for modding purposes! (i.e., it copies everything onto your clipboard in a BBCode-friendly manner)

For example:

AIBat Warnings
These warnings were generated by AIBat.

[General]
No problems found.

[Storyboard]
No problems found.

[All .osu Files]
Inconsistency in SkinPreference:
- [Hard] :
- [Test] : Ecchi
Inconsistency in uninherited (red) timing sections:
- [Hard]
Red timing points at:
00:00:536
- [Test]
Red timing points at:
00:00:536
00:05:678
There are no tags, consider adding some.

[Difficulty: Hard]
The spinner at 00:00:536 (1) is 42376 ms long, which is longer than 7500 ms.
The stack leniency is set to 0.2, which is below the recommended leniency of 0.3

[Difficulty: Test]
The start of the spinner at 00:06:154 (1) is unsnapped.
The end of the spinner at 00:06:154 (1) is unsnapped.
The start of the spinner at 00:19:958 (1) is unsnapped.
The end of the spinner at 00:19:958 (1) is unsnapped.
The circle at 00:36:491 (1) is unsnapped.
The circle at 00:36:652 (2) is unsnapped.
The circle at 00:36:812 (3) is unsnapped.
The circle at 00:36:813 (4) is unsnapped.
The circle at 00:36:973 (5) is unsnapped.
The start of the spinner at 00:39:060 (1) is unsnapped.
The end of the spinner at 00:39:060 (1) is unsnapped.
The circle at 00:44:357 (1) is unsnapped.
The circle at 01:09:878 (1) is unsnapped.
The circle at 01:16:620 (1) is unsnapped.
The inherited (green) timing point at 00:07:438 is unsnapped.
The spinner at 00:06:154 (1) is 12520 ms long, which is longer than 7500 ms.
The spinner at 00:19:958 (1) is 321 ms long, which is shorter than 750 ms.
The slider at 00:01:178 (1) is a Catmull slider, which is discouraged.
Sakura
Ok just tried the program myself, and there's some stuff i'd like to point out:
- Not sure how useful exporting the whole thing to clipboard can be, it would be better if you can click on a warning and it copies the timeline minutes:seconds:miliseconds when clicking on timing section warnings or for notes/spinners/sliders minutes:seconds:miliseconds (combonumbers), so that it can be found faster inside the map when needed.
- It'd be better if the difficulties were arranged by star rating, rather than alphabetically, just like osu! itself does (when identical star rating, it then orders them alphabetically).
awp
Identical star rating? Poor map design!
Sakura
I know, but so it doesnt break when checking for it

Edit: Or when there are multiple maps at 5.00 star rating (since it can't go higher)
Topic Starter
akrolsmir

Sakura Hana wrote:

Ok just tried the program myself, and there's some stuff i'd like to point out:
- Not sure how useful exporting the whole thing to clipboard can be, it would be better if you can click on a warning and it copies the timeline minutes:seconds:miliseconds when clicking on timing section warnings or for notes/spinners/sliders minutes:seconds:miliseconds (combonumbers), so that it can be found faster inside the map when needed.
- It'd be better if the difficulties were arranged by star rating, rather than alphabetically, just like osu! itself does (when identical star rating, it then orders them alphabetically).
I think I should be able to implement the first, with HTML. It's a very good idea- in absence of AIMod's ability to transfer the clicked time directly to a certain note, this would be the next best substitute.

The second was something I also considered, but I'm unsure of how to determine difficulty stars. Apparently (according to the Term Glossary, if that's not outdated) difficulty is calculated with eyup's algorithm... and I have absolutely no idea how that works. Is this the kind of thing that'd be appropriate to contact Peppy for? Alternatively, I could roughly approximate difficulty with something like number of hitobjects- not a flawless approach, but reasonably functional.
blissfulyoshi

akrolsmir wrote:

First two comments about stack leniency were both implemented. What are the acceptable ranges for stack leniency and circle size?
Stack leniency: 0.2 is the minimum available in editor but a lot of BATs like 0.3 and higher
Circle size: 3-7 are available in editor
On another note, I think the editor should output something similar to mod post, so:
00:06:154 (1) - The start of the spinner at 00:06:154 (1) is unsnapped.

Okay time to test the newest version
Topic Starter
akrolsmir

blissfulyoshi wrote:

akrolsmir wrote:

First two comments about stack leniency were both implemented. What are the acceptable ranges for stack leniency and circle size?
Stack leniency: 0.2 is the minimum available in editor but a lot of BATs like 0.3 and higher
Circle size: 3-7 are available in editor
On another note, I think the editor should output something similar to mod post, so:
00:06:154 (1) - The start of the spinner at 00:06:154 (1) is unsnapped.

Okay time to test the newest version
Okay, I'll implement a circle size check. And perhaps warn against circle size 3 as well?

I've simplified the output and formatted it, similar to forums (though I haven't released it in the update yet). Below is a sample of how the export looks now:

AIBat Warnings
These warnings were generated by AIBat.

[General]
No problems found.

[Storyboard]
No problems found.

[All .osu Files]
Inconsistency in SkinPreference:
- [Hard] :
- [Test] : Ecchi


Inconsistency in uninherited (red) timing sections:
- [Hard]
Red timing points at:
00:00:536

- [Test]
Red timing points at:
00:00:536
00:05:678


There are no tags, consider adding some.


[Difficulty: Hard]
00:00:536 (1) - The spinner here is 42376 ms long, which is longer than 7500 ms.

The stack leniency is set to 0.2, which is below the recommended leniency of 0.3


[Difficulty: Test]
00:06:154 (1) - The start of the spinner here is unsnapped.
00:06:154 (1) - The end of the spinner here is unsnapped.
00:19:958 (1) - The start of the spinner here is unsnapped.
00:19:958 (1) - The end of the spinner here is unsnapped.
00:36:491 (1) - The circle here is unsnapped.
00:36:652 (2) - The circle here is unsnapped.
00:36:812 (3) - The circle here is unsnapped.
00:36:813 (4) - The circle here is unsnapped.
00:36:973 (5) - The circle here is unsnapped.
00:39:060 (1) - The start of the spinner here is unsnapped.
00:39:060 (1) - The end of the spinner here is unsnapped.
00:44:357 (1) - The circle here is unsnapped.
01:09:878 (1) - The circle here is unsnapped.
01:16:620 (1) - The circle here is unsnapped.

Unsnapped inherited (green) timing point(s) at:
00:07:438

00:06:154 (1) - The spinner here is 12520 ms long, which is longer than 7500 ms.
00:19:958 (1) - The spinner here is 321 ms long, which is shorter than 750 ms.

00:01:178 (1) - This slider is a Catmull slider, which is discouraged.

(Now to check for a million SB things- I had no idea that was so complicated! >.< )
lolcubes
I suggest one more thing. Considering this will help in modding, which means occasional rechecking, that after you check a map, it generates a mini database (can be in .txt, you just format it so it reads it just like it's scanning files) which is stored somewhere, probably let user decide where if you wish, or just generate it in the map folder (and then add a check when you run the program to see if such a file already exists in the folder, probably needs a standard name).
I suggest this, because usually it takes a lot of time to recheck something, and when a mod is complete and you want to recheck it, you can just see the differences between the 2 mapsets (i mean the mapset before and the mapset after the mod) easily from the .txt files (or whatever extension you feel using for this kind of work).

Also in addition to this, you can add an option to generate a new file every time (like standardname_1, standardname_2, etc, ofc original being _0) or to overwrite, depending what the user wants. This will let the user control the amount of "spam" he could get in that folder.

Oh and one more thing, when we're talking about snapping @timeline, I suggest that you make a check for 1/6ths and 1/8ths as well. They might be placed correctly, but usually (depends on the mapping experience obviously) it may not be, so you could just list where these are in case someone misses those.
This could add quite some effort to coding, but consider putting these to the "to do" list if you want, I think these are nice features. :3
Sakura
Nice improvement there, need to try it out
blissfulyoshi
Yay sb!
I haven't got a chance to check to test the sb stuff yet, but I noticed that the AIBat does not test to see if you have a preview point or not ( previewPoint != -1)

I guess I will do some more testing soon to see what else I find. Besides that, keep up the good work!
Ayeen_old
Im suggesting add in score for each difficulty. Nowadays many mappers tend to have guest difficulty, and one of the issues arise from that is scoring spreadsheet messed up which like the score is very close even though the hardness is quite far gap or the harder difficulty is lower score than the less difficult beforehand
Sakura

Ayeen wrote:

Im suggesting add in score for each difficulty. Nowadays many mappers tend to have guest difficulty, and one of the issues arise from that is scoring spreadsheet messed up which like the score is very close even though the hardness is quite far gap or the harder difficulty is lower score than the less difficult beforehand
The problem with that is that scoring is based off star rating as well, and he already said he doesn't know the algorithm for star rating, let alone scoring algorithm
Ayeen_old
Some map cant seem to be opened by the newest ver. The map that I talking about is Dj Taka Color Maybe you can pinpoint what actually causing it unable to open or it just my computer here
Topic Starter
akrolsmir
Thanks for all the comments so far!

blissfulyoshi wrote:

Yay sb!
I haven't got a chance to check to test the sb stuff yet, but I noticed that the AIBat does not test to see if you have a preview point or not ( previewPoint != -1)

I guess I will do some more testing soon to see what else I find. Besides that, keep up the good work!
Oh right. I remember considering that at some point, but it wasn't a particularly high priority since AIMod already checks for that. But since someone pointed it out, I guess I can throw that feature in.

Sakura Hana wrote:

Ayeen wrote:

Im suggesting add in score for each difficulty. Nowadays many mappers tend to have guest difficulty, and one of the issues arise from that is scoring spreadsheet messed up which like the score is very close even though the hardness is quite far gap or the harder difficulty is lower score than the less difficult beforehand
The problem with that is that scoring is based off star rating as well, and he already said he doesn't know the algorithm for star rating, let alone scoring algorithm
Yeah, it's partly that, and partly that it's something else that the osu! editor testplay mode will also show you. If someone ever gets me the algorithm and I can figure out how to properly use it, then I might include it, but it's not a high priority because that functionality is already available.

Ayeen wrote:

Some map cant seem to be opened by the newest ver. The map that I talking about is Dj Taka Color Maybe you can pinpoint what actually causing it unable to open or it just my computer here
(I remember modding that :P )
Oh, that's a known bug, caused by the fact that a timing point is located at a time that is not a whole number
[TimingPoints]
1428.91603239078,387.096774193548,4,1,0,60,1,0
It really ought to be 1429 for the offset, since I can't remember the last time 0.1 milliseconds made a difference. Personally I'm unsure why osu! editor allows times, x and y-locations to be decimals, but whenever that happens the program breaks. I'm working on a way to fix that (or at least some kind of notice about the errors in the .osu file)
blissfulyoshi
Another feature:
Check for consistent BPMs for uninherited timing sections (assuming the decimal numbers don't break things here...)

Small bugs:
pippidon and sliderb stuff come out as unused image files right now even though they are used (I am guessing this is not implemented yet, but I didn't see it on the changelog)
Ayeen_old
Sorry for the 3rd post, I suggesting to pin out the slider speed underneath the inherited time as well

About the storyboard, it seem there an issue where it cant elaborate subfolder content. And some skin element that was used to be reported as "unused" as well. Though, i wont say that would be a big issue

Example:
This was used, but reported unused skin element
SPOILER
fail-background.png
pause-overlay.png
star2.png

Example:
It reported missing, but actually it was used in SB
SPOILER
***Missing SB Files***
SB\fly.png
SB\beatmap.png
SB\star.png
SB\mduh.png
SB\storyboard.png
SB\black.png
SB\BG.png
SB\fly2.png
SB\and.png

Bleh ninjaed by Bliss :|

Edit: thinking about what Bliss said, maybe you can add in some unherited timing that was used for metronome reset too.
Topic Starter
akrolsmir

blissfulyoshi wrote:

Another feature:
Check for consistent BPMs for uninherited timing sections (assuming the decimal numbers don't break things here...)

Ayeen wrote:

Edit: thinking about what Bliss said, maybe you can add in some unherited timing that was used for metronome reset too.
So, if I understand everything correctly, you guys mean that an uninherited timing section should have a different BPM from the timing section before it, unless it was used for a metronome reset. How about a warning that says goes like:

"01:23:456 - This red timing section has the same BPM as the one before it; use a green timing point instead if this was not done for a metronome reset."

That's kind of long, though; can anyone think of a shorter message?

blissfulyoshi wrote:

Small bugs:
pippidon and sliderb stuff come out as unused image files right now even though they are used (I am guessing this is not implemented yet, but I didn't see it on the changelog)
Oh, I see. I relied on the listing under "FAQ > Map Design Issues > Missing/Unnecessary files in the package" for which files to consider skin files, but I guess that listing misses out on others. I'll put the other ones in the next update, based on what's in the default skin template- I hope that's comprehensive.

Ayeen wrote:

Sorry for the 3rd post, I suggesting to pin out the slider speed underneath the inherited time as well
No problem! I'm always happy to receive more feedback. Though I'm not sure what you mean by this suggestion, could you elaborate on that?

Ayeen wrote:

About the storyboard, it seem there an issue where it cant elaborate subfolder content. And some skin element that was used to be reported as "unused" as well. Though, i wont say that would be a big issue

Example:
This was used, but reported unused skin element
SPOILER
fail-background.png
pause-overlay.png
star2.png

Example:
It reported missing, but actually it was used in SB
SPOILER
***Missing SB Files***
SB\fly.png
SB\beatmap.png
SB\star.png
SB\mduh.png
SB\storyboard.png
SB\black.png
SB\BG.png
SB\fly2.png
SB\and.png

Bleh ninjaed by Bliss :|
His name's Bliss and not Yoshi?

The unused images thing is a known problem- see my reply to Yoshi's Bliss's statement above. The second one, though, should not be happening- could you link me to the folder that causes the problem?
Ayeen_old
Slider speed I mean there was inherited timing like 0.75, 0.5,0.6 and so on. This is for map that are using more than 3 setup specifically. Though, I think this one can be easily notice via playing the map itself.

Well for the SB files missing:

Pit a pat Summer Where the SB folder is inside the song folder just like common SB files always. I think it be more complicated when there is another folder inside the "SB" folder like lyrics folder.
blissfulyoshi
Oh sorry for being vague, I was not talking about metronome switches (in fact those are fine). I was talking about consistent BPMs across diffs because sometimes a mapper forgets to change the BPM on all diffs when changing timing sections (very rare, but oh well)

About how to call me, yoshi is fine. The reason a lot of ppl use bliss is because there are multiple yoshis, but feel free to use whatever you want.
Topic Starter
akrolsmir

Ayeen wrote:

Slider speed I mean there was inherited timing like 0.75, 0.5,0.6 and so on. This is for map that are using more than 3 setup specifically. Though, I think this one can be easily notice via playing the map itself.
Good idea, added onto todo list.

Ayeen wrote:

Well for the SB files missing:

Pit a pat Summer Where the SB folder is inside the song folder just like common SB files always. I think it be more complicated when there is another folder inside the "SB" folder like lyrics folder.
I see... the bug was caught and eliminated, should be good on the next release. (I mistakenly used the same HashSet for both unused images and all image names... not a good idea)

blissfulyoshi wrote:

Oh sorry for being vague, I was not talking about metronome switches (in fact those are fine). I was talking about consistent BPMs across diffs because sometimes a mapper forgets to change the BPM on all diffs when changing timing sections (very rare, but oh well)

About how to call me, yoshi is fine. The reason a lot of ppl use bliss is because there are multiple yoshis, but feel free to use whatever you want.
Well, that actually makes a lot of sense- so much so that I had assumed I already programmed it that way. Turns out I didn't, but that's fixed now. Here's what the output under Timing Sections looks like now:

AIBat Warnings
These warnings were generated by AIBat.

Timing Sections:
Inconsistency in uninherited (red) timing sections:
- [Hard]
Red timing sections at:
00:00:536, BPM of 93.450

- [Test]
Red timing sections at:
00:00:536, BPM of 93.458
blissfulyoshi
Oh yeah, this was a strange scenario. If you add a word under [Colours], (during the mod he had [Colours] printed twice), AIBat says the combo colors are inconsistent even though all of them were exactly the same. (It took me a while to realize what the issue was, but I severely doubt that this will happen very often)
Ayeen_old
New update, I see. Been away these few days, should see what new
Card N'FoRcE
I swear that i can't get AIBat to work °°

I got the jar application, i run it and choose the beatmap folder.
After that i don't get anything else., whatever folder i choose it doesn't work.

I'm using Windows 7. If this helps, I have osu! sotred in a external drive, but i don't think it should be an issue °°
ziin
Update java, make sure you don't put aibat in the actual osu folder (I couldn't run it in any folder which had a ! in the path).
Card N'FoRcE
Java is updated, and AIbat is in my desktop and runs correctly, it just doesn't do anything after i choose the folder (and press Enter)

I suspect it may be something about Admin rights, but how can i run the Java console without opening the .jar? @_@
ziin
if it's admin rights, then run it as administrator.
Card N'FoRcE
.jar aren't executable files, they can't be run with admin rights by the context menu.
ziin
Certainly they can be run via command line, or with a shortcut, or under the "properties" menu?
Topic Starter
akrolsmir
Nothing for 3 days, and then 8 comments in 12 hours...

blissfulyoshi wrote:

Oh yeah, this was a strange scenario. If you add a word under [Colours], (during the mod he had [Colours] printed twice), AIBat says the combo colors are inconsistent even though all of them were exactly the same. (It took me a while to realize what the issue was, but I severely doubt that this will happen very often)
That would make sense, since the program is configured to check from the first instance of "[Colours]" to the first instance of "[Hitobjects]". I think the bigger question is how the mapper managed to get 2 lines of that in the first place :|

ziin wrote:

Update java, make sure you don't put aibat in the actual osu folder (I couldn't run it in any folder which had a ! in the path).
Yeah, this problem isn't just for AIBat but comes up for all .jar's in any folder that has a "!" as the last character in the filename. Weird glitch or something, but I don't think it's something I can fix.

Card N'FoRcE wrote:

I swear that i can't get AIBat to work °°

I got the jar application, i run it and choose the beatmap folder.
After that i don't get anything else., whatever folder i choose it doesn't work.

I'm using Windows 7. If this helps, I have osu! sotred in a external drive, but i don't think it should be an issue °°
I'm using Windows 7 too (64 bit). Hm... to try and control for other variables, try unzipping this test folder and putting it on your desktop, and trying to open that with AIBat. If that works then it probably has something to do with the external drive, if not then probably admin privileges. Additionally, what happens after you press the "Enter" button? Does the program freeze up (i.e. you can't click on anything/select any other folders) or just not respond?

Also, on the off chance this works, try opening folders with the direct open function (ctrl+O, or File>Open). Shouldn't make a difference but might as well give it a shot.
blissfulyoshi
Another suggestion: Give a warning if the preview time + the time difference between the start of the song and the first note is less than 1s. This is to make sure the preview time is long enough.

Bugs:
Pippidon is not checked
selection-mod-xxxxxx should not be in a map skin (they don't show up) (there are actually quite a few skin files don't affect maps that are currently allowed right now, let me see if I can find a comprehensive list)

Taiko code printout for reference:
SPOILER
***Unused Image Files***
pippidonkiai3.png
pippidonkiai1.png
pippidonidle3.png
pippidonidle0.png
pippidonidle2.png
pippidonclear3.png
pippidonclear0.png
pippidonkiai0.png
pippidonclear6.png
pippidonclear1.png
pippidonfail0.png
pippidonfail1.png
pippidonclear4.png
pippidonidle1.png
pippidonclear2.png
pippidonkiai2.png
pippidonclear5.png

As for what conditions I am running AIBat: Windows 7 (x64) with Java version 6 update 24 with both runtime and SDK
Card N'FoRcE

akrolsmir wrote:

I'm using Windows 7 too (64 bit). Hm... to try and control for other variables, try unzipping this test folder and putting it on your desktop, and trying to open that with AIBat. If that works then it probably has something to do with the external drive, if not then probably admin privileges. Additionally, what happens after you press the "Enter" button? Does the program freeze up (i.e. you can't click on anything/select any other folders) or just not respond?

Also, on the off chance this works, try opening folders with the direct open function (ctrl+O, or File>Open). Shouldn't make a difference but might as well give it a shot.
I already tried everything you said here: i tried opening the folder by both CTRL-O and manual folder selection, but when i press Enter it just does nothing °°
The program doesn't freeze up when i press Enter, it just doesn't analyze the folder whatever the path is (even C:\AAAA).
I tried having a look at admin rights, but i basically have everything allowed already and UAC is disabled. I also removed some kind of "lock" under Properties because this is a downloaded file.

I dunno what else to do xD
Sakura
yeah im at a loss here about your problem too CnF i use win 7 as well and i have no problems X_X (wonder if you need the latest jdk too?)
blissfulyoshi
I started thinking about bitrate again, and probably the best way to check the bitrate is to use the equation (The size of the mp3 in bytes) * 8 / (the length of the song in seconds) / (1000) = kbps of the mp3 + size of tags/metadata/etc. Since the metadata is usually very small, the calculated bitrate tends to run out only 1kbps larger than normal, so if you use the equation above and say only set off the error if the bitrate is greater than 196, it is probably fine.

Other things I noticed about bitrate:
You need to be able to check vbr and cbr (there are others, but these 2 are the most open)
The most accurate way to check the average bitrate is to constantly measure the bitrate of the song at every instance and add them up (basically a giant integral , several thousand parts per second is close enough to an integral for me). Afterward divide the entire number by the length of the song, and you will get the final number
Doing the above method is incredibly difficult.
Topic Starter
akrolsmir
New releases will probably come less frequently (bimonthly or so instead of biweekly) now that my internship for this summer is starting, but keep commenting! I still read and think about everything that is posted here.

To look forward to in the next release: Bookmarking folders, and a search function!

blissfulyoshi wrote:

Another suggestion: Give a warning if the preview time + the time difference between the start of the song and the first note is less than 1s. This is to make sure the preview time is long enough.
I spent ten minutes trying to understand this part... did you mean AudioLeadIn? If so, that's a good suggestion, but is 1 sec long enough?

blissfulyoshi wrote:

Bugs:
Pippidon is not checked
selection-mod-xxxxxx should not be in a map skin (they don't show up) (there are actually quite a few skin files don't affect maps that are currently allowed right now, let me see if I can find a comprehensive list)

Taiko code printout for reference:
Is Pippidon limited to exactly those frames, or can the animation be changed at will? (If it's the latter I'll have to implement that after I understand and properly account for SB animations. Which I should do anyways.)

I left in selection-mod-xxxx and other similar files so that AIBat could be used to check skins as well beatmaps, but I guess that could cause problems with the overlap (i.e. someone accidentally includes a selection-mod-taiko in their beatmap folder and AIBat doesn't catch it). Perhaps I'll just create a short skin checker later and release it seperately.

And the method for calculating bitrate seems great, the only thing stopping me is finding the length of an mp3 file (still). I've found a few references online and I'll try it sometime, but it won't be in the next release.

Card N'FoRcE wrote:

I already tried everything you said here: i tried opening the folder by both CTRL-O and manual folder selection, but when i press Enter it just does nothing °°
The program doesn't freeze up when i press Enter, it just doesn't analyze the folder whatever the path is (even C:\AAAA).
I tried having a look at admin rights, but i basically have everything allowed already and UAC is disabled. I also removed some kind of "lock" under Properties because this is a downloaded file.

I dunno what else to do xD
My guess is that Java somehow is denied access to reading files on your computer- that's the only reason I can think of for the window to open and yet not be able to open beatmaps. When I get some more spare time I'll try porting it to .exe to see if it makes a difference, but in the meantime you could try downloading eclipse and compiling the code yourself :P . I'm really sorry it doesn't work for you, if there are any maps you'd like to check you can always PM me and I'll send AIBat's results to you.
Zekira
No, this won't automatically rank your beatmaps
Sorry but this statement is still making me smile lololol
ziin

akrolsmir wrote:

I spent ten minutes trying to understand this part... did you mean AudioLeadIn? If so, that's a good suggestion, but is 1 sec long enough?
If AudioLeadIn + First note < 1500, output an error. It's more of an error check to make sure that you don't forget an AudioLeadIn if you need it.

akrolsmir wrote:

I left in selection-mod-xxxx and other similar files so that AIBat could be used to check skins as well beatmaps, but I guess that could cause problems with the overlap (i.e. someone accidentally includes a selection-mod-taiko in their beatmap folder and AIBat doesn't catch it). Perhaps I'll just create a short skin checker later and release it seperately.
Add in a "skin mode". Or add the skin specific stuff (like fruit-plate, selection mods, and circle highlight) in a "skin" tab, and apply its own custom skinset (like how hitcircle, hitcircleoverlay, and approach circle have to be together). If someone has a skin specific file in the beatmap, treat it like a skin, and put a notice at the top saying "if this is not a skin, you have an unnecessary skin file in your map and should remove it".

akrolsmir wrote:

And the method for calculating bitrate seems great, the only thing stopping me is finding the length of an mp3 file (still).
You can try reading the id3 tag, but the best way is to figure out the song duration.
And: http://stackoverflow.com/questions/3046 ... me-in-java

Also, I'm not sure which skin elements you check, but these are the important ones:
approachcircle
hitcircle
hitcircleoverlay
cursor
hit0 etc...

Questionable:
fruits

One thing you can do is check each and make a note that "X" is (much) bigger than the template skin dimensions.
blissfulyoshi

akrolsmir wrote:

blissfulyoshi wrote:

Another suggestion: Give a warning if the preview time + the time difference between the start of the song and the first note is less than 1s. This is to make sure the preview time is long enough.
I spent ten minutes trying to understand this part... did you mean AudioLeadIn? If so, that's a good suggestion, but is 1 sec long enough?
Yeah...Audio lead-in. Not sure about the time 1-1.5 seconds is probably enough though.

blissfulyoshi wrote:

Bugs:
Pippidon is not checked
selection-mod-xxxxxx should not be in a map skin (they don't show up) (there are actually quite a few skin files don't affect maps that are currently allowed right now, let me see if I can find a comprehensive list)

Taiko code printout for reference:
Is Pippidon limited to exactly those frames, or can the animation be changed at will? (If it's the latter I'll have to implement that after I understand and properly account for SB animations. Which I should do anyways.) Sorry not sure about the details about the frames. I guess for now, just allow all frames.
Sakura
Audio Lead-in wise i think 1.5 - 2 seconds before the approach circle appears is fine enough, however that would need a human modder probably (unless you can calculate time with approach rate), so i'd say 2 seconds until the first note should be enough, any less and throw a warning
blissfulyoshi
I forgot if this was reported already, but it seems that .png files inside a folder aren't reported correctly.

Also, if some but not all of the kiai timings match up exactly in every diff, could you not post them. (so if only one kiai section is inconsistent among all the diffs, could you only post that one section?)

Bug: AIBat suggest there should be an epilepsy warning even if epilepsy warning is on.
Lybydose
- Checks for snapping in inherited points
Why does this matter? The only green sections that need to be snapped are those that start kiai and those that end kiai, and even end kiai is questionable.

blissfulyoshi wrote:

selection-mod-xxxxxx should not be in a map skin (they don't show up) (there are actually quite a few skin files don't affect maps that are currently allowed right now, let me see if I can find a comprehensive list)
Actually technically they do for a few seconds:

http://osu.ppy.sh/ss/107141

but they still probably shouldn't be included.
show more
Please sign in to reply.

New reply