Readme.txt for sjm2mml これはなに?: sjm2mml: .sjm から .mml へのコンバータ .sjm : J-PHONE の携帯電話 SHARP 製のもので使用されている着メロファイル .mml : mml2mid で .mid に変換可能な MML ファイル .mid : SMF ファイル そもそもこのソフトを作ったのは、Linux で使用するためです。 私の場合は、MML2MID で .mid に変換した後、 sted2 で編集、もしくは timidity で演奏という手順を 取ることが多いです。 Windows では、SMAF (.mmf) を直接編集することができる ソフトが存在するので、必要ないかも知れません。 mml2mid Home Page http://www.platz.jp/~mml2mid/ STed for UNIX http://sted2.sourceforge.net/jindex.html TiMidity++ http://www.onicos.com/staff/iz/timidity/ SMAF Official http://smaf-yamaha.com/jp/ 使用法: ソースのみの配布ですので、使用に先立って、準備が必要です。 下の 準備: の項を見て、実行ファイルと変換元ファイルを用意して下さい。 sjm2mml sjm-file とすると、変換後の MML が標準出力に出力されます。 変換結果をファイルに保存する場合は sjm2mml sjm-file > mml-file として下さい。 コマンドラインオプションとして、 -h : ヘルプを表示して終了する -v : バージョンを表示して終了(-h と同じ) -nd: drums.def を読み込まない -ke: 長さ 0 のトラックも出力する があります。 例: sjm2mml -h sjm2mml -nd file1.sjm 準備: 1. 実行形式を作る Linux 用の Makefile を準備してあります。 デバッグ出力が邪魔だという人は、CFLAGS から -DDEBUG を除いて下さい。 make sjm2mml または単に make とすると、コンパイルして実行形式を生成します。 IBM 互換機 上のDebian GNU/Linux 3.0(woody) で コンパイルできることを確認しています。 RedHat 8.0 でも実行できるとの報告を頂いています。 機種依存している関数は ファイルの情報を得るための stat 関係のみ しか使用していない(つもりな)ので、 他の 機種/OS でもコンパイルできると思います。 需要があるかは別として。 2. ファイルの配置 make install は用意していませんので、できた実行形式 sjm2mml を PATH の通ったディレクトリに置いて下さい。 実行時に、ドラム音色変換テーブルファイル drums.def が あると、デフォルトを置き換えます(指定した楽器のみ)。 1) 実行時のカレントディレクトリ 2) ホームディレクトリ の順に検索し、最初に見つかったものを使用します。 見つからなかった場合は、実行ファイルに内蔵している デフォルトを使用します。 3. 変換元ファイルの用意 変換の対象になる着メロファイル (.sjm ファイル)を 携帯電話本体からPCへ持ってくる必要があります。 方法としては、 1. メールに添付して送る 2. SD カード等、外部メモリにコピーして持ってくる があります。 実際に対応しているソフトがあるかどうか分かりませんが、 3. 携帯電話のメモリ管理ソフトを使う という方法も考えられます。 作った人: ハンドルネーム DONE メールアドレス done@drive.co.jp ホームページ: 最新版へは、 http://hp.vector.co.jp/authors/VA014481/sjm2mml/index.html から辿れるようにします。 質問など書き込めるように、掲示板を用意しました。 http://fc2bbs.com/bbs?uid=41407 Zaurus 版のバイナリを、TAKA さんが公開されています。 Project D.E.V http://www.geocities.co.jp/SiliconValley-SanJose/1559/dev/tools.html 著作権、注意: フリーソフトとします。このソフトに関して、 日本の著作権法で放棄できないと定められている権利 (著作者人格権だったかな?)以外の権利を放棄します。 無保証です。 その他参考: 以下は、読む人によっては、このソフトの使用の可否を決める 参考になるかも知れません。 できれば最後まで読んで下さい。 ・音源の差 PC と 携帯電話の音源は異なります。 出力される音は、あなたの期待を裏切るほど異なっているかも知れません。 ある場合には、逆にそれが面白い効果となるでしょう。 ・SJM 形式について SJM 形式は恐らく SHARP が決めた仕様で、多分非公開です。 J-SH51 で作成した .sjm ファイルを独自に解析した経過/結果を、 アーカイブ内の sjm_format ディレクトリに入れておきました。 sjm2mml は、この解析結果に基づいて書かれています。 正しく変換できているという保証は一切ありません。 また、ファイルの先頭にバージョンナンバーが埋め込まれているので 将来 SJM 形式のバージョンが上がる可能性もあります。 そのときには、処理の追加が必要になるでしょう。 ・ドラムの音色について drums.def は、General MIDI の楽器番号と、 timidity-patch の .cfg ファイル、 そして J-SH51 のマニュアルを見ながら 作ったものです。 プログラムを作る方の立場から見ると、ドラム以外の楽器は .sjm と MIDI とで素直に対応しています。 しかし、ドラムは並び方が異なるので変換テーブルを用意する必要が あります。 また、SJM で規定されている ドラムの音色すべてが General MIDI で規定されているドラム楽器の中に存在するわけではないので、 同じ音色を異なる二つの音色に割り当てて、ごまかしています。 ・空のトラックの扱いについて 2003 年 10 月より、長さ 0 のトラックを出力しない事を デフォルト動作としました。 -ke オプションを使用すると、従来通り空トラックも出力します。 ・トラック数の制限 MML2MID の主トラックのみ ( A - Z ) を使用するため、 26トラックが使用できる上限です。 1トラックに 1チャネルを割り当てているため、音源の 限界が先に来るかもしれません。 このあたりは、環境依存です。 というわけで、40和音モードで作成した曲には、 再現できないものもあります。 ・自作音色について J-SH51 では オリジナル音色を 8 種類、オリジナルドラムを 8 種類 指定できるようになっています。 ユーザーが音源の構成要素のパラメータを変更することによって 独自の音色を奏でることができる機能です。 デフォルトでは既存の音色の中から割り当てられています。 詳細は携帯電話の取扱説明書を参照のこと。 ユーザーが変更した音色については、現在このソフトでは変換できません。 自作音色の設定データを携帯電話の外に持ってくる方法がわからないので、 全自動での変換は不可能です。 次善の策として、J-SH51 でのデフォルトを割り当てて出力しています。 これ以上の対応としては、 ユーザーが MML で音色データを再現して組み込めるように、 #include 文などを出力する という形で拡張することになるかと思われます。 この点に関して、作者はあまりやる気がありません。 誰か作ったら、ソースをください。 履歴: 新しい順 2003年 12月 28日 o メモリの取得と解放について、見直し。 o 連絡先メールアドレス変更。 done@mail-box.jp は年末で無効になります。 2003年 11月 18日 o 実行時、カレントディレクトリに drums.def がない場合、 ホームディレクトリの drums.def も探すようにした。 2003年 10月 23日 o スラー対応が抜けていたので追加。 o 長さ 0 のトラックをスキップするようにした。 (コマンドラインオプション -ke でスキップしない) o 自作音色を J-SH51 のデフォルトに変換することにした。 o 連絡先メールアドレス変更。 2003年 10月 11日 o Zaurus 版の公開が始まる。(by TAKAさん) 2003年 9月 24日 水曜日 02:21:59 JST o sjm file 読み込み時の Segmentation fault 対策 (Zaurus) o コマンドラインオプション -v を追加 o レ#の処理を修正 2003年 8月 24日 日曜日 23:45:47 PDT o コマンドラインオプション -h, -nd を追加 2003年 8月 17日 日曜日 10:42:31 PDT o ドラムのデフォルトを本体に持たせた。 2003年 7月 25日 金曜日 23:04:28 PDT o 3連符の処理を修正 2003年 7月 18日 金曜日 08:45:49 PDT o とりあえず公開