Skip to content
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

ソング:ループの機能追加 #2506

Open
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

romot-co
Copy link
Contributor

@romot-co romot-co commented Jan 26, 2025

内容

以下の内容を行います

  • ループ範囲をドラッグおよびメニューで追加・削除できるようにする
  • ループをON/OFFできるようにする
  • ループ設定をプロジェクトに保存し復帰できるようにする
  • ミニマップ(トラックリスト)からもループすることを見越す
  • storybookにLoopLaneを追加

関連 Issue

ref #2224
close #2224

スクリーンショット・動画など

2025-01-26.20.46.43.mp4
スクリーンショット 2025-01-26 20 50 04 スクリーンショット 2025-01-26 20 49 44

その他

  • マージの解決がややこしかったため、別ブランチ・Issueとして作成いたします
  • Grid/ValueChanges/Loopなどレーンごとにコンポーネントとして分割(...逆に複雑になった気もしますが、コンテキストメニュー制御などがややこしかったため
  • Containerにロジック/Presentationはなるべくステートレスかつ表示のみの責務を目指したつもり

@romot-co romot-co requested a review from a team as a code owner January 26, 2025 12:02
@romot-co romot-co requested review from Hiroshiba and removed request for a team January 26, 2025 12:02
@romot-co romot-co marked this pull request as draft January 26, 2025 12:03
@romot-co romot-co changed the title ループの機能追加 ソング:ループの機能追加 Jan 26, 2025
@voicevox-preview-pages
Copy link

voicevox-preview-pages bot commented Jan 26, 2025

🚀 プレビュー用ページを作成しました 🚀

更新時点でのコミットハッシュ:5cc9979

@Hiroshiba
Copy link
Member

コンフリクトの解決とか、不明な点とかあれば何でも聞いてください!!!!

@romot-co romot-co marked this pull request as ready for review January 27, 2025 15:03
@romot-co
Copy link
Contributor Author

@Hiroshiba
おつかれさまです!(おてすきで)
テストにつきまして、engineMockのあたりがわかっておらず…どのようにすればよさそうでしょうか…!
https://github.com/VOICEVOX/voicevox/actions/runs/12991557907/job/36229342596?pr=2506

@Hiroshiba
Copy link
Member

テストにつきまして、engineMockのあたりがわかっておらず…どのようにすればよさそうでしょうか…!

ちょっと試した感じ、変更前に戻せばよさそうでした!!
勝手ながらコミット追加させていただきます! 🙏

聞いてくださってありがとうございます!!! また何でも聞いてください!!!

@romot-co romot-co requested a review from Copilot January 28, 2025 12:04
@romot-co
Copy link
Contributor Author

storybookに問題出ているのでそちら修正予定

@romot-co
Copy link
Contributor Author

romot-co commented Jan 30, 2025

そのままやるとSequencerRulerのContainer責務重すぎ&実装グダグダになったので子にそれぞれミニContainer持たせてロジックわける形にしたものの
親Container+各ロジックはcomposableに切り出す+各子コンポーネントはPresentation相当のみ…もありだったかも

@romot-co
Copy link
Contributor Author

とりあえずStorybookをstore使う形で以前と同様に動作させた
screenshot-localhost_6006-2025_01_31-02_30_07

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ちょっとコード眺めさせていただきました!
Container / Presentation / コンポーザブルをどこをどうするかめちゃくちゃ難しいですね!!!!!
どうすればいいか全然思いつかない!!!

ちょっと迷走させてしまう可能性がある気がするのですが、結構思いついたことベースでコメントさせていただくと・・・

  • ルーラーの中の表示物をそれぞれContainerにするのは、割りとアリ・・・・な気がする・・・?
    • もちろんコンポーザブルでも良さそうだけど、どっちがいいのか。。。。。
    • いやーーーーーーわっからない。。。。。
  • story内でPresentationのみを見たほうが良いか(Containerは含めないほうが良いか)
    • やはり理想的にはPresentationのみ、useStoreなしが良さそうな気はする
    • けどパラメーターが膨大なので本当にそれが正しいのかわからない。。。
  • もしかしたら人間が理解しやすいデータをPresentationに渡し、計算はPresentation内で行った方が良い・・・・・・・・?
    • 例えばテンポや拍子の配列や倍率を渡して、Presentation内で座標を求めるとか。。。。
    • ChatGPT君に聴いたところ、計算はContainerでやりましょうと言われました 😇

全然まとまらなかったです。。。
ContainerとPresentationの切れ目というか、Presentation側のI/Oというかを何にすればいいのかが難しい。。。

あ! stories作るのはすごく良いと思いました!!!
右クリックメニューもコンテナから与えるの思いつかなかったです。なるほどぉ。

ちょっとこの辺りの設計に関して、ルーラーのstoriesを作ったことのある @sevenc-nanashi さん的にはどうでしょう・・・・・・?
(どうと言われてもって感じかもですが。。。。)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ソング: ループ範囲を設定できるようにする
3 participants