2022年7月6日水曜日

n倍速再生機能(東方VGS)

東方VGSで倍速再生機能の導入を検討中です。

アプリ版に先立ってCLI(コマンドライン版)に以下の commit で導入しました。

https://github.com/suzukiplan/tohovgs-cli/pull/41/commits/fb5f0216aac60f10d9995de62f02552f8d186470

./tohovgs -t 75 path/to/file.mml

上記のように -t オプションで再生速度のパーセンテージを指定することができます。(上記の例なら 75% の速度で再生)

YouTube や ニコニコ動画 など、動画サイトではお馴染みの機能ですね。

ただし、東方VGS の倍速再生機能は、動画サイトの倍速再生機能と違い、倍率をイジってもピッチ(音程)が変化しません。

動画サイトの場合、2倍速再生すると全ての音が1オクターブ高くなり、0.5倍速で再生すると1オクターブ低くなります。これは、単純に波形データをそのまま伸縮しているために起こります。

ピッチを変えずに再生速度を変化させるには、波形を離散フーリエ変換して音毎の波に分解した後、周波数を変えないようにしてデュレーションを伸縮した後再合成する計算が必要になります。

Cubase Artist/Pro や Logic Pro X などのDAWのオーディオトラックでは、そういった計算方法でピッチを変えずにテンポを変えることができます。ただし、波形を完全に分解することは出来ないので、完全にピッチを変えずに再生速度を変えることができないケースが散見されます。

ピッチを変えずに再生速度を変える一番理想的な方法は、目的のテンポで楽器を演奏し直すことです。

録音された波形データではそれができませんが、ソフトウェア音源トラックの場合、プログラムが毎回譜面データに基づいて楽器をリアルタイムに演奏しているので、テンポを変えるだけでそれを実現できます。

東方VGSはソフトウェア音源方式で音声を出力しているので、ピッチを変えずに再生速度を変えることの方が簡単にできることになります。

この機能を作った目的は、東方Projectにはアップテンポな曲が多いので、コマンドで再生チェックする時にミスノートを探すのが大変なためです。(手軽にテンポを落としてチェックしたかった)

また、この機能がアプリ版でも入れば、東方VGSを使って楽器演奏の練習がしやすくなるかも?と思ったので、アプリ版にも導入する方向で検討中です。

楽器演奏をするとIQ上昇、うつ予防、認知症予防などの効果があるらしいという噂があります。

https://www.lifehacker.jp/article/160718raise_iq/

IQが上がっても多分あまり良いことなんて無いと思いますが、うつ予防や認知症予防ができるかも?というのは中々魅力的ですね。

何ならスクフェス、バンドリ、ダンカグとかでも良いかもしれません。

ただし、音ゲーだとお膳立てが整いすぎていて演奏自体が簡単(※変態譜面をクリアできるかは別問題^^;)なので、リアル楽器よりも達成感がイマイチな気がしないでもないです。私はピアノで初めて平均律クラヴィーア曲集1巻1番のフーガが弾けるようになるまで2〜3ヶ月ぐらい掛かりました...音ゲー勢に分かるように例えると、最高難度の曲をノーツ速度最低でフルコンボするようなイメージ。

最高難度の曲をノーツ速度最低でフルコンボというと絶望感しか湧きませんが、リアル楽器なら何回ミスってもゲームオーバーにならないし、テンポを落として練習することもできるので、根気よく練習すれば割と何とかなります。

という訳で、テンポを落として再生できる機能はもしかするとニーズあるかも?ということで。楽器演奏しなくても、ローテンポで聴くと音がハッキリ全部捉えやすくなるので、音楽の輪郭線がより鮮明になったりします。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...