/************************************************************* Program : Sysex Editor for JV/XP Author : Yo Kubota Copyright : 1999- compiler : VC++ 4.0 **************************************************************/ ダウンロードするにはここをクリック。 ------------------------------- Sysex Editor for JV/XP について ------------------------------- このプログラムはシステムエクスクルーシブのテキストエディタです。ローラン ド社のJV/XP用に設計されていますが、汎用のSysexエディタとして使用すること もできます。 ------ 使い方 ------ SysexEdit は Edit/Select/Effect の三つの画面で構成されています。Edit画面は SysexEdit を起動した時に表示される画面で、システムエクスクルーシブを編集す るのに使います。Select画面とEffect画面はJV/XP専用の画面で、主にJV/XP用のセ ットアップファイルを作成することを目的としています。 Edit画面を表示させた状態で、"from"ボタンでクリップボードか、内部バッファか ら、"read"ボタンで syxファイルから、"TPL"ボタンでテンプレートからシステム エクスクルシブを入力することができます。画面に表示された16進数か10進数を編 集して下さい。編集結果は"to"ボタンかset"ボタンでクリップボードと内部バッフ ァに、"write"ボタンでsyxファイルかmidファイルに保存されます。また、エクス プローラからドラッグ&ドロップでファイルを読み込ませることもできます。 Edit画面の下段のファンクションボタンはJV/XP用のシステムエクスクルーシブを 効率的に編集するのに有用でしょう。'%'で始まる行の'='以降の10進数かアスキ文 字を編集して下さい。編集結果を有効にするには"set"ボタンを押して下さい。 "all"の右の八つのファンクションボタンは"shift"ボタンにより機能が変わります。 Select画面とEffect画面を使えば、簡単にパッチを選び、イフェクトをチューニ ングして、初期設定ファイルとして保存することができます。"buf"をチェックし、 "from"ボタンを押し、リストボックスから使いたいパッチを選んで下さい。数字ボ タンを押すと、TempPerfPart Parchとして、"n"ボタンを押すと(番号も指定できま す)、User Patchとして登録できます。internalパッチはプルダウンメニューか、 "select SYX"ボタンを使って、切り換えることができます。ユーザパッチを選択し た状態で"effect"ボタンを押すと、イフェクトダイアログが表示されます。この画 面を使い、パッチのイフェクトを完全に設定することができます。 システムエクスクルーシブはSysEx.exeにより自動的に音源に送られます(SysEx. exeを作成/公開されたJurgen Mossraberさんに感謝します)。SysEx.exeは"sel"ボ タンで起動することができますので、最初に起動して、MIDI関係の初期設定を行 って下さい。処理中のシステムエクスクルーシブがpatchであれば、"Pa"ボタンに よりパッチモードで、"Pf"によりパフォーマンスモードで、JV/XPに送信すること ができます。"font"ボタンによりフォントを変えることができます。 "port"と"address"ボックスの使い方についてはヘルプを参照して下さい。 ----------------------------- インストール/アンインストール ----------------------------- syxedit.zipには readme.txt : 英文のreadme readmejp.txt : このファイル syxedset.exe : インストール用の実行ファイル が同梱されています。インストールするには、syxedit.exeを実行して下さい。 syxedit.exeを置くディレクトリ名を変えたい場合は、インストーラのダイアログ で変更して下さい。ディフォルトは"c:\syxedit"となっています。アイコンの登 録などは行いませんので、必要ならWindowsの機能を利用して作成して下さい。 最初にsysex.exeを起動した時、"SysEx"ボタンを押して、sysex.exeを起動し、 MIDIの設定を行ってください。 アンインストールはインストール時に作ったディレクトリを丸ごと削除するだけで OKです。 -------------------------------- 連絡先、著作権、転載などについて -------------------------------- JV-1010を入手したのですが、シーケンスプログラムとの連携がとれたパッチエデ ィタがありません。 JV-1010の場合、Marco Stellaさん作のWinJVやJurgen MosgraberさんのChangeIt! というフリーソフトの素晴らしいパッチエディタ/ライブラリアンがあり、JVのパ ッチを受信し、いろいろいじって、変更したパッチをJVに送って、確認しながら、 新しい音色を作るという機能では十分なのですが、出来上がったパッチをCakewalk に持って来るとなると、チェックサムの計算やアドレスの変更が結構大変です。 また、Cakewalkで編集中にちょっとパッチのパラメータをいじるということが出来 ません。CakewalkのSYSEXの編集機能でという手もあるのですがベタ打ちの16進ダ ンプを追いかけるということになり、これじゃ20年前のプログラムデバッグですよ ね(^^;;。 という次第で自作しました。 ローランド社のJVシリーズ用の音源の初期設定ファイルを簡単につくることを目的 と作られていますので、エディタ/ライブラリアンとしての機能は限定されていま す。もっと高機能/見栄えのいいものを使いたいということであれば、それなりの ソフトがいっぱいありますので、そちらを使って下さい(^^;;。 代わりに(?)、ソースコードを添付しますので、他の機種への対応などは簡単にで きると思います。コードはオープンソース扱いとします。改造は自由ですが、内 容に関して無保証ですし、結果についても作者は一切責任を持ちません。 また、このプログラムはフリーソフトフェアです。ご利用は自由ですが、使用し た結果については無保証ですし、プログラムの修正についても作者は一切の責任 を負いません。 他のネットへ転載する場合は、事後でも結構ですから、必ず作者に連絡して下さ い。 July.25.1999 Yo Kubota # JVEditと同様にSCEditというファンクションをつくれば、GS用に便利に使える のですが、誰かやりませんか。
from : クリップボードからのsysexデータの読み込み TPL : テンプレートSysexデータ表示、編集 to : クリップボードへのデータの書き出し read : syxフォーマットのファイルの読み込み write : syx/midフォーマットのファイルの書き出し(拡張子で識別) help : ヘルプを表示(ウェブページ表示しているだけです) sel : MIDIプレーヤの選択 quit : 終わり* 入出力するファイル名はダイアログで選びますが、syxファイルのドラッグ&ドロップも可能です。
shift : ファンクションの入れ換え set : JV用の編集画面で変更した内容をSysexに設定 Pa : send "temporary" patches to JV/XPs by using "SysEx.exe" Pf : send "perfomance" patches to JV/XPs by using "SysEx.exe"* 下段の全てのボタンはJV/XPシリーズ専用です。
port : ポート番号の入力 address : JV/XPのSysexのアドレスの上位2バイトの入力portは、wirteボタンでmidファイルを指定した時に機能します。ポートの指定はMIDIのff2101を使っています。
address : アドレスボックスの入力内容を有効にするかどうかの指定 buf-mode : 入力内容をクリップボードを使わず、内部のバッファで処理する モードの指定(詳細後述)
[500]XG SYSTEM # 先頭が '#' ',' ':' で始まる行はコメント行。 # 先頭が 0-9 A-F a-fで始まる行は16進データ F0 43 01 4C # ヘッダー N # 先頭が'N'だと、編集画面で改行します。 # 先頭が '%' で始まる行はデータ入力行。'='以降に入力数値を記述。 % length = B7 # バルクダンプの長さ。Bは2バイトの数字の指定。 % address = $00 00 00 # アドレス。$は16進データの指定。 % master tune =$00 04 00 00 # 10進で、0 4 0 0 と書くこともできます。 % master volume =$7f % master attenuator = 0 # 10進は1バイト単位に数字を並べる。 % transpose =$40 # '='の前のコメントは省略することもできます。その場合はこの直前の行であれ # ば "% = $40"と書けば、OKです。 N 00 F7 # チェックサムは自動計算しますので、とりあえず 00 をセット。XG用、GS用テンプレートなど作っていただけると嬉しいです。いいテンプレートができたら教えて下さいね。
system-common(1), system-tune(17), temporary-performance-common(1), temporary-performance-part(16), user-performance-common(32), user-performance-part(32*16), performance-mode-temporary patch-common(16), performance-mode-temporary-patch-tone(16*4), user-patch-common(128), user-patch-tone(128*4), internal-patch-common(128), internal-patch-tone(128*4), temporary-rhythm-setup(1), temporary-rhythm-note(64), user-rhythm-setup(2), user-rhythm-note(2*64)の領域が用意されています。
system-common(1), system-tune(17), temporary-performance-common(1), temporary-performance-part(16), internal-patch-common(128), internal-patch-tone(128*4)にはクラシック用のデータが初期設定されています(読み込む user patch は syxedit.ini で変えることができます)。また、syxedit.exe は編集したデータのアドレスが上記のバッファに対応していれば、該当する内部バッファに格納します。
1999年8月21日 v0.99d 永田さんから「まだコメントが見にくい」との注文がついた。設定ファイル の更新って、労力がかかるわりには面白くないので、手抜きしていたのです が、やっばりちゃんと手間かけて、直さないとダメですかね。 全部手作業で直していたら、疲れ果てるので、エディタの置換機能、正規表 現など多用して、さぼりまくる。なんとかかっこうはついたので、これでよ しとしよう。 あと「ボタンの使い方がわからん」という指摘もあり、こっちも多少手直し。 JV関係の機能をあとからつぎはぎで追加したので、操作系が増築を重ねた温 泉旅館という構造になっているのが問題でしたね。まあ、こっちのプログラ ムの直しは比較的簡単だったな。機能追加した時の操作方法の詰めが甘かっ たなぁ(^^;;;。 1999年8月14日 v0.99c 設定ファイルの書き直し完了。ああ疲れた。ついでにヘルプファイルの改良、 JV用ファンクションの機能強化などに対応。大きいバグがなければ、これで 公開するつもり。 1999年8月6日 v0.99a > 今度こそ、これで機能追加は打ち止め。あとは正式に公開するだけ。 と思ったら、永田さんから「コメントが見づらい。なんとかしたら」という注 文を頂いた。確かに、コメント領域と入力する領域が行が分かれていて対応関 係が分かりにくいとか、処理を単純化するため、編集領域にSysexの相対位置 を入れているのが、見にくくしているとか、問題点だらけ。付け焼き刃でいい かげんな実装をすると問題は起こるという証明だなぁ(^^;;。 で、思い切って、最初の実装にこだわらない表示方法に全面的に切り換え。 しかし、プログラムの修正は簡単に終わった(200ステップ程の書き換え)のだけ ど、設定ファイルの変更が大変。Perlか何かを使って、自動的に処理させよう かと思って検討したけど、スクリプトが複雑になりすぎる。しこしこ、手作業 でやってます(^^;;;。 1999年7月31日 v0.99 JV用のコメントを整備したのだけど、いちいちマニュアル見ないで出来るよう にしようと、MIDIインプリメントの内容を全部いれたら、修正したい時、目的 の場所を捜すのに苦労することが分かった(^^;;。 しょうがないので、またまた機能追加。JV-2080風にファンクションキーを使 って、目的の部分を一発で表示できるように改造。今度は、前回の失敗を踏ま え、最初から設定ファイルを使って機能の内容を実装できるようにしたので、 設定ファイルをいじれば、自分専用の機能を追加するということが簡単(?)に できると思います。 今度こそ、これで機能追加は打ち止め。あとは正式に公開するだけ。 1999年7月24日 v0.98 JV用のコメントですけど、ソースコードに直接ハードコーディングしていたの ですが、手直ししてて、やってられないと分かった。編集用の設定ファイルを 使って、自由に書き換えられる方式に変更。400ステップ程、破棄して、書き 直し(^^;。 設定ファイル使う方式は面倒なのでとらない方針だったのだけど、最初の方針 が悪いと、しっぺ返しを食うという証明だなぁ(^^;;;。 しかし、VCって、Cの標準の関数(gets)を使うと、ほんと挙動不審だねぇ。改行 コードが意味不明に'\r'になったり'\n'になったりする。なんちゅうコンパイ ラだ。しょうがないので、敵が何をしようと、対応できるようCRSetという関数 を作って対抗(^^;;。ついでに、改行コードに機種依存していたコーディングを 修正。まあ、この方が他のOS環境に移植するには、よさそうですね。 あと、隠し機能として、readでmidファイルを指定すると、"ff2101"のport番号 を自動変更、出力するようにした。syxex.iniとソースみれば使い方は分かると 思います。JV-1010を導入して、SC-88ProSTのポート番号がずれちゃったための 機能だけど、案外便利。このため、ファイルのマスクをはずした。 プログラミングはこれでお終い。あとはコメントの整備のみ。 1999年7月20日(海の日) v0.95 MIDIファイルの出力と外部プレーヤを使って送信(マンデルブロ方式^^;)させる 機能を追加。ついでにポートも指定できるようにした。 デルタタイムはちゃんと処理能力計算して時間差をおいて送るようにしたつも り。しかしMIDIファイルのフォーマットって、なんで、あんなにややこしいの だろう。可変長のデータ長表示なんて悪魔の発明みたいなもんだな。Cakewalk に何度「あんたの作っているのはちゃんとしたMIDIファイルじゃない」とおこ らたことか(^^;;。 Miyaplay95を使うと自動的にプログラムが立ち上がり、送信、終わると、自動 式にプログラムがターミネートされるので、実に快適。まったく、人頼みのだ けど(^^;、いいですね、この方式。Miyaanさんに感謝。 これで、Syxeditと楽器のキーボードがあれば音色を自在に操作できるようにな った(^^)。 jv-1010のサイトのhtmlをヘルプ起動させるよう変更した。これも得意の手抜き (^^;;。あとはjv用のコメントの整備して、完成とする予定。 ついに1500ステップを突破。あーあ、疲れた。 1999年7月17日 FMIDICLAのオフ会で、もくりんさんにjv-2080のマニュアルをみせてもらう。実 に分かりやすい。いままで、謎だったPerformanceとPatchのイフェクトの関係 が暗号解読できました(^^)。 コメントの並びを2080のマニュアル風に再整理するといいかな。 1999年7月中旬 ウェブサイトですけど、FMIDICLAとFMIDIVAに宣伝したら一週間で100件位のアク セス(カウンタをアラビア数字にしたものだから正確に何人だかよく分からないの ですよね(^^;;)。内、半分はローランド関係者(^^;;。日本のローランドのウェブ サイトって出来が悪いので、インタネットには興味のない会社かと思ってたけど、 意外に情報に敏感な会社なのね(^^;;;。 1999年7月11日 v0.91 JV用のコメントを使って16進を10進に変化する機能を作り込んだ。コメントの作 り方はソースコードを参照。とりあえず、performance partに実装。 この!xでやる方式、拡張が簡単で、なかなかいいと思うのだけど。でも、だんだ んゴタゴタしてくるかしら(^^;;;。 あと、JV用のコメントが相当いいかげん。見直す必要があるな。 Rhythm NoteをJVコメント付で出力すると、DlgItemTextの64KBの壁を突破するこ とが判明。コメント無しなら編集できるので、Note別にコメント付で編集して、 Cut&Pasteでくっつけるしかなさそう(^^;;。 1999年7月初め v0.90 β版をウェブサイトに公開。あんまりダウンロードする人いませんね(^^;;。 1999年6月下旬 v0.50 多少機能追加したもの使い、他の音源のデータをいろいろJV-1010に移植してみ る。 やっぱり、16進だけでのエディトって、なかなか大変ですね。patch番号みたい に16進二桁の数値をへんな具合に2バイトに分けている部分なんか、何回もやっ ているとほんと疲労困憊。 で、コメントを付けて、そこで編集できる機能を追加する形でJV用に機能展開さ せたらよかろうと考えた。あと音源にデータを送る機能がいりそうですね。 だんだんステップ数が大きくなってくる。800ステップを突破。まあウィンドウ ス固有の機能はメインルーチンと一部の関数に限定させているので、プログラ ム全体の見通しはそう悪くなってないと思うけど。 1999年6月中旬 v0.00 はでな見栄えのパッチエディタは趣味じゃないし、作る腕もないし、時間もない ので、徹底的に手抜き。テキストエディタ方式でいくことにする。どうせやるな ら汎用の方がよかろうと考え、機種依存する機能を関数に任せる構造にする。ひ な型をつくったら、400ステップ位。なかなかシンプル。まあまあですね。 編集領域の指定はlongを使いデータサイズが64KBを超えてもいいようにしたのだ けど、WindowsのDlgItemTextってint関数しかないみたい(^^;;。User Patchをま とめて処理するのは無理ですね。まあ、しょうがないかな。 1999年6月初め jv-1010を買ったが、あまりの使い勝手の悪さに驚愕。 パソコンでバルクダンプを編集するプログラムがないと、どうしようないことに 気が付いた(^^;;。インタネットをあっちこっち捜したが、適当なものがない。 仕方がないので、自作を開始。とほほ。