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

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

Open
3 tasks
romot-co opened this issue Aug 15, 2024 · 20 comments · May be fixed by #2281
Open
3 tasks

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

romot-co opened this issue Aug 15, 2024 · 20 comments · May be fixed by #2281
Assignees

Comments

@romot-co
Copy link
Contributor

内容

ループ範囲を設定できるようにする

Pros 良くなる点

  • 特定の範囲を繰り返し聞きながら調整できる

Cons 悪くなる点

  • おそらくなし

実現方法

ルーラに付与

VOICEVOXのバージョン

0.2.2?

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

ミニマップなどが追加されても問題のないような形にする
トラック単位ではなくグローバルに持たせる

@romot-co romot-co self-assigned this Aug 15, 2024
@romot-co romot-co changed the title シング: ループ範囲を設定できるようにする ソング: ループ範囲を設定できるようにする Oct 1, 2024
@romot-co
Copy link
Contributor Author

romot-co commented Oct 1, 2024

進捗:
とりあえずループエリアを設定できるようにした

  • おそらく?Transportのスケジュールまわりをループ可能にする必要がある
  • ズームへの対応
  • ループ無効・有効の切り替え
スクリーンショット 2024-10-02 2 03 52

@Hiroshiba
Copy link
Member

お~~~デザインいい感じ!! これを見越しての設計だったんですね!!!

@romot-co
Copy link
Contributor Author

romot-co commented Oct 2, 2024

進捗:
ループ自体はいちおう追加

  • 再生ヘッドの位置をどうするか
  • ループ自体のON/OFFをどうするか(おそらく切り替えボタン?)
loop-feat-test-1.mp4

@sigprogramming
Copy link
Contributor

ループ自体のON/OFFをどうするか(おそらく切り替えボタン?)

DAWのように再生ボタン(トランスポート)のところにループON/OFFボタンを追加するのが良いかもと思いました!

@romot-co
Copy link
Contributor Author

romot-co commented Oct 3, 2024

@sigprogramming
ありがとうございます!おっしゃるとおりループボタン設置する形にできればと…!

  • トグルになるボタンを追加
  • ショートカットキー用意

@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 3, 2024

僕も再生ボタンあたりにトグルボタンを置くのを想像しました。
というかそれしか思いつかない。。。

ちょっと UX の参考になればと思ったので、パット考えたことを書いてみます!

  • 初学者の人が興味を持たないよう、ループボタンはデフォルトで非表示にしたいかもしれない
    • かなり目立つ位置に存在するけど、有用性がわかるのはかなり後半だと思うので、目立たないようにしたい気がするという意図!
    • ループ範囲を指定したら表示される形でもいいかもしれない
  • ループ範囲が一生表示されているのもアレなので、ループ範囲を削除できるとちょっとだけ嬉しそう
    • audacityは右クリック→ループ範囲の指定を解除 だった
    • 確かピッチ削除がshift+クリックなので、それを削除ショートカットにしてもいいかもしれない
    • プルリクエスト見て)ループ範囲指定できるとこをドラッグせずに普通にクリックしたら削除(=0秒のループが作られる感じ)でもいいかも・・・・・・?(という今それに近い形になってそう!)
  • 今のプルリクエストみたいな感じで結構ループ範囲の揮発性が高い(すぐ上書きできる)感じなら、ループするかどうかボタンはループ終端のあたりにあってもいいかも?
    • そもそもループするかの判定がループの終端にしかないので、その近くにボタンを置いても良さそうという思想
    • ループ範囲が1ドラッグで変えられるなら、なおさら近所にボタンを配置しても良さそう感
    • でもよく考えたら再生中にループ解除がしづらくてちょっと微妙かも・・・・・?

@romot-co
Copy link
Contributor Author

romot-co commented Oct 4, 2024

@Hiroshiba
ありがとうございます!
たぶん試作してみないとわからない系なものな気もするので
実際にプロトタイプ的に実装&その後に仕様まとめる形にできればと思います!

@romot-co
Copy link
Contributor Author

romot-co commented Oct 7, 2024

進捗:
ループボタンをつけて様子を見てみる
スクリーンショット 2024-10-07 22 35 22

@romot-co
Copy link
Contributor Author

考えたこと:

ループの目的

  • 特定の部分の調整を行いたい時において操作結果をプレビューして把握しつつ行いたい
  • ループなしだとひたすら再生位置を元に戻す必要があり実用的でない
  • ループ範囲指定により特定範囲のみを再生することで調整のみに集中できる

初学者ユーザー

  • @Hiroshiba のおっしゃるとおり必ずしも慣れ親しんだものではない / 一般的なプレイヤーにもループはあるが曲全体のループ

DAWに慣れているユーザー

  • 少なくとも存在は知っている

ループのUI

  • ループはボタンでON/OFFできる
  • ループはキーボードでON/OFFできる
  • ループはダブルクリック?でON/OFFできる
  • ループハンドルは削除なしで常に表示でもよさそう?0秒の場合はOFF扱い
  • ループ範囲はON/OFFに関わらず範囲設定できる
  • ループ範囲設定後の再生位置はループの頭?: 設定後再生する可能性が高そうなため
  • ループONにした場合は再生位置はそのまま
  • トグルボタンはどこに置くべきか: 不明・考慮中
  • 選択したノートからループ範囲を作成する場合もあり得そう
  • 一時的にループを行いたい場合、特定キーを押している間はループONという形もあり得そう

個人的にはとても使う機能

@romot-co
Copy link
Contributor Author

進捗:

  • ループ設定・変更時に再生ヘッドをループ先頭に移動するようにした
  • ループエリアのクリックで有効・無効を切り替えられるようにした

いったんの残り:

  • 見た目を調整
  • デフォルトではOFF
  • キーボードショートカット
  • テスト

選択したノートからループ範囲設定やキープレス中のみループ有効などは別Issueに切り出す

@Hiroshiba
Copy link
Member

実際ちょっと触ってみて気づいたことをば!(本当に気づいただけなので優先度とかには特に意見がない感じです!)

  • ループ範囲が0の場合はループ位置非表示でもいいかも?
    • 1回ループの指定をした後、ループの表示を消したくなったので
  • ループ範囲がスクロール表示範囲の外だった場合、全部がループ範囲外エリアになって暗くなるけど、暗い理由がわからないかも
    • なんか対策あるんだろうか。。。
  • それ以外だと、ループ範囲表示のルーラー 部分の UIさえ最高なものが思いつけば完璧では!!!

@romot-co
Copy link
Contributor Author

@Hiroshiba
ありがとうございます…!

ループ範囲が0の場合はループ位置非表示でもいいかも?
1回ループの指定をした後、ループの表示を消したくなったので

消えてしまってもいいかも?ですが、DAWだとわりと残るようなのでいったん残しております…!
かわりにダブルクリックでリセットするような動作にしております(いらんかも)

ループ範囲がスクロール表示範囲の外だった場合、全部がループ範囲外エリアになって暗くなるけど、暗い理由がわからないかも
なんか対策あるんだろうか。。。

これはトラックリスト側(ミニマップ)がどうにかなれば問題なくなるかもです…!

見た目など調整点ありますが、いったんプルリクにいたします!
(M3の準備などあるため、27日まではこれとあとはツール選択だけできれば…)

@romot-co
Copy link
Contributor Author

romot-co commented Oct 19, 2024

進捗:
プルリクを出した

loop-area-720.mp4

@Hiroshiba
Copy link
Member

消えてしまってもいいかも?ですが、DAWだとわりと残るようなのでいったん残しております…!
かわりにダブルクリックでリセットするような動作にしております(いらんかも)

ここの決め方としては、消えてるのと全く同じ効果なんだったら、消えてたほうが良さそうなのかな~~~と思いました!
消えてるときと挙動が違うならないとダメそう。
まあでもあまり強い意見じゃないです!

@romot-co
Copy link
Contributor Author

romot-co commented Oct 20, 2024

@Hiroshiba

ここの決め方としては、消えてるのと全く同じ効果なんだったら、消えてたほうが良さそうなのかな~~~と思いました!

ありがとうございます、こちら確かに…!

ただ、消えているというよりは

  • 範囲ゼロ区間の意味

  • ここでなにができるのかとっかかり・フィードバックが欲しい(いわゆるシグニファイア)

...という意図で現状

  • 最初からなんか触れば動きそうなマーカーを置いておく+幅ゼロでも消えはしない
  • 背景エリアホバー(操作可能エリアに見せる

という形にしているものの、ちょっと苦しいかな…とも思っています
少々考慮いたします!


今思いついている案:

  1. もっと操作可能エリア・ループエリアっぽく見せる
    → 具体的にどうするか…?

  2. ホバーでもうちょっとフィードバック返す: 薄いマーカーや追加開始ボタンのっける・カーソル変える・ツールチップ
    → あんまりホバーに頼りたくない

  3. 削除可能にする / ループボタンを押す → マーカーが無い場合は現在の位置周辺1小節ぐらいをループONにする(先にループエリアをつくる) → その幅を編集
    → なにが起こるかはわかりやすいかもしれないがループボタン依存かつ学習初期用

@romot-co
Copy link
Contributor Author

romot-co commented Oct 21, 2024

案:

  • ループマーカー削除可能にする(In/Out = 0もしくは明示削除で消える)
  • デフォルトで1小節ぐらいのループ範囲設定(ループ自体はOFF)しておく

@romot-co
Copy link
Contributor Author

romot-co commented Oct 21, 2024

進捗:

  • デフォルトでループ範囲
  • 0秒で削除 / メニューから削除
  • メニューから作成

見た目や色は調整必要そう

loop-2-480.mp4

@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 22, 2024

やーーーーーー最高の答えが思いつかないですね!!!

目指す方向性は全部同感です。
ホバーにあまり頼りたくないというのは、まあ最悪諦めてもいいのかなとちょっと思ってます 😇

最初から1小節目にループ範囲の存在があるの、まあ正直なところ苦肉の策な印象を受けました!!
ループが欲しくなった時はおそらくここが見えてないと思うので。。。。
あと表示していると興味を奪っちゃう可能性もありえそう。需要とのバランス的にそれで良いのかは・・・微妙かも・・・・・?
(いずれ必要になるだろうけど、最初はなくてもみたいな雰囲気)

ループボタンを押す → マーカーが無い場合は現在の位置周辺1小節ぐらいをループONにする(先にループエリアをつくる) → その幅を編集

今のところこちらが良いのかなぁと思いました!
まだ最高のUXじゃないかもですが、とりあえずこのルーラーの上川がループ範囲指定だということが伝わる・・・気がする・・・。
あとループボタンをホバーした時(たぶんスマホだと長押ししたとき?)にツールチップとかですかねぇ。。。。

@romot-co
Copy link
Contributor Author

@Hiroshiba
ありがとうございます!じっさいちょっと苦肉の策感があります…

今のところこちらが良いのかなぁと思いました!
まだ最高のUXじゃないかもですが、とりあえずこのルーラーの上川がループ範囲指定だということが伝わる・・・気がする・・・。

こちらこの形で仕掛かりですが追加いたしました(明日以降リファクタリングと見た目修正します

@romot-co
Copy link
Contributor Author

romot-co commented Nov 4, 2024

こちらは順番的にBPM/拍子変更実装後に調整する

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

Successfully merging a pull request may close this issue.

3 participants