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

[project-s] シーケンサーのスクロール・編集周りを調整 #1767

Merged
merged 4 commits into from
Jan 28, 2024

Conversation

sigprogramming
Copy link
Contributor

@sigprogramming sigprogramming commented Jan 27, 2024

内容

以下を行います。

  • トーク・ソング切り替えでスクロール位置が変わらないようにする
  • トーク・ソング切り替え時にイベントリスナーの追加・削除を行う
    • onMountedonUnmountedからonActivatedonDeactivatedに変更
  • ノート追加のプレビュー(ノートの長さの設定)では、カーソル位置ではなくドラッグ量で判定を行うように変更
    • カーソル位置で判定だとグリッド・ノートを見る(判定を確認する)必要がある
    • ドラッグ量で判定だとグリッド・ノートを見ずに感覚(マウスの移動量)でノートの長さを設定できる
  • シンセの音を調整

関連 Issue

VOICEVOX/voicevox_project#15

その他

@sigprogramming sigprogramming requested a review from a team as a code owner January 27, 2024 12:53
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.

LGTM!!

firstActivationのとことかだけこっちで変更させていただこうと思います!

Comment on lines -787 to +799
cutoff: 3000,
cutoff: 2500,
resonance: 0,
keyTrack: 0.26,
keyTrack: 0.25,
};
this.ampParams = options?.amp ?? {
attack: 0.001,
decay: 0.18,
sustain: 0.4,
sustain: 0.5,
release: 0.02,
};

this.gainNode = new GainNode(this.audioContext);
this.gainNode.gain.value = options?.volume ?? 0.11;
this.gainNode.gain.value = options?.volume ?? 0.1;
Copy link
Member

Choose a reason for hiding this comment

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

そういえばこの辺の値ってどういう感じで決めればよいでしょうか・・・?
聞いてみて良さそうなパラメータ?

Copy link
Contributor Author

@sigprogramming sigprogramming Jan 28, 2024

Choose a reason for hiding this comment

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

聞いてみて良さそうなパラメータ…です!
パラメーターは一般的なシンセとほぼ同じ感じで、以下のようになっています。

  • osc.typeはオシレーターの波形
    • とりあえず矩形波にしていますが、サイン波でも良いかも…?
  • filter.cutoffはローパスフィルターのカットオフ周波数(Hz)
    • 上げると倍音が増えて、下げると倍音が減る(サイン波に近づく)
  • filter.keyTrackはカットオフ周波数をオシレーターの音程に追従させる割合(0~1)
    • これも(C4より高い音は)上げると倍音が増えて、下げると倍音が減る
  • ampは音量変化(エンベロープ、ADSR)
    • amp.sustainはサスティーン(持続音)の音量(0~1)
      • 上げると相対的にアタックが弱くなって、下げると相対的にアタックが強くなる
  • volumeは全体的な音量(0~1)

このPRでは、プレビュー音(ノート入力時の音)を聞きやすくする目的で、倍音を減らす&アタックを弱くする&音量を下げるを行っています。

Copy link
Member

@Hiroshiba Hiroshiba Jan 28, 2024

Choose a reason for hiding this comment

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

なるほどです、詳しくありがとうございます!!!

ここの値何にするのがいいですかね・・・。
素人の発想だと、原音に忠実に出せるようにして、使用者側で調整してもらうのが良いのかなぁとか思いました。
でもパッと調べた感じSynthVもボカロもこういうエフェクト?をかける機能が見当たりませんでした・・・。
調べ方がわからないからかもです。

このあたり議論できる場があるといいかもとか思ったので、どうすれば良いのか時間ある時にissue 作ってみようかなと思います!

Comment on lines 357 to 358
// 最初のonActivatedか判断するためのフラグ
let firstActivation = true;
Copy link
Member

Choose a reason for hiding this comment

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

コメント良いですね!! どんどん足していきたみあります。

実際この変数を使っているonActivatedの近くに書くのが良いかなと思いました!
(関心事の分離)

Comment on lines +1005 to +1006
let xToScroll = 0;
let yToScroll = 0;
Copy link
Member

@Hiroshiba Hiroshiba Jan 28, 2024

Choose a reason for hiding this comment

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

こうも書けるかもです!
(以降の処理で初期化していなかったときにTypeScriptの静的解析でたぶん気付ける&0初期化は意味ないということがわかる)

Suggested change
let xToScroll = 0;
let yToScroll = 0;
let xToScroll: number;
let yToScroll: number;

(試してみたけど特に変わらなかったです。。)

@Hiroshiba Hiroshiba merged commit a804e47 into VOICEVOX:project-s Jan 28, 2024
8 checks passed
@sigprogramming sigprogramming deleted the adjust_sequencer branch January 28, 2024 05:21
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.

2 participants