add Rythm.substitute API, add BasicRythm mode with very limited feature, rewrite SimpleRythm and ToString