o/
Fork of osu!lazer (PLEASE CHECK THEM OUT!!!)
Instead of circle clicking, you type out the lyrics synced up with the song
Requires the .NET SDK; see
global.json for the pinned version.
git clone https://github.com/Sparpp/typebeat
cd typebeat
dotnet run --project typebeat.Desktop
Or open typebeat.sln (typebeat.Desktop.slnf for the desktop-only subset) in
your IDE.
The game's art, audio and fonts come from the
typebeat.Game.Resources
NuGet package. You don't need to download it yourself: the first build (or
dotnet restore) fetches it from nuget.org along with the other dependencies,
at the version in
typebeat.Game/typebeat.Game.csproj.
Runtime (the game):
| Variable | Effect |
|---|---|
TYPEBEAT_API_URL |
Base URL of the type!beat server, for example http://localhost:5089 while developing against a local server. Redirects every online call (API, website links, downloads); a trailing / is ignored. Unset, every build uses the production server. Debug builds never submit scores to a production host (the play is still saved locally, and a notification says so); pointing this at any other server re-enables submission there. |
OSU_EXTERNAL_UPDATE_PROVIDER |
Any non-empty value says a package manager owns the install: the Velopack updater and the per-launch file association registration are skipped. Inherited from osu!lazer. |
OSU_WEBSOCKET_SERVER |
1 starts the local websocket server on the desktop client. Off otherwise. Inherited from osu!lazer. |
OSU_WEBSOCKET_SERVER_PORT |
Port the websocket server listens on when OSU_WEBSOCKET_SERVER=1. Default 49727; a value that is not a number is ignored. Inherited from osu!lazer. |
OSU_EXTERNAL_UPDATE_STREAM |
Fixes the release stream (Lazer or Tachyon, case-insensitive) for an install managed through OSU_EXTERNAL_UPDATE_PROVIDER, instead of the player's setting. Inherited from osu!lazer. |
OSU_DISABLE_ERROR_REPORTING |
1 skips setting up the error reporter. Inherited from osu!lazer. |
Tests (typebeat.Game.Rulesets.TypeBeat.Tests), for the real-map pins whose map files are not in this repo:
| Variable | Effect |
|---|---|
TYPEBEAT_MAPS_DIR |
Directory holding the real-map fixtures. Tests that need it skip when it is unset or the file is absent. |
TYPEBEAT_GAP_OSU_DIR |
Directory of .osu fixtures for the instrumental-gap, syllable and autoplay pins. Those skip when it is unset. |
TYPEBEAT_TTML_DIR |
Directory of .ttml examples for the shipped-TTML test. Unset, the test looks for a ttml/ folder by walking up from the test assembly; a directory that does not exist counts as missing. |
TYPEBEAT_REQUIRE_FIXTURES |
1 makes a missing fixture fail the test instead of skipping it. Leave it unset where the fixtures are not present. |
| Path | What |
|---|---|
typebeat.Game |
Game shell, menus, editor, and online client (shared osu!-framework layer) |
typebeat.Game.Rulesets.TypeBeat |
The typing ruleset: scoring, lyric stage, timing engine |
typebeat.Desktop |
Desktop entry point and packaging |
lyriclab/ |
Standalone Python tool that auto-aligns lyrics to audio into word/syllable timing |
type!beat is MIT-licensed; see LICENCE. It is a derivative work of osu!lazer, © ppy Pty Ltd, also under the MIT Licence; that copyright notice is retained as required.
The "osu!" name and logo are trademarks of ppy Pty Ltd and are not covered by the MIT Licence.