歌うRIS2.0


はじめに

midi2lscは、SMF format 0 (Standard MIDI File)を読みこみ、RIS2.0付属プログラミング環境であつかえる演奏プログラムを生成するソフトです。このソフトを使うと、手軽にMindStormsのRCXで音楽を演奏できます。

RCXで音楽を演奏させたいと思い、MidiをNQCに変換するソフトMidiStormsを作りました。1999年春の事です。目的の主な部分をこれで達成しましたが、まだ色々不満もあります。RCXの音楽再生機能の不足によるものも多く、あきらめざるを得ませんが、それを除く最大のものは、「標準ソフトに組みこめない」事でした。

RIS1.0/1.5に付属するプログラミング環境のうち、RCXの内部コードは詳しく解析され、NQCやlegOSのような優れたフリーソフトが開発され、MidiStormsもNQCへのインターフェースとして作りましたが、標準プログラミング環境の内部は、ライセンス上の問題もあり、一切公開されず、解析もされてません。このため、RISにMidiStormsをインターフェースすることはできませんでした。

2000年12月LEGO MINDSTORMS Robotics Invention System version 2.0 (RIS2.0)が発売されましたが、この標準プログラミング環境の出力コードは、RCX2.0SDKとしてレゴ社から正式に公開された、LEGO P-brick Script Code Language (LSC)そのものです。

つまり、この公開ドキュメントにしたがってインターフェースすれば、自作ソフトが作ったコードを、標準環境に組みこめるし、また標準ソフトの出力を利用する事ができます。

早速MidiStormsを改造し、MidiをLSCに変換する様にしました。

現在、新バージョンをリリースしました。特に旧バージョンが必要な方以外こちらのページに進んでください。

しばらくしたらこのページは、新バージョンと置き換えます。


使い方

Windows95/98用にVC++6.0でBiuldしました。ヘルプファイルや、詳細なドキュメントはまだ用意されてません。

ファイルをダウンロードし、解凍後、"setup.exe"を実行してください。インストーラーが起動します。Windowsレジストリーの追加はしません。また、コントロールパネルの「アプリケーションの追加と削除」で"Midi2lsc"を選択すれば、あんいんすとーる出来ます。

「スタート」 > 「プログラム」のメニューに追加されますのでここから起動するか、デスクトップにショートカットを作成してください。

変換できるMIDI Fileは、SMF FORMAT 0のみです。(パッチをいただいたので、SMF 1にも対応する予定があります)

  1. ショートカットにMIDI FILEを「ドラッグ&ドロップする」
  2. 起動後ダイアログにMIDI FILEを「ドラッグ&ドロップする」
  3. 入力ファイルのBOXに、フルパスで指定するか、「コピー&ペーストする」
  4. 参照ボタンを押してファイルを開く

などで、入力ファイルを指定し、オプションを設定してから、「変換」を押すと、RIS 2.0のLSC Fileを作成する場所を聞いてきます。

オプションのうち、「変換するMidiチャンネル」は読んだまんまです(^^;

「ギャップ」は、MIDI FILEに記述された長さより、ここに指定した時間だけ音を短くし、休符を挿入します。一般の楽器は、1つの音に強弱の変化があり、ぴったり間隔なく複数回鳴らしても、何回なったかわかりますが、RCXは強弱に全く変化がない矩形波ですので、前の音と隙間がないと、一つの長い音になってしまい、メロディが違ってしまいます。これを防ぐために、この機能があります。0を指定すれば、MIDI Fileの指定通りの長さになります。

正しく変換できると、生成したプログラムの大きさをダイアログで知らせます。

こうして出来たRIS2.0の標準ソフトで読みこむと、もとのMidi fileを演奏するプログラムをダウンロードできます。MUSIC1と言う名前を変更する操作をすると、マイブロックとして登録されるので、それ以降、別のプログラムを作っている時にも、利用できるようになります。

RIS2.0 Install時の標準設定では、159ブロックがRIS2.0でひとつのリストに並べられる限界なので、これを越える大きさでは、変換終了のダイアログに、ワーニングが出ます。ワーニングが出ても、読みこみや、ダウンロードは出来ますが、「マイブロック」を移動したり、名前を変更したりなどの操作は出来ず、また、読み込みに30秒以上かかり応答が遅くなることがあります。

あまり長いと最悪、

C:\Program Files\LEGO MINDSTORMS\Robotics Invention System 2.0\users\<user name>\Vault\MBFile.ini

を手で修正しないと復帰できない恐れがあります。

このファイルはあらかじめ、別の場所にコピーしバックアップとして保管し、万一、何か起きたらもとのファイルに上書きしてください。

また、RISにDownload出来るプログラムの大きさは、標準設定では、合計1000ブロックです。設定を変え、1500ブロックを超えるプログラムを送ると、エラーになることもありますが、正常に送られた様に見えて正しく動作しないこともあります。これはRIS2.0のknown bugで、READ MEにも記載されてます。(レポートしたのは、私)

その他、MidiStormsのドキュメントが参考になると思います。

 


謝辞

Windows版プログラムの作成にあたり、MindStorms情報局のJinSatoさんに、多大なご助言をいただきました。感謝いたします。MidiStormsを利用して、さまざまな作品を作られた方々に感謝します。MidiStormsを改良するモチベーションを維持しているのは、皆さんのご声援のおかげです。


Download

インストーラー付き、圧縮ファイルをここからDownloadしてください。VC++のソースを必要とされる方は、利用目的を添えて、">メールでご連絡ください。

以前公開していたMS-DOS版の、ソースを含む一式は、ここに置きます。


変更来歴

MidiStormsの来歴を含む

1999/06/05 0.8 第一回もんじゃストーム(東京offat 月島)で、限定リリース
1999/06/15 1.14 MindStorms の洞窟(http://www.line.to/mac/MindStorms)で、公開開始
1999/06/28 1.16 Marker イベント対応。Sleep()の最適化
2000/08/10 1.17 NQC 2.x に対応し、PlayTone()を使用
2000/08/11 1.18 ...と思ったらbug入り出だしなおし(Thanks レゴおやじさん)
    これ以降Midi2lsc
2001/02/25 0.1 Midi2lscとして、RIS2.0標準ソフト対応に改造
2001/03/05 1.0 Windows 98 version βリリース
2001/07/28 1.0 試験版を2.0aに引継ぎ1.0を安定化

MindStormsの洞窟へ戻る

(C)2001

最終更新日:2002年10月12日

Google