Git Product home page Git Product logo

libosu's Introduction

libosu

CI Crates.io Documentation dependency status

General-purpose osu! library

Installation

This package is hosted on crates.io. In order to include this library into your project, simply add this line into your Cargo.toml:

libosu = "*"

The following features are available through adding features in Cargo.toml, and are not included by default since they may bring in extra dependencies:

  • apiv1: Bindings for the osu! API v1.
  • apiv2: Bindings for the osu! API v2.
  • replay-data: Action data for osu! replay files (requires LZMA).

Getting Started

Check out the API Documentation for details on how to use the various functions, or check out some of the examples (pending).

Projects using libosu

If you have a project using libosu, open an issue with a brief description and I'll add it to the list!

Contact

Primary maintainer: Michael Zhang

See contributors page for full list of authors.

License: MIT

libosu's People

Contributors

holly-hacker avatar iptq avatar ishehadeh avatar nobbele avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

libosu's Issues

Parse panic with v10 beatmaps

panicked at 'index out of bounds: the len is 3 but the index is 3', libosu-0.0.27\src\hitsounds.rs:87:29

Machico - Magical Happy Show! (-[NYAN]-) [A32].osu

osu file format v10

[General]
AudioFilename: OP.mp3
AudioLeadIn: 2000
PreviewTime: 71245
Countdown: 0
SampleSet: Soft
StackLeniency: 0.7
Mode: 0
LetterboxInBreaks: 0

[Editor]
Bookmarks: 49,16600,29842,43083,56324,71221,84462,97704,110945
DistanceSpacing: 1.6
BeatDivisor: 4
GridSize: 8

[Metadata]
Title:Magical Happy Show!
TitleUnicode:Magical Happy Show!
Artist:Machico
ArtistUnicode:Machico
Creator:-[NYAN]-
Version:A32
Source:Supipara
Tags:minori a3272509123 op opening
BeatmapID:169355
BeatmapSetID:52796

[Difficulty]
HPDrainRate:6
CircleSize:4
OverallDifficulty:6
ApproachRate:7
SliderMultiplier:1.5
SliderTickRate:1

[Events]
//Background and Video events
Video,0,"OP.avi"
0,0,"BG.png"
//Break Periods
//Storyboard Layer 0 (Background)
//Storyboard Layer 1 (Fail)
//Storyboard Layer 2 (Pass)
//Storyboard Layer 3 (Foreground)
//Storyboard Sound Samples
//Background Colour Transformations
3,100,255,128,128

[TimingPoints]
1935,413.793103448276,4,1,0,55,1,0
10003,-200,4,1,0,55,0,0
11038,-100,4,1,0,55,0,0
44969,-200,4,2,0,55,0,0
57383,-100,4,1,0,35,0,0
72900,-100,4,1,0,55,0,1
86245,-100,4,1,0,55,0,1
86348,-100,4,1,0,55,0,1
99590,-100,4,1,0,55,0,0
107659,-200,4,1,0,55,0,0
108693,-100,4,1,0,55,0,0
117590,-50,4,1,0,55,0,0
118003,-100,4,2,0,5,0,0


[Colours]
Combo1 : 240,5,5
Combo2 : 128,0,255
Combo3 : 255,0,128
Combo4 : 128,0,64

[HitObjects]
136,92,1935,2,0,B|168:172|112:240,2,150,6|8|0,0:0|0:0|0:0,0:0:0
240,112,2969,1,2,0:0:0
316,184,3176,1,8,0:0:0
352,284,3383,1,0,0:0:0
248,268,3590,2,2,B|184:316|88:304,1,150,2|8,0:0|0:0,0:0:0
28,236,4210,2,2,B|92:188|188:200,1,150,2|2,0:0|0:0,0:0:0
272,160,4831,1,8,0:0:0
272,160,5038,1,0,0:0:0
348,104,5245,6,2,B|416:148|492:140,2,150,6|8|2,0:0|0:0|0:0,0:0:0
153,126,6486,1,8,0:0:0
236,180,6693,1,0,0:0:0
296,260,6900,2,2,B|360:320|464:296,1,150,2|8,0:0|0:0,0:0:0
416,196,7521,1,0,0:0:0
328,136,7728,1,2,0:0:0
305,134,7831,1,0,0:0:0
283,126,7935,1,0,0:0:0
262,116,8038,1,0,0:0:0
242,104,8141,2,8,B|186:104,3,37.5,0|0|0|0,0:0|0:0|0:0|0:0,0:0:0
224,152,8555,6,2,B|224:256,1,75,4|2,0:0|0:0,0:0:0
396,224,9176,2,2,B|396:328,1,75,0|2,0:0|0:0,0:0:0
216,316,9797,1,2,0:0:0
216,316,10003,6,0,B|164:308|120:256|144:192,1,150,0|0,0:0|0:0,0:0:0
216,152,11038,6,0,B|308:152,1,75,0|0,0:0|0:0,0:0:0
364,204,11452,2,0,B|432:204,2,50,0|0|0,0:0|0:0|0:0,0:0:0
316,240,11866,2,0,B|328:320,1,75,0|2,0:0|0:0,0:0:0
136,128,12486,2,0,B|120:208,1,75,0|2,0:0|0:0,0:0:0
248,288,13107,1,2,0:0:0
248,288,13314,1,0,0:0:0
392,80,13728,2,0,B|340:152|396:252,1,150,0|0,0:0|0:0,0:0:0
432,296,14348,2,0,B|381:328|321:292,1,112.5,2|0,0:0|0:0,0:0:0
292,268,14762,2,0,B|217:268,1,75,0|0,0:0|0:0,0:0:0
136,224,15176,5,6,0:0:0
220,196,15383,1,0,0:0:0
296,148,15590,1,8,0:0:0
356,80,15797,2,2,B|392:168|344:232,1,150,2|2,0:0|0:0,0:0:0
264,308,16417,2,0,B|244:260|284:216,1,75,8|0,0:0|0:0,0:0:0
296,148,16831,2,0,B|244:180|168:168,1,112.5,2|0,0:0|0:0,0:0:0
148,152,17245,2,0,B|112:228,1,75,8|0,0:0|0:0,0:0:0
168,316,17659,5,2,0:0:0
264,280,17866,1,2,0:0:0
360,236,18072,1,8,0:0:0
360,236,18176,1,0,0:0:0
360,236,18279,1,0,0:0:0
360,236,18383,1,0,0:0:0
360,236,18486,1,4,0:0:0
436,72,18900,1,10,0:0:0
256,96,19314,5,0,0:0:0
280,184,19521,1,2,0:0:0
192,212,19728,1,8,0:0:0
164,128,19935,1,0,0:0:0
256,96,20141,2,0,B|336:136|424:104,1,150,2|8,0:0|0:0,0:0:0
404,200,20762,2,2,B|344:248|348:336,1,150
272,284,21383,1,8,0:0:0
272,284,21590,2,0,B|264:336|212:364|157:336,1,150,0|2,0:0|0:0,0:0:0
152,256,22210,6,0,B|64:256,1,75,8|2,0:0|0:0,0:0:0
172,168,22624,2,0,B|252:168,2,75,0|2|8,0:0|0:0|0:0,0:0:0
152,80,23245,1,0,0:0:0
152,80,23348,1,0,0:0:0
152,80,23452,2,0,B|248:100|308:28,1,150,2|8,0:0|0:0,0:0:0
384,88,24072,2,2,B|373:157|280:187,1,150,2|2,0:0|0:0,0:0:0
168,208,24693,1,8,0:0:0
240,292,24900,1,0,0:0:0
240,292,25003,1,0,0:0:0
240,292,25107,2,0,B|344:304,1,75,4|0,0:0|0:0,0:0:0
314,300,25521,5,10,0:0:0
432,112,25935,1,0,0:0:0
360,168,26141,1,2,0:0:0
276,200,26348,1,8,0:0:0
188,212,26555,1,2,0:0:0
96,216,26762,2,2,B|36:216|0:136|60:84,1,150,2|8,0:0|0:0,0:0:0
136,72,27383,1,2,0:0:0
160,64,27486,1,0,0:0:0
184,56,27590,2,0,B|280:56,1,75,0|2,0:0|0:0,0:0:0
352,88,28003,1,8,0:0:0
352,88,28210,1,2,0:0:0
352,88,28417,6,0,B|344:168|248:224,1,150,4|10,0:0|0:0,0:0:0
184,176,29038,2,0,B|144:272|232:328,1,150,2|2,0:0|0:0,0:0:0
288,272,29659,2,0,B|384:272,1,75,8|2,0:0|0:0,0:0:0
424,200,30072,1,0,0:0:0
360,128,30279,1,2,0:0:0
344,112,30383,1,0,0:0:0
328,96,30486,1,8,0:0:0
256,176,30693,1,0,0:0:0
234,170,30797,1,0,0:0:0
212,164,30900,1,2,0:0:0
144,240,31107,6,0,B|120:280|56:264,2,75,2|8|2,0:0|0:0|0:0,0:0:0
240,256,31728,2,0,B|312:288|408:256,1,150,4|10,0:0|0:0,0:0:0
464,120,32555,1,2,0:0:0
411,47,32762,1,0,0:0:0
325,74,32969,1,8,0:0:0
325,164,33176,1,0,0:0:0
411,192,33383,2,0,B|384:272|296:304,1,150,2|8,0:0|0:0,0:0:0
209,292,34003,2,4,B|136:264|101:192,1,150,2|2,0:0|0:0,0:0:0
72,120,34624,6,0,B|0:144,2,75,8|2|4,0:0|0:0|0:0,0:0:0
256,72,35452,1,10,0:0:0
352,64,35659,1,0,0:0:0
448,96,35866,2,0,B|440:136|376:172,1,75,0|2,0:0|0:0,0:0:0
316,168,36279,2,0,B|332:204|307:240,1,75,8|0,0:0|0:0,0:0:0
232,288,36693,2,0,B|136:312|76:252,1,150,2|8,0:0|0:0,0:0:0
40,176,37314,2,2,B|136:152|196:212,1,150,2|2,0:0|0:0,0:0:0
272,148,37935,1,8,0:0:0
320,240,38141,1,2,0:0:0
232,288,38348,1,4,0:0:0
448,192,38762,6,0,B|280:192,1,150,10|2,0:0|0:0,0:0:0
296,96,39383,1,0,0:0:0
216,144,39590,1,8,0:0:0
216,240,39797,1,0,0:0:0
296,288,40003,2,0,B|224:344|136:304,1,150,2|8,0:0|0:0,0:0:0
80,256,40624,1,2,0:0:0
48,168,40831,2,0,B|48:80,2,75,0|2|8,0:0|0:0|0:0,0:0:0
144,192,41452,1,0,0:0:0
144,192,41555,1,0,0:0:0
144,192,41659,6,0,B|208:200|264:136,1,112.5,2|0,0:0|0:0,0:0:0
280,160,42072,2,0,B|360:160,2,75,8|2|0,0:0|0:0|0:0,0:0:0
312,256,42693,1,2,0:0:0
216,288,42900,1,8,0:0:0
176,192,43107,1,2,0:0:0
280,160,43314,6,2,B|352:224|448:176,1,150,2|8,0:0|0:0,0:0:0
363,126,43935,2,2,B|380:208|312:257,1,150,2|2,0:0|0:0,0:0:0
224,272,44555,6,0,B|232:328,2,50
216,236,44969,6,0,B|192:184|224:128,1,112.5
256,80,45797,1,0,1:0:0
368,128,46210,1,2,0:0:0
400,248,46624,2,0,B|328:272|288:360,1,150,0|0,0:0|1:0,0:0:0
256,232,47866,1,2,0:0:0
218,348,48279,2,0,B|184:272|112:248,1,150,0|0,0:0|1:0,0:0:0
160,136,49521,1,0,0:0:0
272,96,49935,2,0,B|352:80,1,75,2|0,0:0|0:0,0:0:0
424,168,50762,1,0,1:0:0
344,224,50969,5,2,0:0:0
328,224,51072,1,0,0:0:0
312,224,51176,1,0,0:0:0
296,224,51279,1,0,0:0:0
280,224,51383,1,2,0:0:0
264,224,51486,1,0,0:0:0
248,224,51590,2,0,B|168:224,1,75,4|0,0:0|0:0,0:0:0
173,224,52417,5,0,1:0:0
120,120,52831,1,0,0:0:0
120,120,53038,1,0,0:0:0
120,120,53245,2,0,B|200:120,1,75,2|0,0:0|0:0,0:0:0
296,120,54072,1,0,1:0:0
392,192,54486,1,2,0:0:0
360,240,54693,1,0,0:0:0
392,288,54900,1,4,0:0:0
392,288,55728,5,0,1:0:0
176,192,56555,2,0,B|112:192,2,56.25,4|2|0,0:0|0:0|0:0,0:0:0
264,192,57383,1,0,0:0:0
344,152,57590,1,0,0:0:0
384,80,57797,1,0,0:0:0
384,80,57900,1,0,0:0:0
384,80,58003,1,0,0:0:0
384,80,58107,1,0,0:0:0
384,80,58210,6,0,B|360:152|280:192,1,150,6|8,0:0|0:0,0:0:0
216,104,58831,2,2,B|152:160|152:272,1,150
240,280,59452,1,8,0:0:0
328,248,59659,1,0,0:0:0
328,248,59762,1,0,0:0:0
328,248,59866,2,0,B|352:200|408:176,1,75,0|2,0:0|0:0,0:0:0
464,104,60279,2,0,B|416:96|384:120,1,75,8|2,0:0|0:0,0:0:0
280,72,60693,1,2,0:0:0
168,120,60900,2,0,B|152:136|152:176,5,37.5,0|0|4|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0
152,176,61521,6,2,B|144:264|216:320,1,150,2|8,0:0|0:0,0:0:0
256,200,62141,2,2,B|296:288|400:288,1,150
440,192,62762,1,8,0:0:0
440,192,62969,1,0,0:0:0
328,152,63176,2,0,B|352:112|400:96,1,75,0|2,0:0|0:0,0:0:0
272,56,63590,1,8,0:0:0
272,56,63797,2,2,B|208:120|112:112,1,150
64,208,64417,1,8,0:0:0
184,232,64624,1,0,0:0:0
184,232,64728,1,0,0:0:0
184,232,64831,6,0,B|224:288|312:272,1,112.5,6|0,0:0|0:0,0:0:0
336,248,65245,2,0,B|416:248,1,75,8|0,0:0|0:0,0:0:0
411,248,65659,1,2,0:0:0
256,64,66072,1,8,0:0:0
160,136,66279,1,0,0:0:0
160,136,66383,1,0,0:0:0
160,136,66486,6,0,B|136:200|64:216,1,112.5,2|0,0:0|0:0,0:0:0
24,224,66900,1,8,0:0:0
120,288,67107,1,0,0:0:0
216,224,67314,2,0,B|368:224,1,150,2|8,0:0|0:0,0:0:0
432,128,67935,1,0,0:0:0
432,128,68038,1,0,0:0:0
432,128,68141,6,0,B|384:176|304:160,2,112.5,2|0|0,0:0|0:0|0:0,0:0:0
336,56,68969,2,0,B|272:80|208:32,2,112.5,2|0|0,0:0|0:0|0:0,0:0:0
256,144,69797,6,0,B|160:184,1,75,2|0,0:0|0:0,0:0:0
152,224,70107,2,0,B|88:288,1,75,2|0,0:0|0:0,0:0:0
96,336,70417,1,0,0:0:0
216,320,70624,1,2,0:0:0
236,336,70728,1,2,0:0:0
260,345,70831,1,2,0:0:0
284,347,70935,1,2,0:0:0
309,342,71038,1,0,0:0:0
408,256,71245,6,0,B|324:239|307:129,1,150,2|0,0:0|0:0,0:0:0
272,72,71866,1,8,0:0:0
232,160,72072,1,0,0:0:0
184,64,72279,1,2,0:0:0
136,168,72486,1,0,0:0:0
88,56,72693,1,8,0:0:0
32,168,72900,6,2,B|88:240|24:328,1,150,6|2,0:0|0:0,0:0:0
160,304,73521,2,0,B|168:256|152:208,1,75,8|2,0:0|0:0,0:0:0
280,208,73935,2,0,B|240:168|208:160,1,75,2|0,0:0|0:0,0:0:0
128,88,74348,1,8,0:0:0
248,56,74555,1,0,0:0:0
360,104,74762,6,2,B|384:168|384:168|368:256,1,150,2|8,0:0|0:0,0:0:0
264,312,75383,2,2,B|240:248|240:248|256:160,1,150,2|2,0:0|0:0,0:0:0
192,64,76003,1,8,0:0:0
192,64,76210,1,0,0:0:0
96,136,76417,2,0,B|48:208,1,75,2|0,0:0|0:0,0:0:0
176,208,76831,2,0,B|160:296,1,75,8|2,0:0|0:0,0:0:0
280,248,77245,2,0,B|304:304|368:312,1,112.5,2|0,0:0|0:0,0:0:0
424,312,77659,1,8,0:0:0
432,192,77866,1,0,0:0:0
360,96,78072,6,0,B|400:96|448:40,2,75,2|0|8,0:0|0:0|0:0,0:0:0
360,216,78693,2,2,B|280:240|208:184,1,150
256,80,79314,1,8,0:0:0
240,80,79417,1,0,0:0:0
224,80,79521,1,0,0:0:0
208,80,79624,1,0,0:0:0
192,80,79728,6,0,B|88:104,1,75,6|0,0:0|0:0,0:0:0
88,216,80141,2,0,B|184:192,1,75,8|2,0:0|0:0,0:0:0
280,160,80555,1,2,0:0:0
256,280,80762,1,2,0:0:0
368,240,80969,1,8,0:0:0
256,280,81176,1,0,0:0:0
256,280,81279,1,0,0:0:0
256,280,81383,6,0,B|168:296,1,75,2|0,0:0|0:0,0:0:0
80,224,81797,1,8,0:0:0
160,136,82003,1,0,0:0:0
160,136,82107,1,0,0:0:0
160,136,82210,2,2,B|240:120,1,75
352,112,82624,1,8,0:0:0
304,224,82831,1,0,0:0:0
200,280,83038,6,0,B|112:320|32:288,2,150,6|8|2,0:0|0:0|0:0,0:0:0
320,304,84072,1,2,0:0:0
352,192,84279,1,8,0:0:0
232,160,84486,1,0,0:0:0
232,160,84693,6,0,B|176:224,1,75,8|0,0:0|0:0,0:0:0
152,104,85107,2,0,B|80:144,1,75,8|0,0:0|0:0,0:0:0
80,264,85521,2,0,B|152:320,1,75,8|0,0:0|0:0,0:0:0
256,272,85935,1,8,0:0:0
272,272,86038,1,0,0:0:0
288,272,86141,1,0,0:0:0
304,272,86245,1,0,0:0:0
320,272,86348,6,0,B|400:256|408:160,1,150,6|8,0:0|0:0,0:0:0
336,64,86969,1,0,0:0:0
288,176,87176,2,0,B|264:216|208:216,2,75,0|2|8,0:0|0:0|0:0,0:0:0
208,88,87797,1,0,0:0:0
208,88,87900,1,0,0:0:0
208,88,88003,6,2,B|184:152|120:184,1,112.5
88,208,88417,2,0,B|104:288,1,75,8|0,0:0|0:0,0:0:0
224,288,88831,1,2,0:0:0
224,288,89038,1,0,0:0:0
344,264,89245,1,8,0:0:0
352,248,89348,1,0,0:0:0
360,232,89452,1,0,0:0:0
368,216,89555,1,0,0:0:0
376,200,89659,6,0,B|416:120,1,75,2|0,0:0|0:0,0:0:0
312,64,90072,2,0,B|264:160,1,75,8|0,0:0|0:0,0:0:0
160,112,90486,2,2,B|200:32,1,75
64,88,90900,2,0,B|16:184,1,75,8|0,0:0|0:0,0:0:0
152,216,91314,6,2,B|208:216|240:280|208:336,1,150,2|8,0:0|0:0,0:0:0
312,256,91935,2,2,B|284:302|316:366|372:366,1,150,2|2,0:0|0:0,0:0:0
387,350,92452,1,0,0:0:0
399,331,92555,1,0,0:0:0
409,310,92659,1,0,0:0:0
415,288,92762,1,0,0:0:0
417,265,92866,1,0,0:0:0
418,242,92969,6,0,B|426:154,1,75,2|0,0:0|0:0,0:0:0
344,80,93383,2,0,B|328:176,1,75,8|2,0:0|0:0,0:0:0
264,248,93797,1,2,0:0:0
152,288,94003,1,2,0:0:0
176,168,94210,2,2,B|104:216|24:200,1,150,8|2,0:0|0:0,0:0:0
216,48,95038,5,8,0:0:0
304,136,95245,1,0,0:0:0
368,240,95452,2,0,B|384:304,2,37.5
256,280,95866,2,0,B|256:328,2,37.5
280,160,96279,6,2,B|208:224|112:184,1,150,2|8,0:0|0:0,0:0:0
272,28,97107,1,0,0:0:0
356,92,97314,1,2,0:0:0
452,132,97521,1,8,0:0:0
376,192,97728,1,0,0:0:0
376,192,97831,1,0,0:0:0
376,192,97935,6,0,B|344:288,2,100,2|0|0,0:0|0:0|0:0,0:0:0
224,232,98762,2,0,B|192:328,2,100,2|0|0,0:0|0:0|0:0,0:0:0
112,128,99590,6,0,B|208:160|280:88,1,150,6|8,0:0|0:0,0:0:0
408,64,100417,1,0,0:0:0
336,112,100624,1,2,0:0:0
336,200,100831,1,8,0:0:0
408,248,101038,1,0,0:0:0
328,280,101245,2,0,B|248:296,1,75,2|0,0:0|0:0,0:0:0
112,256,101659,2,0,B|208:232,1,75,8|2,0:0|0:0,0:0:0
144,80,102279,1,2,0:0:0
224,120,102486,1,8,0:0:0
312,104,102693,6,2,B|336:184|296:272,1,150
208,304,103314,2,0,B|200:240|232:208,1,75,8|2,0:0|0:0,0:0:0
96,248,103728,2,0,B|112:192|144:160,1,75,0|2,0:0|0:0,0:0:0
216,128,104141,1,8,0:0:0
312,104,104348,1,0,0:0:0
312,104,104452,1,0,0:0:0
312,104,104555,2,2,B|400:112,1,75
392,208,104969,1,8,0:0:0
352,296,105176,1,0,0:0:0
296,224,105383,5,0,0:0:0
280,224,105486,1,0,0:0:0
264,224,105590,1,0,0:0:0
248,224,105693,1,0,0:0:0
232,224,105797,1,0,0:0:0
216,224,105900,1,0,0:0:0
200,224,106003,1,0,0:0:0
184,224,106107,1,0,0:0:0
168,224,106210,6,0,B|88:224,1,75,2|0,0:0|0:0,0:0:0
256,112,106831,2,0,B|160:112,1,75
400,136,107452,1,2,0:0:0
400,136,107659,6,0,B|419:185|375:237|323:245,1,150,0|0,0:0|0:0,0:0:0
224,208,108693,6,0,B|168:208,2,50
176,152,109107,2,0,B|120:152,2,50
248,136,109521,5,2,0:0:0
248,136,109728,1,0,0:0:0
368,112,110141,1,2,0:0:0
368,112,110348,1,0,0:0:0
392,232,110762,1,2,0:0:0
392,232,110969,1,0,0:0:0
272,256,111383,1,2,0:0:0
272,256,111590,1,0,0:0:0
152,216,112003,2,0,B|96:200|56:240,2,100,2|0|0,0:0|0:0|0:0,0:0:0
248,176,112831,6,0,B|304:200|352:176,1,75,6|0,0:0|0:0,0:0:0
432,144,113245,1,8,0:0:0
432,144,113452,2,2,B|376:208|416:304,1,150
320,288,114072,2,0,B|248:312,1,75,8|0,0:0|0:0,0:0:0
160,272,114486,2,0,B|144:168,1,75,8|0,0:0|0:0,0:0:0
256,208,114900,2,0,B|272:128,1,75,8|0,0:0|0:0,0:0:0
368,176,115314,2,0,B|400:96,1,75,8|0,0:0|0:0,0:0:0
464,48,115728,1,8,0:0:0
464,48,115831,1,0,0:0:0
464,48,115935,1,0,0:0:0
464,48,116038,1,0,0:0:0
464,48,116141,5,0,0:0:0
352,72,116348,2,0,B|256:104,1,75,2|0,0:0|0:0,0:0:0
232,200,116762,2,0,B|128:232,1,75,2|0,0:0|0:0,0:0:0
128,312,117176,2,0,B|64:328,2,37.5
224,288,117590,6,2,B|232:280|232:280|240:288|240:288|248:280|248:280|256:288|256:288|264:280|264:280|272:288|272:288|280:280|280:280|288:288|288:288|296:280|296:280|304:288|304:288|312:280|312:280|320:288|320:288|328:280|328:280|336:288|336:288|344:280|344:280|352:288|352:288|360:280|360:280|368:288|368:288|376:280|376:280|384:288|384:288|392:280|392:280|400:288|400:288|408:280|408:280|416:288|416:288|424:280|424:280|432:288|432:288|440:280,1,300

panic while parse some early time beatmaps

It panicked at libosu-0.0.26\src\timing\point.rs:96:22.error:index out of bounds: the len is 5 but the index is 5',
Seems not all of timing point values available for those beatmaps.
https://osu.ppy.sh/wiki/en/Client/File_formats/Osu_%28file_format%29#timing-points

Nintendo - Super Mario Bros. (TECHNO remix) (Rolled) [Easy].osu

osu file format v4

[General]
AudioFilename: MARIO.mp3
AudioLeadIn: 1512
AudioHash: d9dc13016ca3aeb5acb727b5a51c1d08
PreviewTime: -1
SampleSet: Normal
EditorBookmarks: 9164,9594,9881,10025,10168,10312,10743,11030,11173,11317,11460,11891,12178,12321,12465,12608,40453

[Metadata]
Title:Super Mario Bros. (TECHNO remix)
Artist:Nintendo
Creator:Rolled
Version:Easy

[Difficulty]
HPDrainRate:3
CircleSize:3
OverallDifficulty:2
SliderMultiplier: 1
SliderTickRate: 1

[Events]
0,0,"realmario.jpg"
3,0,163,162,255

[TimingPoints]
2275,574.10774088604,4,1,0

[HitObjects]
128,152,2275,1,0,
424,152,3423,1,0,
288,304,4571,1,0,
224,112,5719,1,0,
56,216,6867,6,0,B|56:216|168:272|280:264|360:224,1,300
440,208,9164,2,0,B|440:208|424:128|352:88|272:72,3,200
48,80,14044,5,0,
48,176,14618,1,0,
144,176,15192,1,0,
144,272,15766,1,0,
240,280,16340,5,0,
240,176,16914,1,0,
336,176,17488,2,0,B|336:176|400:160|432:112,2,100
320,72,19211,5,0,
216,72,19785,1,0,
112,72,20359,1,0,
112,168,20933,1,0,
112,264,21507,1,0,
208,264,22081,2,0,B|208:264|328:296|408:264,2,200
240,168,24952,5,0,
192,80,25526,1,0,
288,80,26100,2,0,B|288:80|328:48|408:88,1,100
400,176,27248,1,0,
400,272,27822,2,0,B|400:272|347:316|286:334|168:320,1,200
144,248,29545,5,0,
224,184,30119,1,0,
144,120,30693,1,0,
232,80,31267,6,0,B|232:80|320:56|376:80,1,100
400,136,32415,2,0,B|400:136|336:192|288:192,1,100
216,184,33563,2,0,B|216:184|200:240|240:304,1,100
328,272,34712,1,0,
472,128,35860,6,0,B|472:128|384:56,2,100
392,192,37582,1,0,
320,120,38156,2,0,B|320:120|248:208,2,100
224,80,39879,1,0,
256,192,40453,12,0,46194
256,40,47342,1,0,

Hirano Aya - Hare Hare Yukai (Kharl) [Easy].osu

osu file format v3

[General]
AudioFilename: hare.ogg
AudioLeadIn: 0
AudioHash: 602aefe15ea4daab8c05541173ab52d8
PreviewTime: 29373
SampleSet: Normal
CustomSamples: 0
EditorBookmarks: 7396,18559,29722,40885,51699

[Metadata]
Title:Hare Hare Yukai
Artist:Hirano Aya
Creator:Kharl
Version:Normal

[Difficulty]
HPDrainRate:3
CircleSize:5
OverallDifficulty:4
SliderMultiplier: 1.1
SliderTickRate: 2

[Events]
1,0,"Hare Hare Yukai.avi"
3,0,0,0,0

[TimingPoints]
410,348.837209302326

[HitObjects]
123,176,7735,2,0,B|123:176|288:176,1,165
397,240,9130,2,0,B|397:240|232:240,1,165
96,264,10177,6,2,B|96:264|96:161|184:104,1,165
264,72,11049,1,0,
352,192,11572,2,2,B|352:192|297:286|184:256,2,165
216,104,13316,5,0,
112,160,13665,1,0,
112,160,13840,1,0,
176,256,14189,1,0,
304,176,15061,2,0,B|304:176|192:176,1,110
192,288,15758,2,2,B|192:288|360:288,2,165
128,200,17154,6,4,B|128:200|88:144|128:96,2,110
240,200,18200,1,0,
296,200,18374,1,0,
352,200,18549,6,2,B|352:200|352:72,1,110
248,88,19247,1,0,
56,88,19944,2,2,B|56:88|56:216,1,110
160,200,20642,1,0,
328,232,21340,6,2,B|328:232|200:232,1,110
112,232,22037,1,0,
176,104,22561,2,2,B|176:104|189:30|280:56,2,110
272,152,23607,1,0,
272,152,23782,1,4,
352,256,24130,6,0,B|352:256|176:256,1,165
304,200,25177,1,0,
304,200,25351,1,4,
168,152,25875,1,0,
168,152,26049,2,2,B|168:152|134:127|145:77|184:39|256:80,1,165
256,192,26921,12,0,27619
328,128,28142,1,6,
256,56,28491,1,6,
184,128,28840,1,2,
184,128,29014,1,6,
312,192,29712,6,2,B|312:192|480:192,2,165
256,192,30933,1,0,
256,304,31282,1,0,
200,280,31456,1,0,
160,240,31630,1,6,
64,104,32503,5,0,
48,152,32677,1,2,
88,248,33026,1,0,
136,280,33200,1,2,
232,288,33549,1,0,
232,288,33723,1,2,
264,192,34072,2,6,B|264:192|264:120,2,55
144,280,34944,6,2,B|144:280|80:248|56:152|88:104|128:72,1,220
152,56,35816,1,0,
296,56,36340,6,2,B|296:56|360:88|384:184|352:232|312:264,1,220
288,280,37212,1,0,
144,296,37735,6,2,B|144:296|32:240,1,110
40,112,38607,1,0,
112,184,38956,1,0,
200,136,39305,5,6,
312,136,39654,5,6,
200,240,40003,5,6,
312,240,40352,5,6,
360,112,40875,6,2,B|360:112|488:232,2,165
272,208,42444,1,0,
312,248,42618,1,0,
272,288,42793,1,4,
328,152,43665,6,0,B|328:152|360:128|368:96,4,55
200,96,44886,1,0,
128,184,45235,1,0,
240,192,45584,1,4,
296,296,46107,6,2,B|296:296|424:296,1,110
400,168,46979,1,0,
320,40,47503,2,2,B|320:40|192:40,1,110
184,176,48375,1,0,
264,248,48723,1,0,
112,120,49247,5,4,
112,120,49596,1,4,
112,120,49944,1,4,
120,264,50642,2,2,B|120:264|64:232|40:168,1,110
46,184,51165,1,4,
160,80,51689,5,0,
160,184,52037,2,2,B|160:184|180:268|256:336,2,165
280,184,53433,6,2,B|280:184|256:264|176:320,2,165
376,112,54828,6,2,B|376:112|339:14|224:40,1,165
160,112,55700,1,0,
168,168,55875,1,0,
264,232,56223,1,6,
424,152,57444,5,0,
336,224,57793,1,6,
336,224,57968,1,6,
200,224,58491,5,6,
200,224,58666,1,6,
320,176,59189,5,2,
320,176,59363,1,2,
320,176,59538,1,6,
320,176,59712,1,6,
280,224,61282,5,2,
216,136,61630,6,2,B|216:136|168:96|104:112,1,110
80,216,62328,2,2,B|80:216|120:272|184:280,1,110
264,216,63026,5,2,
336,136,63375,1,6,

Unify time types

Right now there's 4 different types used for time.

  • TimestampMillis (wrapper over i32)
  • i32 in object start time
  • i64 in replay action time
  • f64 in slider duration

It's really verbose to be casting between all of them, an i32 is sufficient for almost all use cases (only breaks above 25 days).
I think it should be a u32 if possible, but I don't know if negative times are used anywhere.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.