2021.0509
· ☕ 1 min read
Achievement \56 stars in repo/ Code quality Remove singer property in note object. This property can get from parent lyrics directly. karaoke Rename EditRuleset and EditPlayfield to use the full Editor keyword, follow how official do. karaoke Separate note playfield for letting code be more re-usable. karaoke Clean up code. karaoke Editor Implement check some property in lyric. karaoke Implement note checker. karaoke Implement overlay in lyric editor.

2021.0417
· ☕ 1 min read
Achievement \50 stars in repo/ Editor Adjust translate editor. karaoke Add official AI mod support. karaoke Implement translate AI mod check. karaoke Gameplay Fix gameplay cannot go to the result screen. karaoke Setting Implement karaoke config screen. karaoke Should have color theme in each section. karaoke Fix layout looking in karaoke config screen. karaoke Create language setting control in config. karaoke Implement font selection in karaoke config.

2021.0320
· ☕ 1 min read
Achievement Add logo to readme. karaoke Code quality Add some test case for caret position calculation. karaoke Editor Implement ruby/romaji caret position calculation algorithm. karaoke

2021.0228
· ☕ 1 min read
Code quality Move some tooltips out of Graphics/Cursor namespace. karaoke Re-write TimeTagsUtilsTest test. karaoke Combine LyricEditor and LyricEditorStateManager. karaoke Refactor cursor position algorithm in lyric editor. karaoke Refactor lyric editor. karaoke Make calcuoation caret position abstract for better maintainance. karaoke Editor Adjust color in lyric editor. karaoke Show alert checker in lyric editor. karaoke Combine cursor and moving cursor position into single bindable in lyric editor. karaoke Auto move position while change selected lyric in lyric editor.

2021.0208
· ☕ 1 min read
Code quality Should use current = bindable in control. karaoke Combine time tag manager with lyric manager. now lyric manager is focused on any property change in the lyric object. karaoke Use better way to get the list of lyrics in the lyric editor. karaoke Replace Enum.GetValues with utils. karaoke Fix Fix language selector not register in the editor. karaoke Editor Implement edit singer info. karaoke Enable to skip the start or end tag in record mode.

2021.0123
· ☕ 1 min read
Beatmap Create karaoke beatmap encoder/decoder for testing purpose. karaoke Implement conversion for color object. karaoke Remove singer metadata file in beatmap. karaoke Create IHasOrder to deal with order in OsuRearrangeableListContainer. karaoke Code quality Refactor overlay. karaoke Refactor input manager. karaoke Editor Implement UI part in generator config. karaoke Fix edit mode not apply bindable config. karaoke Add customize menu-bar in editor. karaoke Move display config into menu item.

2021.0109
· ☕ 1 min read
Auto-Generator Implement Japanese lyric romaji generator. karaoke Separate auto-generator selector. karaoke Implement base layout generator. karaoke Code quality Has time-tag format in the test case. karaoke Separate utility about dealing with single and plural objects. karaoke Remane from time tag index to text index name. karaoke Use regex to detect issues or usernames in the change-log screen. karaoke Editor Implement input lyric mode. karaoke Enable to add or remove language from translate editor.

2020.1226
· ☕ 1 min read
Code quality Update config from how lazer have. karaoke Editor Implement cursor in the lyric editor. karaoke Implement click the time-tag to move the cursor. karaoke Press space to set the current time in time-tag. karaoke Able to split lyrics in the lyric editor. karaoke Create a state manager for managing cursor position or mode in the lyric editor. karaoke Enable to delete text by mouse position. karaoke Add edit lyric step in lyric import step.

2020.1212
· ☕ 1 min read
Auto-Generator Implement auto-detect language in the lyric importer. karaoke Create time-tags generator for Chinses lyrics. karaoke Improve time-tag generator for Japanese lyrics with ruby. karaoke Beatmap Implement Ruby and Romaji tag serializer, which allows to save them with better format. karaoke Implement tome tag serializer. karaoke Implement bindable dictionary for better control bindable with dictionary format. karaoke Use culture info instead of language id in translate. karaoke Change time tag from tuples to object.

2020.1128
· ☕ 1 min read
Achievement Implement lyric importer to handle a list of steps need user to do in order. Code quality Clean-up code. karaoke Beatmap Create TimeTagsConverter to support to encode/decode time-tag with json format. karaoke Add language id in lyric object do define which laguage lyric is. karaoke Editor Implement lyric importer. Base implementation. karaoke Implement drag screen in lyric import. karaoke Add lyric editor’s step two.