I made this with a custom-made engine, which is basically a wrapper of DirectX 9 with basic support of rhythm mechanics and Lua scripting.