開発コンセプト

このライブラリは、音楽シミュレーション用アプリケーション向けのファイルフォーマットであるBMS(Be-Music Source file) の読み込み、書き込みを行うアプリケーションを容易に開発できるようにするというコンセプトで開発されました。また、 旧来から存在するBMSの仕様を抽象化し、異なるルールの音楽シミュレーション用アプリケーションを素早く設計・開発できることを 念頭に置いた作りとなっています。

どんなことができる?

BMSライブラリを使用することで以下のようなアプリケーションを容易に開発できるようになります。
  • BMSファイルから楽曲データを構築し演奏する(BMSプレイヤー)
  • BMSファイルを編集しファイルに書き出す(BMSエディタ)
  • 複数のBMSファイルを解析しデータを分析する(楽曲データ分析ツール)
  • BMSフォーマットを使用した新しいBMS仕様を策定し、その楽曲データを再生・演奏する(新しい音楽シミュレーションゲーム)

最も簡単な使い方は?

最も簡単な例として旧来のBMSファイルを読み込み、定義内容を表示するプログラムを以下に紹介します。 コマンドでプログラムを起動し、そこで指定されたファイルを読み込む内容になっています。
import java.io.IOException;
import java.nio.file.Path;

import com.lmt.lib.bms.*;
import com.lmt.lib.bms.bemusic.*;

public class BmsTutorial {
    public static void main(String[] args) {
        try {
            // BMSファイルを読み込みます
            BmsContent content = BeMusic.loadContentFrom(Path.of(args[0]), null, false);

            // 読み込まれたBMSファイルからヘッダ情報を構築します
            BeMusicHeader header = new BeMusicHeader(content);

            // ヘッダ情報の一部を表示します
            System.out.println("File = " + args[0]);
            System.out.println("#GENRE " + header.getGenre());
            System.out.println("#TITLE " + header.getTitle());
            System.out.println("#ARTIST " + header.getArtist());
        } catch (BmsException | IOException e) {
            // 発生したエラーの内容を出力します
            e.printStackTrace();
        }
    }
}
パッケージ 
パッケージ 説明
com.lmt.lib.bms
BMSライブラリの中核となるAPIが定義されています。
com.lmt.lib.bms.bemusic
7個のON/OFFスイッチと1個の2方向操作可能な入力デバイスを1~2セット用いる音楽シミュレーション用のBMS定義を扱うサブセットです。
com.lmt.lib.bms.parse
外部データからのBMSコンテンツ読み込み時に使用される機能です。