Rhytica - BMS Format Notes Editor -

Windowsアプリ
この記事は約9分で読めます。

概要

いわゆる BMSエディタ です。
主に、bms、dtx、pms形式のBMS系フォーマットの譜面編集を行うことが出来ます。

※現在開発中です、下記内容は予告なく変更する場合がありますのでご了承ください。

制作進捗状況など

主な特徴

内臓プレビューワー

他のBMS系エディタの大体は外部のプレイヤーを呼び出す方式かと思います。
私が最近お世話になっていたのが DTX Creator で、ゲーム本体をビューワー代わりに使うという本番さながらの見栄えで確認できる点はすばらしいのですが、途中再生時にわりと画面と音がズレます(環境によるかもしれませんが…)
ドラム譜面耳コピする際なんかはこのズレはかなり致命的で、エディタを作ろうと思った一番の理由でもあります。

そこで、エディタ上で直接プレビューしてしまえば良いとしたのがコレです。
見栄えこそ良くは無いかもしれませんが、途中再生のズレは無く、何より再生までのスピード感が違います。

BGAプレビュー

ビットマップを並べるタイプのBGAなら、再生しなくてもスクロールでプレビュー表示できます。
最近のBMSでビットマップを並べたBGAが作られる機会があるのかは分かりませんが....

音波形の表示

恐らく既存のBMS系エディタに無さそうな機能として波形表示があります。
冒頭無音のあるBGMの出だしのタイミング合わせなど、BPM微調整に重宝すると思います。
あとは形状から音を多少判別できる?とか。
ただ、ある程度のメモリを要求するので、低スペックマシンとかだとどうなるか未知数です。

音声ファイル簡易トリム機能

DTX向けにプレビュー作るのにわざわざ別ツール開くのも手間なので、切り出しとフェードインフェードアウトだけの簡易編集ツール内臓してみました。

ダウンロード

.Net 10 が必要です。

.Net 10 がインストールされていない環境では、アプリ起動時に以下のようなダイアログが出てきますので、ダウンロードとインストールを行ってください。
「Download it now」をクリックすると、ダウンロードページが開き、自動でダウンロードされます。

Rhytica 本体のダウンロードはこちら↓
https://github.com/lscyane/Rhytica/releases

※現在ベータ開発中です、仕様など予告なく変更する場合がありますのでご了承ください。

※バイナリ配布、及びバグ要望等の連絡手段用にGithubを利用していますが、現時点ではオープンソースではありません。(オープンにするかも未定)

使い方

モード共通操作

マウス左ボタン

  • ノートをダブルクリック → ノート編集ダイアログを開く(BPM/STOPチャンネルなど)
  • チャンネルヘッダ上半分をクリック → そのチャンネルの入力ノートを固定
  • チャンネルヘッダ下半分をクリック → そのチャンネルをミュート (内臓プレビュー時のみ)

マウス右ボタン

  • チャンネルヘッダ上半分でクリック → チャンネルの入力ノート固定を解除

マウスホイール

  • スクロール → 譜面を縦スクロール
  • Ctrl + スクロール → 表示倍率(縦ズーム)の変更
  • Shift + スクロール → 入力グリッドの細かさの変更

Deleteキー

  • ノーツが選択されていない時、判定ラインにある小節を削除します

Insertキー

  • 判定ラインにある小節と、その次の小節の間に、小節を挿入します。

編集モードの操作

マウス左ボタン

  • ノートが無い位置でクリック → ノートを配置
  • 既存ノートの上でクリック → ノートを上書き

マウス中ボタン

  • ノートの上でクリック → そのノートの値を選択している状態にする

マウス右ボタン

  • ノートの上でクリック → ノートを削除

Ctrlキー(押下中)

  • 第2レイヤー(裏チャンネル)への入力モードに切り替わります。

Ctrl+Altキー (押下中)

  • 第3レイヤー(地雷チャンネル)への入力モードに切り替わります (※bmsなど対応形式のみ)

選択モードの操作

マウス左ボタン

  • ノートをクリック → 単体選択
  • 空白をドラッグ → 矩形範囲選択
  • 選択ノートをドラッグ → ノートの移動(縦+横同時移動可)

マウス中ボタン

  • ドラッグ → 画面スクロール(手のひらスクロール)

Ctrlキー(押下中)

  • Ctrl + クリック → 選択のトグル(ノーツの追加選択・選択解除)

Deleteキー

  • ノーツ選択状態時、選択されているノーツを削除します

検索機能

特定のノーツ値・チャンネルからノーツを検索し、選択状態にすることができます。

置換機能

選択中のノーツ値を別のノーツ値に変更させることができます。

移動機能

選択中のノーツをまとめて特定のチャンネルに移動させることができます。

固定入力機能

チャンネルのヘッダ上部をクリックすることでチャンネルの固定値を設定することができます。
固定値が設定されたチャンネルは選択中のノート値リストに関わらず、固定のノート値が入力されるようになります。

チャンネルミュート機能

譜面作ってるときにBGMを一時的にミュートしたいケースがあったのでチャンネル毎にミュートできる機能付けてみました。
チャンネルのヘッダ下部をクリックすることで、チャンネル単位でプレビュー音をミュートできます。

オプション

一般

・ノーツ移動時の挙動
 選択モードでのドラッグ移動時に、ノートを拍位置にスナップするかどうかを設定できます。

・情報表示レベル
 ウインドウ下部に表示する情報のレベルを設定できます。

外観

・音声ノートの波形表示
 ノーツに音声波形を表示することができるようになります。

・UIスケール
 エディタ編集部分のUI表示の拡大率を設定できます。

・譜面方向表示の選択
 譜面が流れる方向を 上方向(↑) または 下方向(↓) から選択できます。

プレビュー

・再生速度変更方式
 タイムスとレットとリサンプルから選択できます。
 (タイムストレッチは低音がおかしくなる問題を確認しており調査中です)

・BGAプレビュー
 BGAプレビューの解像度を設定します

外部ビューワ設定例

mBMplay の場合
「最初から再生」の引数<filename>
「現在位置から再生」の引数-s <measure> <filename>
「停止」の引数-t
uBMplay の場合
「最初から再生」の引数-P -N0 <filename>
「現在位置から再生」の引数-P -N<measure> <filename>
「停止」の引数-S
beatoraja の場合
「最初から再生」の引数-a <filename>
「現在位置から再生」の引数-p <filename>
「停止」の引数
LR2 の場合
「最初から再生」の引数-a <filename>
「現在位置から再生」の引数-a <filename>
「停止」の引数
DTXManiaNX の場合
「最初から再生」の引数-N0 <filename>
「現在位置から再生」の引数-N<measure> <filename>
「停止」の引数-C
-S

「停止」の引数は -C を設定するとプレビューワウインドウ自体が閉じ、-S を設定すると再生が止まるようです。

その他引数。お好みで各引数に加えてください。
引数を付け加える時は、スペースで区切らず1センテンスとし、小節番号指定はセンテンスの最後にする必要があり、ファイル名は最後の引数にする必要があります。

例:
-DWSNNY-N<measure> <filename>

-DDxxxサウンド再生方式に DirectSound を使う
-DWExxxサウンド再生方式に WASAPI排他 を使う
-DWSxxxサウンド再生方式に WASAPI共有 を使う
-DA1xxxサウンド再生方式に ASIO を使う
(数字はデバイス番号)

サウンド再生方式の xxx の部分は、Y 又は N でオプション設定をする必要があります。(省略不可)
 1つ目:ギター専用画面モードにするかどうか
 2つ目:TimeStretch を使用するかどうか (WASAPI/ASIO使用時のみで、再生速度を x0.8 ~ x1.2 の範囲で使用可能)
 3つ目:垂直同期を待つかどうか

出力フォーマット

・エンコーディング
 多分Shift-JISがデファクトスタンダードっぽいのでデフォルトは Shift-JISにしています。
 読み込みは、解析してから読み込むので何でもいけるはず。(現在SJISのみ、実装予定)

・分割記号
 出力時の分割記号を指定できます。
 BMS系は空白、DTXはコロン+空白が多いようです?
 稀にヘッダ系とテーブル定義系で異なっている場合も見受けられるので、一応別々に設定できるようにしています。
 デフォルトは空白にしていますので、
  #TITLE title text
 のようになります。
 コロン+空白 と設定した場合は、
  #TITLE: title text
 のようになります。

追加予定機能

MIDIインポート

音源ファイル(SoundFont等)を事前に設定し、
MIDIファイルをインポートし、単音のWAVやOGGへの書き出し、譜面エディタ上へのノート配置する機能を検討しています。

(※譜面を配布する際は音源ファイルのライセンスに注意してください)

DTX譜面でのギター・ベース対応

現在は対応してません。(需要ある?)

#RANDOM の対応

現在 #RANDOM や #IF 命令に対応しておらず、含まれる譜面の読込にも対応していません。
(仕様検討中)

BMS系以外のフォーマット対応

需要がありそうなフォーマットは対応したいと考えています。

あるいは、BMS系フォーマットで独自チャンネルカスタマイズ対応など。

タイトルとURLをコピーしました