Git Product home page Git Product logo

karaoke's Introduction

karaoke --dev

CodeFactor Build status Crowdin Waifu GitHub last commit Tagged Release dev chat Total lines Dashboard Star History Chart airpods pro airpods 2

The source code of the karaoke ruleset, running on osu!lazer.

Status

This project is still not very stable, so we recommend looking around this project to find new features instead of actually using it.

Also:

  • This project doesn't have much of a demo currently available. And most demos are Japanese only.
  • This project is not very stable, especially in the editor.
  • Beatmap does not support save feature.

Reccommend using this ruleset until support batch import song.

If you run into any problems, you can shoot us an email ([email protected]) or send me a message on Discord. I will typically reply faster on Discord.

And feel free to report any bugs if found.

How to run this project

See this tutorial to get the ruleset from the existing build.

Or you can compile it yourself: release build then copy Packed/osu.Game.Rulesets.Karaoke.dll into your ruleset folder

License

This repo is covered under the GPL V3 license. If you plan on using this repo for commercial purposes, please contact us at ([email protected]) to get permission first.

Using this repo to create, use or using the beatmap format to distribution any PIRATED, unauthorized karaoke songs/beatmaps is absolutely forbidden. This repo is trying to make song author(or people has copyright) ability to distribution their songs with karaoke format without any restriction, not for copycat to make thing with copyright issue.

Thanks to

karaoke's People

Contributors

5idereal avatar andy840119 avatar joehuu avatar kanseiyume avatar lovelya72 avatar lumpbloom7 avatar squiddu avatar susko3 avatar zoogies avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar

karaoke's Issues

Clean-up mod test case

Implement missing mod's test case.
KaraokeModAutoplay :

  • Should be tested but seem has some issue in test case's timing.

KaraokeModDisableNote :

  • Add a test to create playfield and check no notes in playfield.

KaraokeModFlashlight :

  • Check flashlight's position if scrolling position changed.
  • Left, right, left to right, right to left.

KaraokeModHiddenNote :

  • Check hidden note's time, maybe just follow how TestSceneOsuModHidden works.

KaraokeModNoFail :

  • Maybe will have official test case so ignore it now.

KaraokeModPerfect :

  • Just follow how TestSceneOsuModPerfect works.

KaraokeModPractice :

  • Test if plactice and playback overlay is exist >_>

KaraokeModSnow and KaraokeModWindowsUpdate

  • Will be merged into TestSceneKaraokeModFun and just test for fun.

KaraokeModSuddenDeath :

  • Maybe will have official test case so ignore it now.

Solve high ram usage while using microphone

Describe the new feature:
High ram usage while using microphone.
I'm not sure is saiten system or graph line use memory.
Need to make a research.

Proposal designs of the feature:
It's time to learn how to use profiler.

Create TestSceneSaitenNoteInput

Should make a list of test case to make sure saiten judgement is stable.
See how TestSceneHoldNoteInput works in mania ruleset.

Implement column skin component

Part of #48
TODO :

  • Create LegacyColumnBackgroundPiece and DefaultColumnBackgroundPiece (Just a box with default color)
  • Create LegacyStageBackgroundPiece and DefaultStageBackgroundPiece(Just a box with default color)
  • Create LegacyHitTargetHeadPiece and DefaultHitTargetHeadPiece (Just a triangle with default color)
  • Create LegacyHitTargetTailPiece and DefaultHitTargetTailPiece (Just a triangle with default color)
  • Create LegacyHitTargetBodyPiece and DefaultHitTargetBodyPiece (Just a rectangle with default color)

Add singer editor

Describe the new feature:
Inspire in #21 , it's time to write a new test case to pre-create singer editor.

Proposal designs of the feature:

  1. Define singer class in Objects namespace(will moved into Beatmaps namespace).
  2. Make an editor can select, add, and remove singer.
  3. Can edit singer name, .....

.

Wait, maybe combine singer and style at single page.
Wait until draw a prototype.

Implement note skin component

Part of #48
TODO :

  • Create LegacyNoteBorderHeadPiece
  • Create LegacyNoteBorderTailPiece
  • Create LegacyNoteBorderBodyPiece and DefaultNoteBorderBodyPiece
  • Create LegacyNoteBackgroundHeadPiece
  • Create LegacyNoteBackgroundTailPiece
  • Create LegacyNoteBackgroundBodyPiece and DefaultNoteBackgroundBodyPiece

Together saiten conversion logic.

簡單來說
Beatmap有一套紀錄,紀錄原始聲音到可以被踩點需要多少位移和縮放
玩家也可以設定自己的位移和縮放,不然有些音太高或是太低會唱不上去
.
而在replay record時也會記錄下來當前的位移縮放
.
所以
平常遊玩時 :
玩家聲音 -> [Beatmpa紀錄換算] -> [玩家記錄換算] -> 顯示在採點UI上的數據
回播時
玩家聲音 -> [Beatmpa紀錄換算] -> [Replay季錄換算] -> 顯示在採點UI上的數據
大概是這樣
.
有點難用英文表示...

Mapping lyric style to singer

Describe the new feature:

  1. Define singer
  2. Mapping singer to it's style.

Proposal designs of the feature:
E.g :
if style == 1, means it's sing by singer1,
If style ==2, means it's sing by singer2,
if style == 3, means it's sing by both singer1 and singer2

Weird note skin effect

Found in #51
image
and
image
First one is because the origin's image is too long, maybe use extend instead of scale.
Second one has no idea 🤔

Create singer autoplay mod

Inspire from #96

How to implement:

  1. Create KaraokeSingerAutoGenerator, pass Track as parameter
  2. Create KaraokeModSingerAutoplay
  3. KaraokeModSingerAutoplay should be next of KaraokeModAutoplay in mod selection.

Romaji encode/decode support

Describe the new feature:
Support romaji decode/encode.

Proposal designs of the feature:
Support romaji decode/encode.

Add CI support

Add CI to check

  • Compile error
  • All testcase should be passed.
  • (If can) Check ppy.osu.Game is latest.

Disable microphone usage

Disable microphone in some place :

  1. Has IApplicableToMicrophone and Enabled == false,
  2. Is replay mode.

Remove changelog's preview.

  1. Display latest change log when opening the change log overlay.
  2. Remove preview because it will need more connection then before.

Add license

Add license.
Mainly like :
If any project use this project, should be open source also.

Add android and iOS support

Although it's OK without android and iOS support.
But it'll be better to add osu.Game.Rulesets.Karaoke.Tests.Android and osu.Game.Rulesets.Karaoke.Tests.iOS to test microphone in android and iOS device.

Hide HUDOverlay is beatmap is not scorable

  1. add an extension to check this beatmap can be scored or not (check by has any note or not).
  2. Hide the HUDOverlay if 1. matched or Mod's ScoreMultiplier == 0(need to check).

Make Note into lyric's nested object

Inspire from #69
For better management in the lyric maker, note should be lyric's nested object.
.
How to :

  1. Initial created note in encoder should be stored into NestedHitObjects.
  2. ApplyDefaultsToSelfshould save all nestedHitObjects because ApplyDefaults will clear all nasted object, then restore it with CreateNestedHitObjects(or have better way?)
  3. CreateNestedHitObjects should apply note's real time by timetag's time
  4. Think about how to create drawable note and put it's into drawable
  5. Judgement should work fine.
  6. This branch can be merged into master.
    .
    Notice :
    See how Slider do in osu ruleset.

Convert SynthV format file.

image
Now i'm sure it's json file.
So it's possible to import SynthV's project file and turn into karaoke format.

Design new skin roles

There are two place have skin :

  1. dll(define base size)
  2. beatmap(override color or size)

.

And because most of the Layout or Text skin part are same, so we define first record #0 is base skin
Only difference will be apply.

.

Also, add ICombinable<T> interface for those skin component can be mergable.
E.g :
Finally Beatmap text skin 3 (Means sing be singer 1 and singer 2) will be generated like :

dll_0.Combine(Beatmap_0).Combine(target or null).

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.