Sorry for the post being some 2 years late
I started an automatic timing program project in Sept 2010 (you may download the latest version from my user page. I was just too lazy to make a GUI ). I did that for fun at first, but later it turned out that it could detect timing with quite reasonable accuracy. I'm interested if it could find its way as an osu! plugin or part of the editor, providing a starting point for timing.
Here are some of yet unsolved problems/unimplemented features and my concerns.
I started an automatic timing program project in Sept 2010 (you may download the latest version from my user page. I was just too lazy to make a GUI ). I did that for fun at first, but later it turned out that it could detect timing with quite reasonable accuracy. I'm interested if it could find its way as an osu! plugin or part of the editor, providing a starting point for timing.
Here are some of yet unsolved problems/unimplemented features and my concerns.
- An algorithm to detect where the downbeat lies. It currently sets the offset on an arbitrary beat.
- A proper and accurate way to determine if BPM, say ***.002 or ***.999, is actually an integer or is it really a bit off, and round the result if desirable.
- Since osu! and osu!sdk are written in C#, while dsp is floating point operation heavy, I'm concerned that it might become several times slower than the current C++ implementation if it is to be ported to C#.
- Where to set the "offset offset", i.e. how much is the offset used in mapping off the actual beats in audio waveform. Afaik a universally agreed reference point doesn't exist (even tutorial is considered off timing by BATs), and the de facto standard is how the community sets it, which is prone to drift over time, especially so during 2007-2009. I set the "offset offset" in my program to -22.5ms in late 2010, matching the average of some dozen newest ranked maps at that time.
It doesn't work on songs with multiple timing sections.Anyway I would probably never try to do this