-
Notifications
You must be signed in to change notification settings - Fork 309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ソングエディタの編集状態を保存できるようにする #1829
ソングエディタの編集状態を保存できるようにする #1829
Conversation
src/store/project.ts
Outdated
prevAudioKey = await context.dispatch("REGISTER_AUDIO_ITEM", { | ||
prevAudioKey, | ||
audioItem, | ||
}); | ||
} | ||
|
||
const { tpqn, tempos, timeSignatures, tracks, phrases } = | ||
parsedProjectData.sing; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
とりあえず一旦コメントです・・・!
src/store/project.ts
Outdated
value.state = "WAITING_TO_BE_RENDERED"; | ||
context.commit("SET_PHRASE", { phraseKey: key, phrase: value }); | ||
} | ||
context.dispatch("RENDER"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これを実行する責務はLOAD_PROJECT_FILE
を呼んだ側かも
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほどです、確かにそうですね...!
修正しようと思います....!
src/store/project.ts
Outdated
value.state = "WAITING_TO_BE_RENDERED"; | ||
context.commit("SET_PHRASE", { phraseKey: key, phrase: value }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
stateが入っているものをproejctとして保存するのちょっと違和感あるかもです!
phraseはレンダリング用に作られるキャッシュで、保存しなくても良いものかも・・・?
(@sigprogramming さんが詳しいかも)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
あ、phrase内にqueryがあるから違うかも。stateだけ保存しないようにするのが良い気がしました!
(たぶんphraseにidを持たせて、phraseStateだけメモリに持つ構成が合ってるかも)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ピッチやボリュームの編集データはqueryとは別で持つ形になると思うので、phraseは保存しなくても良いかなと思います!(キャッシュの保存についてはまた後ほど考慮できれば…!)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほどです...!
ピッチやボリュームのデータはリクエストする度に差異が発生する可能性があるので、できれば今の内から一度リクエストされたものは保存するようにと思っていたのですが、一旦phrases
は保存しない方向で行きたいと思います!
Discordで議論した結果をまとめておきます 議題: ソングとトークでプロジェクトを分けて保存すべきか?議論の始まり: https://discord.com/channels/879570910208733277/893889888208977960/1204721860189757460
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
いろいろコメント書いていますが大枠LGTMです!
プロジェクトファイル実装したい気持ちはあるのですが、ちょっとコードぐちゃっとしそうなので、少しリファクタリングしてから実装できればと思ってます。
f2d6289
to
c82a4e5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!! お疲れ様でした!!
1点、トーク側でソングを含むプロジェクトを読み込んだ後にソングに移動するとノートが表示されてない挙動を見つけました!
簡単に解決できそうなら倒して頂けると・・・!難しそうならissueで良いのかなと思ってます。
@sigprogramming プロジェクトロード部分のとこだけ再度レビューお願いできると心強いです・・・!!
これは検証したところ、一度もソング画面を開かずにソングプロジェクトを読み込むと、ソング画面を開いた際に あと、そこを見ていた際にvolumeが保存されないことに気づいたのですが、出力結果に影響を与えるvolumeをちゃんと保存した方がいいなと思いました。 |
なるほどです! issue作成で良いと思います!!
右上のvolumeですよね。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ほぼLGTMです!
#1842 でnotesKeyShift
とvoiceKeyShift
が追加されたので、これらも保存・ロードできると良いかもと思いました!(別PRで行っても良いと思います)
Co-authored-by: Hiroshiba <hihokaruta@gmail.com>
Co-authored-by: Hiroshiba <hihokaruta@gmail.com>
Co-authored-by: Hiroshiba <hihokaruta@gmail.com>
This reverts commit 97d68a8.
Co-authored-by: Sig <sigprogrammer@gmail.com>
a3d3147
to
c83b1c7
Compare
コンフリクトの解消と、それに合わせた |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!!
お疲れ様でした!!良い実装になったように感じます!!!
トーク側でソングを含むプロジェクトを読み込んだ後にソングに移動するとノートが表示されてない
こちらのissue 作成お任せしてしてもよろしいでしょうか 🙇
(#1829 (comment) の件)
内容
題の通りです。ソングエディタの状態をプロジェクトとして保存できるようにします。
また、これに合わせてプロジェクトの構造を変更しました。
関連 Issue
close #1781
スクリーンショット・動画など
その他
zodのスキーマを有効活用するために一部リファクタリングを行っています。
また、現状ではソング部分のプロジェクトの変更検知を行っていない(変更検知がCOMMANDに依存しているため)ので、変更していてもプロジェクトを保存せずに閉じれてしまう問題があります。wipでもいいので、ソング部分のプロジェクト変更検知機能を付けるか迷ったのですが、変更前のプロジェクトを保持しておく以外に変更検知をする手段が思いつかなかったので、このPRでは取り組んでいません。