Sign In To Proceed 2z1z44

Don't have an ? 5p1p6t

osu! to create your own !
forum

AIBat v3.1 - v10 Compatibility 1z4n3p

posted
Total Posts
327
show more
.jar aren't executable files, they can't be run with rights by the context menu.
Certainly they can be run via command line, or with a shortcut, or under the "properties" menu?
Topic Starter
Nothing for 3 days, and then 8 comments in 12 hours...

blissfulyoshi wrote: 23664h

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: 134x2n

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: 4x4d4p

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 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.
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

akrolsmir wrote: o6u2z

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 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 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 ed file.

I dunno what else to do xD
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?)
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
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: 23664h

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: 23664h

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 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: 4x4d4p

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 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 ed 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 ing 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.
No, this won't automatically rank your beatmaps
Sorry but this statement is still making me smile lololol

akrolsmir wrote: o6u2z

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: o6u2z

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: o6u2z

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.

akrolsmir wrote: o6u2z

blissfulyoshi wrote: 23664h

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: 23664h

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 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.
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
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.
- 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: 23664h

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.tvgratuite.org/ss/107141

but they still probably shouldn't be included.

Lybydose wrote: 1c6t30

- 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.
It doesnt matter yeah, however it's good to know which ones are unsnapped, because if they are unsnapped AHEAD of a note, then we may have a hitsound problem since for it to affect it it needs to be on the note or before, otherwise it doesnt matter besides kiai really.
You should check that by listening to the song/map.
Topic Starter

ziin wrote: 134x2n

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".
... I always miss the obvious, practical solutions.

ziin wrote: 134x2n

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
Alright, from there I found a magical library that gets the bitrate directly for me; I might not even need song duration anymore! Also, does anyone have an mp3 file with a Variable Bit Rate and a known average to provide me for testing the bitrate that the library give me?

ziin wrote: 134x2n

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.
You could try digging through the source code, it should be understandable. Maybe ;) . Anyways, currently they are:
hitcircle, approachcircle, hitcircle overlay must all be 128x128
hit0... to hit300g must be 256x256
spinnercircle must be 666x666
pauseoverlay, playfield must be 1024x768
comboburst must be less than 500x767

I guess I'm missing cursor and fruits, what are the dimensions for those?

Sakura Hana wrote: 706h5

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
Alright, I think a warning for under 2 seconds would be good, and perhaps a stronger one if it's under 1?

blissfulyoshi wrote: 23664h

I forgot if this was reported already, but it seems that .png files inside a folder aren't reported correctly.
... tried to use != instead of !.equals() on a string. Anyways, it should be fixed now.

blissfulyoshi wrote: 23664h

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?)
Aww... that would involve changing how Kiai is checked- I was lazy and just compared the entire thing as strings, which was easier. Which is probably bad coding. Put under TODO.

blissfulyoshi wrote: 23664h

Bug: AIBat suggest there should be an epilepsy warning even if epilepsy warning is on.
I couldn't reproduce this, could you tell me which folder you were using when this happened?

Lybydose wrote: 1c6t30

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.
Yeah, I've heard that. Besides what Sakura said, I just kind of like maps to be nice and neat and snapped (I once popped a bubble to fix one of my maps in that regard). If other's don't care about such things and don't want to change it they can just ignore those warnings, I guess.
File length is filesize divided by bitrate.
Hope that helps.

Edit:
True for both ogg and mp3.

akrolsmir wrote: o6u2z

Alright, from there I found a magical library that gets the bitrate directly for me; I might not even need song duration anymore! Also, does anyone have an mp3 file with a Variable Bit Rate and a known average to provide me for testing the bitrate that the library give me? Yay, let's use my map. http://osu-ppy-sh.tvgratuite.org/s/32318 Bitrate is in the metadata (164kbps). More exactly, It is probably somewhere between 164-165.

blissfulyoshi wrote: 23664h

Bug: AIBat suggest there should be an epilepsy warning even if epilepsy warning is on.
I couldn't reproduce this, could you tell me which folder you were using when this happened?
As for this, I was checking http://osu-ppy-sh.tvgratuite.org/s/26860, and if you look in the file, the epilepsy warning is on, but it warned me anyway. (Reminder: you can only see the visual effect of the epilepsy warning when playing standard, not through the editor)
Topic Starter
ARGGGH I'm gone for 30 hours and pages upon pages of new ranking criteria are put up...

Anyone know if peppy is planning on updating AIMod to reflect these new guidelines? If so, I might drop AIBat or rework it to include less overlap. It's not that I mind working on it, I just don't want to waste my effort on duplicating functionality.

Maav wrote: 1h25x

File length is filesize divided by bitrate.
Hope that helps.

Edit:
True for both ogg and mp3.
I kind of already knew that, but thanks for your contribution. Thankfully the magical library I mentioned earlier finds both for me, directly :) .

blissfulyoshi wrote: 23664h

Yay, let's use my map. http://osu-ppy-sh.tvgratuite.org/s/32318 Bitrate is in the metadata (164kbps). More exactly, It is probably somewhere between 164-165.
Cool, the check returned 164 as well. I guess that means I'll be implementing the bitrate check very soon.

blissfulyoshi wrote: 23664h

As for this, I was checking http://osu-ppy-sh.tvgratuite.org/s/26860, and if you look in the file, the epilepsy warning is on, but it warned me anyway. (Reminder: you can only see the visual effect of the epilepsy warning when playing standard, not through the editor)
Thanks for the sample map! I've caught and fixed the bug- I forgot to for the space in between "Epilepsy Warning:" and "1".
Minor bug:
Hitcircle.png not reported missing even if none in beatmap as the other elements of hitcirles are there.

akrolsmir wrote: o6u2z

Anyone know if peppy is planning on updating AIMod to reflect these new guidelines? If so, I might drop AIBat or rework it to include less overlap. It's not that I mind working on it, I just don't want to waste my effort on duplicating functionality.
About the new guidelines, it seems there needs to be a fair amount of discussion before those are finished and in addition AIMod is fairly low on the priority list, so I wouldn't worry too much AIMod having duplicate functionality.
Topic Starter

Equivalent wrote: 3d4j18

Minor bug:
Hitcircle.png not reported missing even if none in beatmap as the other elements of hitcirles are there.
Hm... could you provide a sample folder for me to look at? Thanks!

blissfulyoshi wrote: 23664h

About the new guidelines, it seems there needs to be a fair amount of discussion before those are finished and in addition AIMod is fairly low on the priority list, so I wouldn't worry too much AIMod having duplicate functionality.
Ah, okay. I'll primarily be focusing on adding checks in the next iteration, since I've already implemented most of the features I wanted to. I guess I can start looking through the suggested new guidelines and putting checks for those as well. Thanks for the update!
Hello

I have question here

I just feeling problem aibat or i wrong

Aibat is working my pc ok but sometime i click folder will not show nothing
I just test aibat and i click folder from my map but still not show and i remove diff insane, normal now Aibat is working and show all. So i put again normal and insane and remove hard now aibat is not working again

I just test another folder map is same problem

I can't understand very well what problem Aibat...
Sometime Aibat is not working somehere diff...
or I wrong? :(

i use Windows XP SP3

and sorry my bad english
Probably you should include a link to the beatmap/osz in question so he can work it out and see what's the problem so he can fix it
From what I in earlier testing, you can't check mapsets which have empty maps. So for example, if you have a normal diff which is completely empty without a note, you won't be able to open the mapset at all. I haven't tested the latest version yet though.
Topic Starter

Pereira006 wrote: 2g4d8

Hello

I have question here

I just feeling problem aibat or i wrong

Aibat is working my pc ok but sometime i click folder will not show nothing
I just test aibat and i click folder from my map but still not show and i remove diff insane, normal now Aibat is working and show all. So i put again normal and insane and remove hard now aibat is not working again

I just test another folder map is same problem

I can't understand very well what problem Aibat...
Sometime Aibat is not working somehere diff...
or I wrong? :(

i use Windows XP SP3

and sorry my bad english

Sakura Hana wrote: 706h5

Probably you should include a link to the beatmap/osz in question so he can work it out and see what's the problem so he can fix it
Yes, that would be very helpful, since it sounds like AIBat is only breaking on certain maps, not everything (Like it does for CnF)

I also quickly looked through your pending maps, but none of them were Normal/Hard/Insane, so I didn't try and all of them. "Call Girl" worked fine, though.

lolcubes wrote: 331p4a

From what I in earlier testing, you can't check mapsets which have empty maps. So for example, if you have a normal diff which is completely empty without a note, you won't be able to open the mapset at all. I haven't tested the latest version yet though.
That's true, and hasn't really been fixed yet, so it's possibly the cause. I should probably make AIBat throw out a notice about that if it ever happens.
Feature Request xD:
Check to make sure there are no timing sections at the same point in time, unless the timing section is there to change the slider speed. (If you are lazy, you can just check to see if there are timing sections with the same offset xD)

blissfulyoshi wrote: 23664h

Feature Request xD:
Check to make sure there are no timing sections at the same point in time, unless the timing section is there to change the slider speed. (If you are lazy, you can just check to see if there are timing sections with the same offset xD)
Im pretty much guessing Bliss mean inherited time and unherited time on the same spot. It is rarely oocurs, if it only 1 offset maybe it easier to check without this app, but what if it got like 20 redlines? A good features I say

Equivalent wrote: 3d4j18

blissfulyoshi wrote: 23664h

Feature Request xD:
Check to make sure there are no timing sections at the same point in time, unless the timing section is there to change the slider speed. (If you are lazy, you can just check to see if there are timing sections with the same offset xD)
Im pretty much guessing Bliss mean inherited time and unherited time on the same spot. It is rarely oocurs, if it only 1 offset maybe it easier to check without this app, but what if it got like 20 redlines? A good features I say
Well sometimes ppl put 2 uninherited sections at the same time (usually by accident....), so I want to avoid that from happening. Besides, of couse I want to prevent silly things like 2 inherited sections at the same time too.
Zhanger_old
just wondering-- could you release the source for beatmap url formatter and the osudistancechecker as well? Just curious P:

also --
This would allow you to read the page source for your beatmap url formatter therefore speeding up the process :3

package javaapplication4;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;


/**
*
* @author Alex
*/
public class WebRetrieve {
public static void main(String[] args) {
try {
URL url = new URL("http://osu-ppy-sh.tvgratuite.org/p/beatmaplist");
BufferedReader br = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
String thisline = "";
while((thisline = br.readLine()) != null) {
System.out.println(thisline);
}
br.close();
} catch (Exception ex) {
System.err.println(ex);
}
}

}
a few suggestions:

I'm starting to include an AIBat post in my mods. If possible could you do this stuff:

Put the version number of AIBat in the first line (ie generated by AIBat 0.6b)
Also include an explanation at the top of what the program does. "This program generates warnings based on the current ranking guidelines and rules. Things like breaks and spinners can be usually ignored, but just know that it's generally a bad practice."
Breakless songs are all over the place and get ranked just fine, and someone who doesn't know what AIBat is may get the wrong message. Perhaps change the wording?
The spinners are okay (it's good to know how long they actually are), but perhaps an explanation of "if this spinner doesn't get 2000 on auto, it is too short"
If no problems found or not implemented yet, don't copy to clipboard.
only put two line breaks maximum next to each other. (so there's only 1 empty line)
Just put a mention saying: "Combo colors are inconsistent. Please double check your combo colors or run AIBat yourself to see."
Could do background color too, but I don't think anyone sees that anymore.

And as for coding this in java, I don't think there's a problem I rather like having separate programs from osu since you can't have 2 osu windows open.
This is becoming a quite helpful tool, it helps me save a lot of time, keep it up!
Topic Starter

blissfulyoshi wrote: 23664h

Equivalent wrote: 3d4j18

Im pretty much guessing Bliss mean inherited time and unherited time on the same spot. It is rarely oocurs, if it only 1 offset maybe it easier to check without this app, but what if it got like 20 redlines? A good features I say
Well sometimes ppl put 2 uninherited sections at the same time (usually by accident....), so I want to avoid that from happening. Besides, of couse I want to prevent silly things like 2 inherited sections at the same time too.
It'd probably be relatively easy to configure this as checking for any two sections that are within, say, 5 ms of each other. Good idea, I'll work on it!

Zhanger wrote: 211r36

just wondering-- could you release the source for beatmap url formatter and the osudistancechecker as well? Just curious P:

also --
This would allow you to read the page source for your beatmap url formatter therefore speeding up the process :3
Released, and thanks for this code! (I had no idea reading online stuff was that easy o.O) Don't know if I'll update beatmap url formatter yet, since I think AIBat has a lot more utility and potential as of right now. Also, if someone can find something really useful to do by reading the source code of osu! pages, I'd be glad to try and implement it.

ziin wrote: 134x2n

a few suggestions:

I'm starting to include an AIBat post in my mods. If possible could you do this stuff:

*Stuff*

And as for coding this in java, I don't think there's a problem I rather like having separate programs from osu since you can't have 2 osu windows open.
Thanks! These are good suggestions, and I really appreciate about the layout and how to improve usage- I find that I spend as much time on that as getting the program to work in the first place.

And about java- perhaps, one day, should the program be deemed helpful enough, coding it in C# might have it merit integration with osu! editor, kind of like AIMod currently. /endpipedream

Sakura Hana wrote: 706h5

This is becoming a quite helpful tool, it helps me save a lot of time, keep it up!
Glad it's being used! Development is slowing down since it's implemented most of the interesting-to-code features I wanted (e.g. searching), and putting in checks isn't as fun, not to mention working full-time hours for the first time ever :o . Hearing that it helps people keeps me working at it, though, so thank you for the encouragement!
Just wondering, why are the missing skinned files posted in some random order?
Example: (you should probably make all comboburst-# not come up in the search)
[Storyboard]
Unused Image Files:
comboburst-1.png
comboburst-5.png
comboburst-3.png
comboburst-0.png
comboburst-2.png
comboburst-4.png
It would be nice if you put them in alphabetical/numerical order.
If you feel like doing me a huge favor (and I'll mod as many maps as you want me to)

Make a program which exports hitsounds to bookmark format, one set for whistles, one for finishes, etc...

I requested it here but there's probably no reason it can't be done with ease in a separate utility.
Zhanger_old
next feature request - custom scripts :D
utilizing the mozilla rhino javascript engine already pre-packaged with JDK, it'd probably be easy to implement
Here's from one afternoon of experimenting --
package javaapplication4;

import javax.script.*;
import java.io.*;

/**
*
* @author Alex
*/
public class scripttest {

static ScriptEngineManager mgr = new ScriptEngineManager();
public static void main(String[] args) {
try {
scriptexec();
} catch (ScriptException ex) {
ex.printStackTrace();
}
}
static void scriptexec() throws ScriptException {
ScriptEngine se = mgr.getEngineByName("javascript");
se.eval("println('hello world');");
}
}


Actually the recommended size is 800x600 and the maximum rankable size is 1024x768
Wow the thread has been inactive.
A few more feature request: Warn if a note is before the initial offset
Warn if a there is an inherited timing section right after a red section without any notes inbetween them
Another nice addition would be if it warned about kiai start not being snapped to a long white tick.

Also some spelling correction "A sideboard has been detected" -> "A Storyboard has been detected"
Inconsistency in Tags:
- [Easy Style] : r300k TOMIX Android Gamevil Natteke
- [Hard Style] : r300k Android TOMIX Gamevil Natteke
- [Natteke Style] : r300k Android TOMIX Gamevil Natteke
- [Normal Style] : r300k TOMIX Android Gamevil Natteke

Maybe you can address out this issue above, I mean like as long they are the same thing, it doesnt need to be pointed out. It quite small issue actually.
Topic Starter

Sakura Hana wrote: 706h5

Also some spelling correction "A sideboard has been detected" -> "A Storyboard has been detected"
Lol. That's what I always think "SB" stands for. I guess I play too much Magic: the Gathering...

Thanks to everyone else for continuing to post suggestions and bugs here! After this internship wraps up this week (and I get back from a 3-day vacation immediately after), I'll have time to code up a lot of these features in AIBat. Also, with the next release will come an "Export hitsound" function that was requested by ziin. I guess I'll post a link here for that modification since I've already coded it-

AIBat v0.6.1
that made my life so much easier for all of my beatmaps. I should probably double check blythe with it...
Just here to say that i would like a Refresh feature if possible, so when for example rechecking the same map on AIBat i can just for example hit F5 and it rechecks it, another thing, put a warning when you're trying to exit, there's been plenty of times when i accidentally close AIBat after checking something like i close the AIMod window after checking it ._.

Edit: Also make it start at the top of the page, not the bottom ._.
Topic Starter
Finally updated after a month or so. I'm still looking for new directions to take this, so as always appreciated.

Also, if you have suggestions I'd love to hear them, and please rank them in order of importance so I know what people want the most :D .
Highlight slider ends and circles which have a y<16 or y>368.

When points are above or below this, they run a high risk of being underneath the HP bar or off the screen, especially on easy/hard mod.

This number changes based on circle size, but as the majority of mapping uses circle size 4 it doesn't matter too much.

Acutally the numbers should be customizable. I can try to find out the exact limits if you want.

Examples:
Too low, off screen on easy mod
Fine with easy mod off
I love how AIBat is starting to gain official recognition now like here and here keep up the good work Akrolsmir!!!
Nice app!
One minor thing I noticed though, when checking my combo colours against a guest difficulty it listed them like this:
SPOILER
(AIBat) - (Osu! Editor)
Combo 1 - Combo 2
Combo 2 - Combo 3
Combo 3 - Combo 4
Combo 4 - Combo 1
Topic Starter

Lucy-Kaede wrote: 5b5w

Nice app!
One minor thing I noticed though, when checking my combo colours against a guest difficulty it listed them like this:
SPOILER
(AIBat) - (Osu! Editor)
Combo 1 - Combo 2
Combo 2 - Combo 3
Combo 3 - Combo 4
Combo 4 - Combo 1
Thanks for the !
My hunch is that this is caused by the configuration of the .osu file. If you open that up, you'll see AIBat's listing is identical to how it is put in the actual .osu file, which can be different from what osu! Editor uses. As long as the actual colors are the same, the order shouldn't matter in of getting your map ranked, though.
Since you managed to get hitsounds out of a map easily, would it be that difficult to put them back in? As in copy hitsounds in [insane] to [hard].
Topic Starter

ziin wrote: 134x2n

Since you managed to get hitsounds out of a map easily, would it be that difficult to put them back in? As in copy hitsounds in [insane] to [hard].
Reading files is easier than writing them, and both are easier than editing them. That said, I do like a challenge, so I'll consider it. Though, regarding its functionality: Mapping the hitsounds of circles, the ends/repeats of sliders, and the ends of spinners to a counterpart at a same time in a different diff is intuitive. If the hitobject has no counterpart I guess I'll just leave out the sound. What do I do with hitsounds for the entire slider, though?
------------------

On a non-AIBat related note, I've been thinking about a "Modding Companion", of sorts. The goal is to streamline the modding process. My idea was that you'd run the program for a beatmap you wanted to mod, and then proceed to make changes on that beatmap in osu! Editor. The program compares your modified .osu file to the original and displays any changes in a forum-friendly manner, giving a readout like:


[Hard]

01:21:456 - Add a circle
01:23:456 (7) - Add a whistle
01:24:456 (9) - Remove the circle
01:32:456 to 01:34:456 - Add a slider

And so on, only basic edits that are interpretable. The display is done in an editable window so you can also put in additional notes, other mods etc. When you're done, the program copies everything onto your clipboard so you can paste it in a forum, and also zips the edited osu files along with a second program that displays the entirety of the mod post as well as hyperlink-to-clipboard (like AIBat) for faster access to the notes. The idea here is that they can import your edited files into the beatmap directly in the Editor in parallel to the originals, and copy+paste the patterns they approve onto their file.

Is this something worth attempting? Would people use it?

akrolsmir wrote: o6u2z

Is this something worth attempting? Would people use it?
Yes, and yes. Do it.
Actually peppy already made this program:

http://pe.ppy.sh/2009/06/265/


As far as hitsounds go:
when there is a hitsound on a slider, if threre is the 0|0|0|0|2 at the end, that means there is no hitsound except for a whistle on the last part of the repeat. The slider track may still have a hitsound where it is for regular circles, but the first four notes don't have any hitsound.

If there is a slider which starts on the same beat, you can copy the sliderslide hitsound, but if not, don't copy the hitsound and instead rely on the numbers at the end. If the slider has no numbers at the end and has a sliderslide hitsound, put that hitsound on each beat.

It's pretty confusing but I think you did a really good job with reading them.
i've just tried this and i say thanks for first (cause AudioLeadIn inconsistency)..
(AIBat v0.7b)

but i've some thing that makes me feels strange..
1. Timing point offset should rounded?
AIBat
Timing Sections Inconsistency in uninherited (red) timing sections:
- [Easy] Red timing sections at: 00:01:602, BPM of 182.000
- [Final-Dream] Red timing sections at: 00:01:601, BPM of 182.371
Notepad
Final Dream: 1601.58650029137,329.67032967033,...
Easy: 1602,329.67032967033,...
same second per beat (329.6ms)[or beat per minute 182] and 1601.58 in osu! detected as 1602ms..

2. Storyboard File Case Sensitive?
Unused Image Files
SB\From_TouhouWiki_Untranslated\marisa_4.png
SB\marisakirisame_sweat_dialog4.png (this one is unused, i'll remove it later, thanks.)
SB\From_TouhouWiki_Untranslated\marisa_1.png
SB\From_TouhouWiki_Untranslated\reimu_5.png
comboburst-1.png
SB\From_TouhouWiki_Untranslated\reimu_3.png
SB\From_TouhouWiki_Untranslated\marisa_2.png
SB\From_TouhouWiki_Untranslated\marisa_6.png
comboburst-0.png
SB\From_TouhouWiki_Untranslated\reimu_4.png
SB\From_TouhouWiki_Untranslated\reimu_2.png
comboburst-2.png
comboburst-3.png
SB\From_TouhouWiki_Untranslated\marisa_3.png
SB\From_TouhouWiki_Untranslated\marisa_5.png
SB\From_TouhouWiki_Untranslated\reimu_1.png
Missing SB Elements
SB\From_TouhouWiki_UnTranslated\reimu_3.png
SB\From_TouhouWiki_UnTranslated\marisa_4.png
SB\From_TouhouWiki_UnTranslated\marisa_6.png
SB\From_TouhouWiki_UnTranslated\marisa_2.png
SB\From_TouhouWiki_UnTranslated\marisa_5.png
SB\From_TouhouWiki_UnTranslated\reimu_1.png
SB\From_TouhouWiki_UnTranslated\reimu_5.png
SB\From_TouhouWiki_UnTranslated\reimu_2.png
SB\From_TouhouWiki_UnTranslated\reimu_4.png
SB\From_TouhouWiki_UnTranslated\marisa_1.png
SB\From_TouhouWiki_UnTranslated\marisa_3.png
- should i replace the .osb file with case change?
- the skin file (comboburst-X.png) is used.

i'm sorry if i didn't read the previous page.
Topic Starter
@Ekaru- Good to know there's a demand, thanks.

@ziin- Peppy's program doesn't seem tailored to modding, though. I'll think about what else I can do to make mine more distinguished from that, though.

And about hitsounds- I pretty much understand how hitsounds are assigned, I was just wondering about the best way to translate them between difficulties. What you suggested makes sense, I think. Also, should I clear existing hitsounds from the map first? Because adding the new hitsounds atop old ones seems like it would sound cacophonous.

@Rei_Fan49

Actually, as far as I can tell, osu! truncates those values instead of rounding them, so I choose to do the same in my program. Either way, I think that for your beatmap it'd be wisest just to set the offsets to 1602 exactly. Moreover, there's a difference in the BPM that should probably be addressed- set both values to 182.000?

About storyboarding- no, you probably don't need to fix anything if the osu! (or windows or whatever) file system ignores case when it comes to file names. Rather, I'll probably want to fix that in AIBat. Thanks for the report!

And the comboburst thing is a known issue based on the fact that I'm still trying to figure out what to do about file-1.png, file-2.png and so forth where AIBat just expects file.png.
lol they are 182..
and also about the offset round or floor or truncate
osu! did both of them..
Wow, I haven't replied in this thread for a while. Lets see what I can find now xD

Adding [Colours] after [Colours] is already staated once (I know you didn't fix this, but I wanted to recheck this): If my code is like
[Colours][Colours]
then I get
 - [Easy] :
olours]
, but if my code is like
[Colours]
[Colours]
then I get
 - [Easy] :
[Colours]

just found that interesting. Not in the mood to check the source code to find out why, but there is no need for you to fix it.

Timing sections check is not implemented yet (see viewtopic.php?p=922062#p922062 if you forgot) (not on your list of todo, so just reminding you)

Another stupid bugs that I doubt will come up:
If the timing sections are like this:
56713,-100,4,1,1,75,0,1

83947,-100,4,1,1,75,0,0
then the it will be read as
Kiai #1: Starts on 00:56:713, until the end

Feature Request:
Warn if 2 notes are at the same point in time (Forgot if this was mentioned before)
Check for unused custom hitsounds (including bogus names) (was this supposed to be already implemented in 0.7? because it doesn't seem to work for me.)
Warn about sbed hitsounds (I know some s dislike them, so I a notficiation about them would be nice)

All the new features I tried seemed to work, so great job with 0.7. I wish you the best of luck as you move onward (and a modding companion would be nice)

Edit: I thought about the comboburst thing, and I think the code should probably go something like this.(going to be typing in visual basic style since I have been using that a lot lately)
If it ends in ".png" then
If the first few characters are "comboburst-" then
read the characters after the "comburst-" until you find '.'
if characters inbetween those 2 points are not numbers then
trigger error
end if 'else ignore
end if
end if

so confusing without tabs, but I think you get the general idea
AIBat doesn't work D:
make sure it's not in a folder with a ! in it.
But it's not the point.
It works with all folders, but not with folders with osu! beatmaps. Even if you are outside osu! songs folder.
In these situations it's best to describe the problem fully.

You said AIBat doesn't work, now you're saying it works with all folders?

What happens when you open a folder?
is it like this?
(wrong file lol, yeah because i tried it rushly, but it may applies to all JAR..)
if so, then evacuate move it from UNICODE based name folder... (CMIIW, win7 too?) to non UNICODE based folder, (like base drive "C:\" etc.)

ziin wrote: 134x2n

In these situations it's best to describe the problem fully.

You said AIBat doesn't work, now you're saying it works with all folders?

What happens when you open a folder?
When i open folder with map, nothing happens.

When i open any folder:
try moving everything to the root of the drive.
root?
c:\ or d:\ or e:\
still same
Topic Starter
It's good that at least AIBat opens up, unlike for CnF... The message when you try to open up any non-beatmap folder is expected, and it sounds like an exception is thrown on all folders with .osu files in them, which would prevent the program from opening anything as you described.

Try unzipping this test folder and putting it on the root drive, and trying to open that with AIBat.
Still nope
It runs only from root folder.
After start, it opens songs' folders but doesn't show any files inside of 'em. They are kind of.. empty, though I know it's wrong. Well, it shows subfolders only.

Windows 7 x86, Java v6 upd27. Tried AIBat v0.7b and 0.6.1b
you're supposed to open a folder, not a file, so the folders will be empty. Just open the folder.
You're supposed to find the path to where the .osu files are supposed to be (a.k.a the song folder) after that just hit the enter button (or press the enter key)
AIBat is really awesome 8-)

Sakura Hana wrote: 706h5

You're supposed to find the path to where the .osu files are supposed to be (a.k.a the song folder) after that just hit the enter button (or press the enter key)

ziin wrote: 134x2n

you're supposed to open a folder, not a file, so the folders will be empty. Just open the folder.
Hm. I tried it, but nothing happened. Now I try to open some songs' folders, and it works.
Some folders don't open:
Topic Starter
Glad to find it's working, at least partway.

About those beatmaps that don't open, though- I can't seem to replicate the error for the first two.


For the last one, though- that's a problem with the age of the beatmap. It's file format is v5, and contains formatting that breaks AIBat. I never implemented backwards compatibility since maps that old either are ranked or graveyarded, so you shouldn't need to use it for those anyways.
When popping http://osu-ppy-sh.tvgratuite.org/s/31343 into AIBat, I got a whole bunch of snapping errors as the output, but I didn't actually find snapping errors in the map. Will try to out reason later when I am not as sleepy.
Think you can add 0.5 tick rate warning?

blissfulyoshi wrote: 23664h

When popping http://osu-ppy-sh.tvgratuite.org/s/31343 into AIBat, I got a whole bunch of snapping errors as the output, but I didn't actually find snapping errors in the map. Will try to out reason later when I am not as sleepy.
It's because the offset has a decimal on it:

571.114342485549,342.857142857143,4,1,0,60,1,0

571.114342485549 should be just 571, and the errors go away.
Thanks ziin, changing the offset worked, now I just need to know what caused it (I think I can guess though)

blissfulyoshi wrote: 23664h

Thanks ziin, changing the offset worked, now I just need to know what caused it (I think I can guess though)
well as I said, it's the decimal on the offset. AIBat is trying to say that 2135.114342485549 is the right snap, but osu can't do that.

This is both a problem with the map (offset shouldn't be a decimal) and with AIBat (it shouldn't display these errors, and instead say the offset has a decimal)

Also, the map in question got fixed, but AIBat doesn't recognize 2 different BPMs as being different BPMs:

285.7142857143 is identical to 285.714286, but if you order the maps according to BPM, the difficulties will be separated. Note that the first and last notes should be the same unless it's a REALLY long song.
May I have a tiny request, that is add a 0% volume timing section check function ;)
Also forgot if i already asked for this but, it would be nice if you added a check for spinners and post-spinner notes to check and warn if they dont have a new combo marker
Topic Starter
Currently I've got a lot of work in the form of college applications, so apologies if updates are delayed.

Breeze wrote: 2w5d1h

May I have a tiny request, that is add a 0% volume timing section check function ;)
This shouldn't come up very often now that the editor imposes a limit, but I'll try to put in a check for it.

Sakura Hana wrote: 706h5

Also forgot if i already asked for this but, it would be nice if you added a check for spinners and post-spinner notes to check and warn if they dont have a new combo marker
Should be doable, and it seems like maps get unranked for this kind of stuff so it's probably important.

Also, I've improved the search function so that it's instantaneous- like google search or osu's own music search function.
A bug report maybe
When I check this map via AIBat
it said there are many unsnap notes and slider start, end in this map, but it seems all these hit objecks are snapped well
Topic Starter
Thanks, Breeze! That was an oversight on my part, it's been fixed for the next release.

boring technical details
The osu file format allows for offsets that are decimals- for this specific map, 7995.87234042553. I don't know why this is... but anyways, I wrote in an exception that would truncate decimals. The exception also accidentally truncated the BPM as well, which made the snap checker mess up.

akrolsmir wrote: o6u2z

Thanks, Breeze! That was an oversight on my part, it's been fixed for the next release.
And when is that coming out?

On another note:

Background's max size is 1024x768, recommended 800x600, also should be 4:3 to avoid thumbnail issues.
It isn't checking mp3 bitrate anymore?
Add reversearrow.png to hitcircle set as in the FAQ http://osu-ppy-sh.tvgratuite.org/p/faq > Map design issues > Missing/Unnecessary files in the package

You should probably check this as well for any extra stuff that might be worth including.
should detect if it's lower than 16:10.
bitrate is only reported if out of bounds.

can you ignore case when checking filenames? Also ignore any -0 or -1 at the end of each filename so it doesn't report sliderfollowcircle-12 as an unused extra file.
Topic Starter
Again, things will unfortunately be slower while I'm working college apps, which go on until the end of the year. I should be able to push through minor updates or bugfixes, but nothing that requires too much thinking.

For the backgrounds- what's the approximate acceptable range? Between 1.6x to 1.7x?

@Sakura- I'll put reversearrow in, thanks for the catch. I presumed it's supposed to be 128x128. And as ziin said, I elected to omit the bitrate whenever it is within 128 to 192 kbps- should I report it regardless?

@ziin- Ignoring case should be simple, and I'm still working on a good approach for the "-#" issue.
1.33-1.6

If you get too widescreen, you'll be out of the grid. Anything lower than 1.33 will be cropped.

Here's 16:10. Notice how the bottom is slightly out of the grid. Now if the beatmap is made well, there should be little outside the grid, so everything will be on the background. If it's not made well, they probably need a 4:3 background.

Of course videos have no problem being 16:9, but that's because of the fact that it's so hard to change a video.
I just trying AIBat and it doesn't working. First i open the jar file, it's working and open a new window. Then i choose File>Open Beatmap Folder and select one of my beatmap folder in osu song directory. Then, AIBat doesn't show anything.
I have put AIBat into osu folder. And i'm using windows 7 64bit. Is AIBat not work on Windows 64bit?
I hope you can help me with these >.<
Topic Starter
I use 64-bit Win7 myself, so that shouldn't be the issue. Hm... I'm guessing that it's a beatmap-specific problem. Can you tell me which maps you've tried so far that don't work?

For the meantime, try opening other maps. Or try unzipping this test folder and putting it on your desktop, and opening that in AIBat.
All of them, beatmap folder that has not been ranked, or ranked one. Even your test folder (I have place it on desktop btw). It still didn't show anything, like nothing happen.. >.<
Topic Starter
How about if AIBat isn't placed within the osu! folder? I recall an issue when AIBat was placed in any folder ending in '!'.

Also, what version of Java do you have?
my osu folder is 'osu' , see for yourself
My java is latest, i just update it today, and it still doesn't work.
Oh yes, i have try to open some folder, almost 90% can't open, and 10% is open. Example when i try to open : E:\osu\Songs\17447 Girls Dead Monster - Ichiban no Takaramono (Yui Ver), AI bat can detect it. But like i said, almost other than that, AI bat can't detect it.
What's the problem?
Topic Starter
Hm... poking around, I found out that AIBat stops working if settings.txt is not in the same folder that it is in. But I doubt that's the problem for your case.

I've still got a few more guesses...Can you tell me what you see in the text box in the Startup tab, right after you open up AIBat?

(for example, for me it's
)

Is this the folder that "AIBat v0.7.jar" is located in?

---

Also, does going to Help>Show Changelog bring up the changelog?
Setting.txt is in the same folder.

Text box in startup :

yes, the address in the startup is where AIbat.jar is located.

Yes, also help > changelog bring up the changelog.
Topic Starter
Let's see... I've added in a function that will hopefully at least catch the problem. If all goes well, when you try to open a file and it doesn't work, you'll get an error report that might look something like this:

You can get AIBat v0.7.1b here. Just put it in the same folder that v0.7 is in.
I try to open 5 map with AIBat. Here's the result :

1st try :
SPOILER
Please report this error along with the map that caused it:

E:\osu\Songs\34645 ave;new feat Sakura Saori - Mugendai LOVERS (Short Ver)
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Timing.getPreviousRed(Timing.java:242)
at Timing.getEffectiveBeatSpace(Timing.java:279)
at OsuFileParser.processHitObjects(OsuFileParser.java:113)
at OsuFileParser.<init>(OsuFileParser.java:75)
at Consolidator.<init>(Consolidator.java:48)
at AIBatWindow.switchTo(AIBatWindow.java:228)
at AIBatMenu$FileAction.actionPerformed(AIBatMenu.java:178)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.moeleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

2nd try :
SPOILER
Please report this error along with the map that caused it:

E:\osu\Songs\SEAMO - Mother
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Timing.getPreviousRed(Timing.java:242)
at Timing.getEffectiveBeatSpace(Timing.java:279)
at OsuFileParser.processHitObjects(OsuFileParser.java:113)
at OsuFileParser.<init>(OsuFileParser.java:75)
at Consolidator.<init>(Consolidator.java:48)
at AIBatWindow.switchTo(AIBatWindow.java:228)
at AIBatMenu$FileAction.actionPerformed(AIBatMenu.java:178)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.moeleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

3rd try :
SPOILER
Success :

4th try :
SPOILER
Please report this error along with the map that caused it:

E:\osu\Songs\39520 Marie - Rocket Love Panic! (Short Ver)
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Timing.getPreviousRed(Timing.java:242)
at Timing.getEffectiveBeatSpace(Timing.java:279)
at OsuFileParser.processHitObjects(OsuFileParser.java:113)
at OsuFileParser.<init>(OsuFileParser.java:75)
at Consolidator.<init>(Consolidator.java:48)
at AIBatWindow.switchTo(AIBatWindow.java:228)
at AIBatMenu$FileAction.actionPerformed(AIBatMenu.java:178)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.moeleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

5th try :
SPOILER
Please report this error along with the map that caused it:

E:\osu\Songs\38573 RYTHEM - Houki Gumo (TV size)
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Timing.getPreviousRed(Timing.java:242)
at Timing.getEffectiveBeatSpace(Timing.java:279)
at OsuFileParser.processHitObjects(OsuFileParser.java:113)
at OsuFileParser.<init>(OsuFileParser.java:75)
at Consolidator.<init>(Consolidator.java:48)
at AIBatWindow.switchTo(AIBatWindow.java:228)
at AIBatMenu$FileAction.actionPerformed(AIBatMenu.java:178)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMoeleased(Unknown Source)
at javax.swing.JMenuItem.fireMenuDragMoeleased(Unknown Source)
at javax.swing.JMenuItem.processMenuDragMouseEvent(Unknown Source)
at javax.swing.JMenuItem.processMouseEvent(Unknown Source)
at javax.swing.MenuSelectionManager.processMouseEvent(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.moeleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

1 success, 4 fail = 90% fail, 10% success >.<
Oh yes, i feel anoyed when i open beatmap folder, the dialog keep revert to default state. I like detailed view, but the AI Bat open beatmap folder dialog always revert my change to normal state. Could you fix this?
oh hi akrolsmir, may I ask for a function added?
How about add a function that display the difficulty set of all difficulties (HP, note size, AR, OD, SV)
So that I think it's useful to compare the difficulties spread intuitively
Topic Starter
Looking at those maps and those errors, I'm thinking it might have to do with the presence of a decimal in the BPMish number in the file. (Those maps all work fine for me btw.) To test that, try opening this updated test file in 0.7.1b: http://puu.sh/aeoW

After that, try opening various files in 0.7.2b. Chances are my edits haven't fixed it, but the bug report system should have been slightly improved. Hopefully.

Miya wrote: 4g494n

Oh yes, i feel anoyed when i open beatmap folder, the dialog keep revert to default state. I like detailed view, but the AI Bat open beatmap folder dialog always revert my change to normal state. Could you fix this?
I'll look into it, but in any case, I'd recommend using the search function instead (shortcut is ctrl+f) to quickly locate and open beatmaps without having to navigate through the folder dialog.

Thanks for helping me locate the bugs!

Breeze wrote: 2w5d1h

oh hi akrolsmir, may I ask for a function added?
How about add a function that display the difficulty set of all difficulties (HP, note size, AR, OD, SV)
So that I think it's useful to compare the difficulties spread intuitively
That's a great suggestion! Do you have any ideas on how it ought to look?
show more
Please sign in to reply.

New reply 3p1g1j