幾度となくバージョンアップを繰り返しているので、情報の古いところがあるかも知れません
(気が向いたときに直していきます)
設定方法
動作環境
Sun の最新の Java 実行環境 (JRE: Java Runtime Environment) が必要ですが、
すでにインストールされていることも多いと思います。下記のサイトで確認してみてください。
[Java ソフトウェアの無料ダウンロード ]
ブラウザの中でアプレットとして動作させるだけでなく、jar ファイルをダウンロードして通常のアプリケーションとして動かす こともできます。
こちらでは Windows XP + JRE 6 で動作を確認していますが、
Java 自体は OS やブラウザに依存しないので、JRE がその OS をサポートしてさえいれば、
Windows 以外でも原理的には動くはずです。
手元にないので自分では検証できませんが、Linux や Mac で動いたという報告はあります。
詳細はユーザの声 のほうを参考にしてください。
なお、Mac での動作は、SOFTPEDIA によって確認されています 。
ブラウザは、主に 最新の Mozilla Firefox
で試していますが、IE7 などでも動くと思います。
Windows の IE でアプレットとして動かす場合
Windows XP や Windows 98 などでは、Java 実行環境として Microsoft VM (MSJVM)
が入っていますが、MIDI Chord Helper は MSJVM の上では動作しません。
現在では MSJVM はすでにサポートを終了 しているので、
Java の「本家」である Sun の JRE に切り替えておくことをおすすめします。
切り替えについての詳細は Sun のサイトにある「Java の Microsoft VM から Sun JRE への移行」 を参照してください。
デスクトップ上の Internet Explorer のアイコンを右クリックし、
[プロパティ] を選んで下記の画面を表示させ、
[詳細設定] タブにあるJava (Sun) の下記の部分がチェックされていることを確認します。
もし Java (Sun) の項目がない場合 、Sun の JRE をインストールする必要があります。
古い JRE で Firefox を使っている場合の注意点
Firefox + JRE 6 Update5 の組み合わせで
Java アプレットを開くと、Firefox がフリーズするという症状が発生することがあります
(MIDI Chord Helper に限らず他のアプレットでも再現します)。
Update6 ではこの問題は解決しています。
→ 参考:TJINのソフト開発メモ:[Java]Java 6 Update 6 がJava.comで公開
Update5 でこの現象を回避したい場合は、Windows の場合、コントロールパネルから
Java コントロールパネル → 基本タブ → ネットワーク設定 →
ネットワークプロキシ設定 →「ブラウザの設定を使用」を「直接接続」に変更します。
【参考】
なお、いったんフリーズすると、画面のない Firefox プロセスが残ったままになることがあります。
こうなると Firefox を起動できなくなってしまいます。Windows の場合、
タスクマネージャで「プロセス」タブを開いて firefox.exe を右クリックして
「プロセスツリーを終了」することで、
リブートしなくても再び Firefox を起動できるようになります。
MIDI 音源
音を出すには MIDI 音源が必要ですが、最近の Windows では最初から Microsoft GS Wavetable SW Synth という Roland GS 音源が
ついているので、これをそのまま活用できます。
MIDI 音源(出力デバイス)が複数ある場合の選択方法についてはこちらを参照 してください。
MIDI接続設定
MIDI device connection ボタンで、MIDI デバイス接続画面が表示されます。
この画面では、ドラッグ&ドロップで MIDI デバイス間の接続を自由に組み替えることができます。
MIDIデバイスの種類
MIDIデバイスは次のようにグループ分けされています。
MIDI OUT :出力デバイス
MIDI IN :入力デバイス
MIDI IN/OUT :入出力デバイス
MIDIデバイスの開閉と接続
ドラッグ&ドロップで新しい MIDI デバイスを開くことができます。
起動直後は一番最初の MIDI OUT(Windows の場合は Microsoft MIDI マッパー)および
MIDI IN が自動的に開かれ、GUI やシーケンサーとの接続も自動的に行われています。
手動でデバイスを開きたいとき は、
左側のツリーメニューで MIDI IN または MIDI OUT を開き、
その中から開きたい MIDI デバイスをドラッグし、右側の接続図へドロップしてください。
なお、手動で開いても接続は自動的には行われません。
デバイス間を接続する には、Tx(Transmitter:MIDI信号の送信端子)からドラッグし、
Rx(Receiver:MIDI信号の受信端子)へドロップしてください。
複数の Tx から1つの Rx へ接続できます。
1つの Tx からは1つの Rx にしか接続できません。
Tx を増やすには [New Tx] ボタンをクリックします。
接続を切断するには、Tx を選んで [Close Tx] ボタンをクリックします。
デバイスを閉じる には、デバイス名の書かれたタイトルバーの右にある×をクリックしてください。
なお、×のないデバイスは、対応する GUI があるため閉じられないようになっています。
Java内蔵音源
Java Sound Synthesizer は Java の内蔵音源で鳴らすためのデバイスですが、
最近の JRE にはサウンドバンクがついていないため、このデバイスを選んでも、
そのままでは音が鳴りません。この音源で鳴らしたい場合は、Downloads Java Sound API: Soundbanks(英語) に従って
ダウンロード&インストールを行う必要があります。
基本的にはダウンロードしたサウンドバンクファイル soundbank.gm を
C:\Program Files\Java\jre<バージョン番号>\lib\audio に格納するだけです。
Java 内蔵音源を使うことで、Windows 内蔵音源とは一味違った音色を楽しめます。
仮想 MIDI ポートドライバ
MIDI IN/OUT のデバイスを別のシーケンスソフトの MIDI OUT/IN に接続するには
仮想 MIDI ポートドライバが必要ですが、これを実現するソフトして MIDI Yoke がよく知られています。
MIDI Yoke を入れておけば、マウスでコードを鳴らして他のシーケンスソフトへ
リアルタイム入力するなど、応用範囲が広がります。
ブラウザ内における MIDI デバイスの同時使用について
アプレットとして起動している場合、MIDI OUT(出力デバイス)を開いているときに、
同じブラウザの別のWebページで同じ出力デバイスを同時に開くことはできません。
例えば、次のような現象が確認されています。
MIDI Chord Helper アプレットを2つ起動すると、先に MIDI OUT に接続した側からのみ音が出ます
(それ以外の側からは音が出ません)。
MIDI Chord Helper アプレットで MIDI OUT が選択されているときに、
embed タグなどで MIDI ファイルが埋め込まれている別のWebページを表示させると、
そのWebページでは MIDI 再生ができなくなります。
このような現象を回避するには、まず、使っていないほうで MIDI OUT を閉じ、
使うほうで MIDI OUT を開きなおす必要があります。
ネットワークに接続せずに使う(ダウンロードしてオフラインで使う)
ネットワークにつながらない環境で使いたい場合は、まず、アプレットの jar (= Java ARchive) ファイルを
ダウンロードしてください。
「対象をファイルに保存」(IE7 の場合)あるいは「名前をつけてリンク先を保存」
(Firefox の場合)を選んで midichordhelper.jar を保存してください。
※ IE を使っていると、ファイル名が midichordhelper.zip と誤認される場合があります。
もし .zip になっていたら .jar に変えて保存してください。
Java アプリケーションとして使う
この midichordhelper.jar は Java アプレットとしてだけでなく、Java アプリケーションとしても起動できます。
Java アプレットと違って MIDI ファイルの読み書きを直接行えるので、オフラインで使う場合におすすめです。
【起動方法】
いくつかの方法があります。
jar ファイルをダブルクリックして起動
jar ファイルを右クリックメニューの「開く」で起動
OS のコマンドライン(Windows XP のコマンドプロンプトなど)から起動
拡張子 .mid のヘルパーアプリケーションとして登録したうえで *.mid をダブルクリックして起動
コマンドプロンプトから起動する場合は次のようにして起動します
(xxxdirxxx は midichordhelper.jar のあるフォルダ)。
cd xxxdirxxx
java -jar midichordhelper.jar
MIDI ファイルをダブルクリックして開くときのアプリケーションとして登録することもできます。
Windows XP の場合、C:\Program Files\MIDI Chord Helper\ というフォルダを作成して、
その中に midichordhelper.bat と midichordhelper.jar を格納しておくとよいでしょう。
midichordhelper.bat(バッチファイル)には、例えば以下の内容を入れておきます。
start /b javaw -jar "C:\Program Files\MIDI Chord Helper\midichordhelper.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
次に、何か適当な MIDI ファイルを右クリックして「プログラムから開く」→「プログラムの選択」で
表示される「ファイルを開くプログラムの選択」画面で「参照」から、
先ほど作成した midichordhelper.bat を選びます。「いつも使う」の
チェックボックスを選んでおけば、MIDI ファイルをダブルクリックするだけで MIDI Chord Helper を
起動できるようになります。
バッチファイルを使わず、ツールを使って jar ファイルを exe ファイルに変換する方法もあります。
このようなツールはいくつか出回っていますが、中でも特に軽量さを重視して作られたツールとして exewrap があります。
以下に、exewrap を使って midichordhelper.exe を作成する例を示します:
exewrap.exe -g -e DDE_CONNECT -i midichordhelper.ico midichordhelper.jar
-e DDE_CONNECT は二重起動の検出用で、MIDI Chord Helper ではこれに対応した
二重起動の検出機能を実装しています。
すでに起動中の MIDI Chord Helper が検出された場合は、アイコン化の解除と最前面への表示、
指定した MIDI ファイルのプレイリストへの追加が行われます。
【ドラッグ&ドロップ】
エクスプローラから MIDI ファイルをドラッグ&ドロップして
プレイリストに追加することもできます。演奏中でなければ自動的に演奏が開始されます。
演奏中にドロップされた場合は、次の演奏予約曲としてプレイリストに追加され、
自動的にプレイリスト画面が開いて知らせてくれます。
Java アプレットとして使う
Java アプレットとして使う場合、さらに次のような準備が必要です。
MIDIファイルの読み書きを行う場合は、Jakarta Project の Base64 変換用クラスライブラリ(commons-codec-1.3.jar)が必要です。Commons Codec のページからダウンロードしてください。
このライブラリが読めなかった場合、起動はできますが、
プレイリスト画面にある Base64 エンコード/デコードのボタンが使えなくなります。
アプレットを貼り付けた HTML ファイルを用意します。
MIDIファイルの読み書きを行う場合は、MIDI ファイルを Base64 テキストに変換(エンコード)したり、
復元(デコード)できるソフトも必要です。
詳細は「Base64 エンコード/デコード環境 」を参照してください。
アプレット貼り付け例
<applet name="midichordhelper"
archive="chordhelper.jar, commons-codec-1.3.jar"
code="ChordHelperApplet.class" width=760 height=500></applet>
※ アプレットの大きさは、バージョンアップによって変わる可能性があります。
この場合 width や height が合わなくなるかも知れないので、そのときは適宜調整してください。
commons-codec(Base64 エンコーダ/デコーダ)を使わない場合は以下のように記述できます。
<applet name="midichordhelper"
archive="chordhelper.jar"
code="ChordHelperApplet.class" width=760 height=500></applet>
自分のホームページに貼り付けて使う
このアプレットを使ったホームページを作成するには、オフラインで使う場合 と同様、
jar ファイルをダウンロードする必要があります。
アプレットをオフラインで使う場合との大きな違いは、Base64 エンコード/デコードを行うアプリケーションが、
CGI プログラムとなる点です。CGI プログラムとのデータのやりとりであれば、ブラウザに元々ついている
アップロード・ダウンロード用のファイル選択ダイアログを流用できます。
Base64 テキストの準備ができたときに JavaScript プログラムが実行されるようにすれば、
Java アプレットと連携できるので、アプレットでありながら通常のアプリケーションと同じように
ファイルの読み書きができるようになります。ただ、アプレットのセキュリティ制限を避けるための
Base64 変換のためだけに、ネットワークを無駄に往復してしまうというデメリットはあります。
CGI プログラムの代わりに JavaScript 関数を form action="javascript:xxx()" のように
指定することもできるので、この方法でネットワークを往復させないようにすることもできそうですが、
input type="file" の読み出しに対応したインターフェースは見つかっていません(もしあったら教えてください)。
CGIプログラムの設置
Perl の CGI.pm と MIME::Base64 モジュールを使うと、
Base64 エンコード/デコードを行う CGI プログラムを簡単に実装できます。
MIDI Chord Helper では以下のような Base64 エンコード/デコード専用の CGI プログラムを
作成して使っています。
[base64.cgi ] ← ご自由にダウンロードしてお使いください
▲ この CGI プログラムは、単にエコーバックするだけです。一般的なウェブアプリケーションと違い、
サーバ側へはファイルを保存しません。
画面から呼び出せるようにするには、以下のような HTML を記述します:
<form method="POST" enctype="multipart/form-data" action="base64.cgi" target="base64_in">
▼Base64エンコードしたいファイルを選択(指定がないとデコードするものと解釈されます)
<button type="reset">クリア</button><br>
<input type="file" name="in_filename" size="60"><br>
<br>
▼または、Base64デコードしたいデータを貼り付け<br>
保存するファイル名(必須):<input type="text" name="out_filename"></input><br>
データ:<textarea name="out_base64"></textarea><br>
<button type="submit">Base64エンコードまたはデコードする!</button><br>
<br>
▼エンコードしたファイル内容がここに来ます。<br>
<iframe src="about:blank" name="base64_in"></iframe><br>
<br>
</form>
このように表示されます:
▲あとは、これに JavaScript のプログラムを付け加えて、テキスト内容とアプレットの関数との間で
文字列の代入をするような処理を書きます。
Base64 エンコードが終わると base64Encoded() という関数が呼ばれるので、
「テキスト → アプレット」の転送をする処理をこの中に書きます。
転送が終われば iframe の内容はもう不要なのでブランクに戻します。
アプレットの play() で再生指示を出すことで、自動再生できます。
デコードのときは、form タグの onSubmit イベントに「アプレット → テキスト」の
転送をする処理を書きます。この処理は、CGI プログラムに送られる直前に実行されるので、
アプレットで編集した結果が CGI プログラムによってデコードされ、
ブラウザの操作で保存できるようになります。
なお、ユーザが操作する必要のない部分には
style="display: none" という属性を指定し、表示させないようにしておきましょう。
そうすれば、すっきりとした画面になります。
アプレットにパラメータを指定する
<applet>...</applet> の間に <param> タグを記述することにより、パラメータを指定できます。
MIDI Chord Helper で使えるパラメータは下記の通りです。
パラメータの名前(name=) 指定する値(value=) 説明
midi_file MIDI ファイルの URL(フルパス)
ここに MIDI ファイルを指定すると、アプレット起動時に自動的にロードされ、直ちに演奏が始まります。
指定できる MIDI ファイルは、アプレットの置かれたサーバ上にあるものだけです。
それ以外のサーバにある MIDI ファイルや、ローカルコンピュータ上の MIDI ファイルは指定できません
(指定すると Java のセキュリティマネージャによって読み込みが拒否されます)。
【廃止されました】 no_eject任意の値
イジェクトボタン[▲ ]を表示したくないときに指定します。
設定例:
<applet name="midichordhelper"
archive="chordhelper.jar"
code="ChordHelperApplet.class" width=760 height=500>
<param name=no_eject value="">
<param name=midi_file value="http://www.yk.rim.or.jp/~kamide/music/original_songs/thats_pla.mid">
</applet>
アプレットの関数を呼び出す
HTML ファイルに記述した JavaScript プログラムから、アプレットの関数を呼び出すことができます。
関数 説明
public int addToPlaylist(String midi_file_url)
midi_file_url に指定された URL の MIDI ファイルをプレイリストへ追加します。
URL の最後の / より後ろの部分は、ファイル名として取り込まれます。
追加先のインデックス値(0から始まる)を返します。追加できなかったときは -1 を返します。
指定できる MIDI ファイルには、param タグの midi_file パラメータと同様の制限があります。
public int addToPlaylistBase64(String base64_encoded_text)
base64_encoded_text に与えられた文字列を Base64 デコードしてプレイリストへ追加します。
追加先のインデックス値(0から始まる)を返します。追加できなかったときは -1 を返します。
引数 filename には、ディレクトリ名を除いたファイル名を指定できます(省略可)。
public int addToPlaylistBase64(String base64_encoded_text, String filename)
public void addRandomSongToPlaylist(int measure_length)
引数 measure_length で指定された小節数の曲を、乱数で自動作曲して追加します。
追加先のインデックス値(0から始まる)を返します。追加できなかったときは -1 を返します。
public void play()
プレイリスト上にある MIDI シーケンスをシーケンサへロードして再生します。
再生対象の MIDI シーケンスは、index を指定した場合はそのインデックス値(0から始まる)、
index を省略した場合はプレイリストで現在選択されているインデックス値です。
public void play(int index)
public boolean isRunning()
再生中、または録音中かどうか調べます。true のときは再生中か録音中、false のときは停止中です。
public boolean isPlaying()
public String getMidiDataBase64()
現在シーケンサにロードされている MIDI データを Base64 テキストに変換した結果を返します。
public String getMidiFilename()
現在シーケンサにロードされている MIDI ファイルのファイル名を返します。
ファイル名が設定されていないときは空の文字列を返します。
public void setOctavePosition(int position)
オクターブ位置を設定します。初期値は4です。
public void setChannel(int ch)
操作対象の MIDI チャンネルを変更します。引数には(チャンネル番号−1)を指定します。
初期値は0(MIDI チャンネル1)です。
public void setProgram(int program)
操作対象の MIDI チャンネルに対してプログラム(音色)を設定します。
引数には、General MIDI で指定できる音色を0〜127で表した数値で指定します。
public void setChordDiagramForGuitar()
コードダイアグラム(起動時はウクレレモード)をギターモードに変更します。
public void setAutoInversion(boolean is_auto)
自動転回を行わないときに false を指定します。初期値は true(自動転回を行う)です。
public void setOmissionNoteIndex(int index)
省略したい構成音を指定します
(-1:省略しない、0:ルート音を省略、1:三度を省略、2:五度を省略)。
初期値は -1 です。
public void setChordDiagramVisible(boolean is_visible)
is_visible を false にするとコードダイアグラム が隠され、true にすると表示されます。
public void setDarkMode(boolean is_dark)
is_dark を true にするとダークモード(暗い表示)になり、false にすると明るい表示になります。
Base64 エンコード/デコード環境
Java アプレットではセキュリティ上の制約があるため、ファイルやフォルダの読み書きを
行うには policytool によるポリシー設定が必要になります。
この制約を避けるため、アプレットへの入出力は MIDI ファイルの内容を Base64 エンコードした結果を
渡すことによって行います。
Base64 エンコードした結果はテキストデータなので、クリップボード経由でコピー&ペーストしたり、
HTML フォームの textarea タグの初期値として直接埋め込むことができます。
Java アプレットが直接ファイルを読み書きしなくてすむので、セキュリティ上の制約を回避できます。
Base64 変換を行うには以下の方法があります。
Base64 変換ソフトをインストールして使う
Rafflesia のように
クリップボードへ直接読み込めるタイプのものがおすすめです。
右クリックメニューの「送る」へ登録することで Base64 エンコードの操作が簡単になります。
「送る」へ追加するには、exe ファイルへのショートカットを \Documents and Settings\ユーザ名\SendTo へ置きます。
MIDI ファイルからの読み込みだけでなく、元の MIDI ファイルへの保存(デコード)も Refflesia で行えます。
この場合、コピー時に手動で Base64 ヘッダを除いた中身だけをコピーしたほうがよいでしょう
(ヘッダつきだと、デコードに成功しても、実際は壊れた MIDI ファイルを出力していることがあり、
他のソフトで読めない場合があります)。
メールソフトを使って変換する
Outlook Express や Thunderbird などのメールソフトは、添付ファイルをテキストデータに
変換して送信するための手段として、Base64 変換の機能が元々備わっています。
Webページ上で変換する
オンラインで動かす場合、Webページ上から呼び出した CGI プログラムを使って
サーバ側で Base64 エンコード/デコードする方法もあります。
当サイトではそのための CGI プログラムも作ってあります。詳細は「自分のホームページに貼り付けて使う 」を参照してください。
また、Base64 エンコード/デコードが行えるページとして、
BeeTools というサイトがあります。
使い方
MIDIキーボード
メロディを演奏する
以下の方法でメロディを演奏できます。
マウスで演奏する
画面上のキーボードをマウスでクリックして演奏できます。
PCキーボードで演奏する
画面上のキーボードにフォーカスを入れると(一度マウスでクリックする、または Tab キーでフォーカス移動)、
文字が出てきて PC のキーボードで弾けるようになります。
キー配列は「日本語106キーボード 」用に合わせてあります。
「英語101キーボード」など、記号キーの場所が異なる PC キーボードでは位置が合わないことがあります。
外付け MIDI キーボードで演奏する
MIDI IN で選択されたデバイス に MIDI キーボードがつながっていれば、
その MIDI キーボードで演奏できます。
終止音からキーを選択
単音を鳴らすと、その音に対応するコードボタン に || マークが現れます。
終止音(相対音階のド(長調の場合)、またはラ(短調の場合))を鳴らせば、
出てきたマークの真上にある調号ボタン の調であることがわかります。
例えば、レの音を鳴らすと D と Dm に || マークが現れます。
相対音階がドに聞こえれば、D の真上 → ## の調号ボタンを選択
相対音階がラに聞こえれば、Dm の真上 → b の調号ボタンを選択
MIDI チャンネル・MIDI メッセージ送信
MIDI の仕様により、最大16個のチャンネルが使用できます。
それぞれの MIDI チャンネルには音色(Program Change)など色々なパラメータを設定できます。
そのためには [Send MIDI event] ボタンで出てくるダイアログから MIDI メッセージを選び、
[Send] で送信します。
オクターブ
上側にくっついているスクロールバーで、オクターブ位置をシフトできます。左右の矢印(← →)も使えます。
また、スクロールバーのすぐ右にあるスライダで、表示するオクターブ数を調整できます
(3オクターブ 〜 11オクターブ)。
表示範囲を外れた音階を鳴らそうとすると、その音階が表示される位置まで自動的にスクロールされます。
ベロシティの設定
V= の値は、マウスまたはPCキーボードで演奏するときの打鍵の強さ(ベロシティ)です。
これは音楽記号でいう pp, p, mp, mf, f, ff のような音の強さに相当する値です。
0〜127 の範囲で設定できます。
調性表示欄
画面上のキーボード上側の Key: は、調を表します。この調は調号ボタン の選択状態とカポの設定 によって決まります。
この調のスケールから外れた音階を出すと、白抜きで表示されます。
マイナーキーの場合は常にナチュラルマイナースケール(自然的短音階) が基準となります。
周波数表示
表示される周波数 [Hz] は、MIDI Tuning Standard の仕様
(A=440Hz)に基づいて計算した周波数です。実際の周波数は、コントロールチェンジRPNの
「コースチューニング」「ファインチューニング」によってシフトするほか、ピッチベンドチェンジによっても
一時的にシフトします。
●マークの伸縮
MIDIのピッチベンドチェンジを受信すると、音程が変化したことを示すために●マークが左右に伸びます。
また、MIDIのモジュレーションデプスを受信すると、●マークが上下に伸びます。
ピッチベンドセンシティビティ(コントロールチェンジの RPN 0000)によって音程の変動感度が上がると、
それに合わせて横の伸び幅も拡大されます。
デフォルトは最大+−2半音ですが、例えば+−12半音(+−1オクターブ)まで拡大された場合、
最大1オクターブの幅で●マークが伸びていきます。
調号ボタン(キーの選択)
コードボタン の上にある 7b 〜 7# は、
五線の先頭についている調号 の♭や#の数を表した「調号ボタン」です
(ナチュラル記号は♭も#もつかないことをハッキリと示すために表示しています)。
コード演奏をする前に、この調号ボタンでキーを選んでおくことをおすすめします。
キーに合わせてコードボタンの背景色が左右にシフトするので、よく使われるコードの範囲が一目でわかります。
調号の♭や#の数がわからなくても、次のようにすれば簡単に合わせられます。
コード譜を見て弾く場合:「曲が終わったように聞こえるコード」を探して
そのコードがピンク中央に来るように合わせてください。
メロディの単音から探す場合:曲を聴きながら画面上のピアノキーボードを鳴らして相対的に「ド」に聞こえる音を探します。
見つかったら、MIDIキーボード の「終止音からキーを選択」を見てキーを特定します。
調号ボタンを右クリックすると、6マス離れた調号(五度圏 で正反対の位置にある調号)が選択されます。
この操作を応用すると、今選択されている調号の隣を右クリックするだけでキーを半音だけ上下させることができます。
右隣を右クリック … 半音上げ(終盤でキーが半音上がる曲を演奏するのに便利です)
左隣を右クリック … 半音下げ
フォーカスが入っていれば、PCのキーボード(矢印キー)を使って選択位置を移動できます。
→ … 調号の#を1個増やす(♭を1個減らす)
← … 調号の♭を1個増やす(#を1個減らす)
↑ … 半音上げる
↓ … 半音下げる
コード譜に Capo: が書かれている場合、カポ機能 を使うと便利です。
MIDI ファイルを再生した場合、調号ボタンに以下のような変化が現れます。
MIDI ファイルで指定された調に合わせて選択位置が移動します。
調の指定は曲の先頭だけでなく、転調するために曲の途中に入っていることがありますが、
このような場合も選択位置が移動します。
選択されている調号ボタン上に「回」マークが表示され、リズムに合わせて徐々に消えていきます
(ただしメタイベントの「テンポ」または「拍子」の設定が間違っているとリズムに合いません)。
1拍目は「回」全体が表示されていますが、最終拍で完全に消えます。1拍目の表示色は、♭系=青系、
#系=黄色系、どちらでもない場合は白になります。
コードボタンで和音を演奏する/コードネームを文字入力して鳴らす
コードボタンは下記の3つの段から構成されています。
これらのコードボタンをマウスでクリック、ドラッグして鳴らしたり、PCのキーボードで鳴らしたりできます。
また、PCのキーボードでコードネームを文字入力して [Enter] キーで鳴らすこともできます。
マウスでコードを鳴らす
コードボタンをクリックするとそのコードの音が出て、コードネームが画面上のキーボード の上に表示されます。
音を止めるには
コードボタンで出した音は、マウスボタンを離しても止まりません。
必ず音を止める操作をしてください。音を止めるには、今選択されている調号ボタン をもう一度クリックするか、フォーカスを他の場所へ移動します。
アルペジオ
クリックしたときはすべての音が同時に鳴りますが、そのままコードボタンの上で
マウスホイールを回すと構成音が1個ずつ鳴り、アルペジオ 演奏を楽しめます。
数字などのついたコードを鳴らす
sus4 を鳴らすには、そのルート音のメジャーコードボタンの上にある sus4 ボタンを使います。
例えば、C の上にある sus4 をクリックすると Csus4 のコードが鳴ります。
右クリックや修飾キーを併用すると、さらに多くの種類のコードを鳴らすことができます。
クリック操作 元のコードに何がつくか?
1. 右クリックまたは [Shift]
右クリック 7 がつきます。
[Shift]+右クリック M7 がつきます。
[Shift] のみ 6 がつきます。
2. [Alt] キーを押しながら
メジャー -5 がつきます。
マイナー
sus4 sus4 が取り消されたうえで +5 がつきます。
3. [Ctrl] キーを押しながら add9 がつきます。
上の 1. 〜 3. の操作は自由に組み合わせることができます。
出来上がった組み合わせが dim、aug のような別の表記に該当する場合、その表記に置き換えられて表示されます。
以下に例を示します。
[Alt] Bm → Bm -5 → Bdim
[Alt] [Shift] Bm → Bm 6 -5 → Bdim7
[Alt] 右クリック Bm → Bm 7 -5 → Bm7-5
[Alt] Csus4 → C +5 → Caug
このように複数の操作を組み合わせることで、よく使うほとんどのコードをカバーできます。
ただし、マウスボタンと修飾キーだけでは割り当て空間に限界があるため、
テンションコードについては一部出せないもの(-9 +9 11 13 など)があるほか、
分数コードの分母についても指定できません。
このようなコードの出し方については、後述の「文字入力して音を出す」を参照してください。
修飾キーや右クリックだけでなく、コードボタンを上下左右にドラッグすることによって
7 などをつけることもできます。
ただし、後から追加された音のみに遅れが生じます。
状況に応じて修飾キーとドラッグを使い分けてください。
MIDI Chord Helper で出せる主なコード(○のついている操作を併用します)
コードの 種類
M/m/sus4
7/M7
6/M7
+5/-5
add9
ドラッグする 場合の方向
使用する コードボタン
右クリック
[Shift]
[Alt]または 中クリック
[Ctrl]
メジャー メジャー - - - - -
7 ○ - - - ←
M7 (maj7) ○ ○ - - →
6 - ○ - - ↓
m マイナー - - - - -
m7 ○ - - - ← または ↑
mM7 ○ ○ - - ↓
m6 - ○ - - →
dim (m-5) - - ○ - -
m7-5 ○ - ○ - ← または ↑
dim7 (m6-5) - ○ ○ - →
sus4 sus4 - - - - -
7sus4 ○ - - - ←
aug (+5) - - ○ - -
add9 メジャー - - - ○ ↑
9 (79) ○ - - ○ 右クリック+↑
M9 ○ ○ - ○ -
69 - ○ - ○ -
PCキーボードを使ったコード演奏
キー配列は日本語106キーボード対応です。マウスでクリックしてフォーカスを入れておく必要があります。
PCキーボードを使ったコード演奏の場合、以下のようになります。
ピンク中央の列が、[6]、[Y]、[H]、[N] の列に対応した位置関係になっています。
[6]、[スペース] のいずれかのキーで、音を止めることができます。
右クリックが使えないため、7th 用に [Shift] を割り当ててあります。
片手での演奏で [Shift] が遠いと感じた場合、[7] を押してから
他のコードに対応するキーを押して 7th をつけることもできます。
同様に、[5] を押してからの場合は、M7 がつきます。
6th を出したい場合は、構成音の同じ m7 で代用してください。
[Ctrl] キーは使用できません。このため 9th テンションをつけることはできません。
[Alt] キーは、マウスで演奏するときと同様に、+5 や -5 をつけるために使用できます。
コードネームを文字入力して音を出す
コードネームをテキスト欄(コードボタンの下にある歌詞表示欄)に入力して
[Enter] キーを押すことによってコードを鳴らすこともできます。
半角文字のみ受け付けます。♭(フラット)は半角小文字の b で表します。
音名を表す ABCDEFG は、通常は大文字を使いますが、2017年以降のバージョンでは小文字も認識するようになっています。
M7 を maj7 と書いたり、m7-5 を m7b5、m7(-5) などと書いても解釈できます。
度数のうち 5 9 11 13 はカンマ区切りで () に入れて指定できます
(例:Cmaj7(+9,11)、E7(-5,-9) など)。
+- をつけることもできますが、同じ度数を複数指定することはできません。
また、11 は + のみ、13 は - だけが指定できます。
他、どんな形式のコードが解釈できるかは、実際に入力して確かめてみてください。
空欄にして [Enter] を押すと、今出ているコードの音が止まります。
ルート音が解釈できなかったときも同じ動作をします。
ルート音のあとに来るサフィックス(m7 や M7 などで表される度数などの部分)に
解釈できない箇所がある場合、その部分を無視してコードを鳴らします。
分数コードは、ベース音を / または on で区切って入力できますが、実際の音には反映されません。
ベース音を鳴らしたいときはコード進行から MIDI データを作成 して鳴らしてください。
自動転回(Auto Inversion)・省略音の指定
コードの構成音は通常、ルート音(赤い● )が左端ですが、
音域を一定の範囲にまとめるために、この順序を自動的に変えて(転回して)鳴らす機能がついています。
起動時は転回が有効になっています。この指定を変更するには、
小さな鍵盤のアイコンをクリックしてプルダウンメニューから選択してください。
転回しないようにするには、Auto Inversion のチェックを外します。
転回だけでなく、構成音の最初の3音のうちいずれか一つを省略して鳴らすような指定も可能です。
そのためには Omit 5th(5度を省略)、Omit 3rd(3度を省略)、Omit root(ルート音を省略)、のいずれかを指定します。
省略しない場合は All Notes を選びます。
例えば、パワーコード を出したいときは Omit 3rd を選択します。この場合、
音色を 29:Overdriven Guitar や 30:Distortion Guitar などにして1オクターブ下げてみると、
よりパワーコードらしくなるでしょう。
なお、パワーコードの X5 表記(例えば C なら C5 のように表される)には対応していません。
省略音の指定にかかわらず、コードネーム表記は元のまま表示されます。
コードボタンに表示される図形からコードを判定する
MIDI によって音が鳴ると、その音をルート音として持つコードボタン が自ら反応し、
光る図形を表示します。この図形の動きを読むことで、コード進行を耳だけでなく
見た目のイメージで把握できます。例えば、以下のような場合に図形が表示されます:
MIDI ファイル再生時
画面上(コードボタン、ピアノキーボードなど)をクリック、あるいは PC のキーボードで鳴らしたとき
外付け MIDI キーボードで鳴らしたとき
表示される図形の種類
図形
鳴っている音
コードボタンへの表示
メジャー マイナー sus4 記号の意味
すべての構成音 ○ ○ ○
○:常に表示
-5:減5度が同時に鳴っているときのみ表示
M3:長3度が同時に鳴っているときのみ表示
×:表示されません
ルート音のみ ○ ○ ×
低いルート音 ○ ○ ×
ルート+3度 (完全5度省略) ○ -5 ×
ルート+減5度(-5/dim5) M3 ○ ×
ルート+長3度+増5度 (+5/aug5/短6度 ) M3 × ×
複数の項目を同時に満たしている場合、図形が重なって表示されます。
MIDIファイル再生時、図形の乱れを最小限に抑えるために、ドラムなどを鳴らすリズムパートのMIDIチャンネル
(指定がなければチャンネル10)からの音は図形表示の対象外としています。
ただし、特定のMIDIチャンネルで効果音のような音色が使われていたりすると、
その影響で図形が乱れることがあります。特に、効果音のノート番号が示す音階がスケールを外れていると、
+や○といった「不協和音的な図形」が現れやすくなります。これが一瞬で高速に変化した場合、
まるで星のように美しくキラキラしたイメージが駆け抜けていく姿がみられます。
図形の色
色は、調号ボタン で選択したキーに対するスケール
からどのように外れているかによって変化します。
マイナーキーの場合は常にナチュラルマイナースケール(自然的短音階) が基準となります。
赤やピンクはスケールを外れていない音、青は♭方向、黄色は#方向に外れている音を示します。
キーが適切に設定されていないと、スケールを外れているようには聞こえないのに青や黄色が目立つ、
といった現象が起こります。
点灯/消灯
明かりのスイッチのような点灯/消灯ボタン(歌詞表示欄の右)で配色を切り替えられます。
MIDI ファイルをロードすると自動的に「消灯」され、演奏が始まるとイルミネーションのように
コードボタンがきらきらと輝きます。
カポ設定によるずれ
カポ機能 で移調している場合、クリックすると別のコードボタンが光ります。
これは、マークの表示が、調号ボタンの示す演奏キーではなく、オリジナルキーを元にして決められているためです。
コードボタンに現れる図形の例
【 単音の C 】
右端の短い線は、隣のコードボタン、すなわち完全5度(周波数3倍の成分)上のルート音が
弱く鳴っていることを示すと同時に、当該コードボタンを弱く浮き上がらせる働きをします。
【 低い単音の C 】
この表示はベース音を検出するのに便利です。複数箇所に□マークがあった場合に
どちらがルート音かを識別したり、ルート音とベース音が異なる「分数コード」を識別するのに役立ちます。
ただし、常にベース音を検出できるとは限らないことに注意してください。
低音部かどうかを判定する基準はノート番号の大きさだけなので、
複数の音階に出ることもあれば、全く出ないこともあります。
【 C のパワーコード 】
パワーコード とは、ルート音と完全5度上の音(右隣のルート音)だけで構成したコードのことです。
該当するコードが縦長の線で挟まれているように見えます。
▼実際にパワーコードを演奏してみた動画(初期の頃なので、ちょっと画質がいまいち...そのうち高画質版を作ろうと思ってます)
【ニコニコ動画】【パワーコード】をマウスで弾いてみた
【 C の5度省略 】
ルート音と、3度上の音だけ が鳴っていることを示します。
メジャーコードの完全5度が省略されたときに、該当コードを弱く浮き上がらせる働きをします。
【 C 】
構成音が全部鳴っている状態です。右側や上側を中心に || の模様が出現します。
|| の出現位置を覚えておくと、「回」マークが出にくいアルペジオ演奏時にコードを追いやすくなります。
【 Caug 】
aug を鳴らすと+マークが現れます。+マークは、必ず4マスおきにずらっと並びます。
この図を見るだけで、Caug、Eaug、Abaug が同じ構成音を持つもの同士であることが一目瞭然です。
ルート音は実質12種類ですから、aug の構成音の組み合わせは12÷3=4通りしかないことがわかります。
【 Bdim 】
単音の F と B が互いにトライトーンの関係にあるため、Fm と Bm の両方に丸がつきます。
3度上を示すマークが Bm にしかないことから、この場合のコードは Bdim トライアド(Bm-5)の
構成音がすべて鳴っていることがわかります。
【 G7 】
7th コード(属七の和音 = dominant 7th)を鳴らすと、このように元のコードの右下に○が出現します。
G と Bdim トライアドの構成音を重ね合わせたコードであることが一目でわかります。
dim トライアドを鳴らすと、左上のコードの 7th つきが鳴ったように感じてしまうのはこのためです。
この性質を応用し、Bdim7 に変えてみるとか、G と Bdim7 を合体させて G7(-9) のような
使い方をすることもあります。
【 CM7 】
M7 (= major 7th) を鳴らすと、元のメジャーコードの右下に□が現れます。
CM7 は C と Em の構成音を重ね合わせたコードであることがわかります。
【 Am7 】
m7 (= minor 7th) を鳴らすと、元のマイナーコードの真上にあるメジャーコードが同時に点灯します。
Am7 は C と Am の構成音を重ね合わせたコードであることがわかります。
C6 も同じ構成音を持つため、全く同じ形になります。
【 AmM7 】
mM7 (= minor major 7th) を鳴らすと、元のマイナーコードの真上にあるメジャーコードに+が出現します。
Am と Caug の構成音を重ね合わせたコードであることがわかります。
【 Bm7-5 】
m7-5(= half-diminished)を鳴らすと、このように少し複雑な形になります。
Bm7-5 と Dm6 は全く同じ構成音を持っているため、元のコード Bm の3マス左にある Dm が四角く光ります。
G9 を鳴らしたときも、これと似た形が現れます(G7 と Bm7-5 を合体したような形になります)。
【 Bdim7 】
dim7 を鳴らすと、このように3マスおきに○がずらっと並びます。
この図を見るだけで、Fdim7、Ddim7、Bdim7、G#dim7 が同じ構成音を持つコードであることがわかります。
ルート音は実質12種類ですから、dim7 の構成音の組み合わせは12÷4=3通りしかないことがわかります。
【 G7sus4 】
元の sus4 コードのすぐ左隣が同時に光ります。Csus4 と Gsus4 を合体したようなコードだということがわかります。
sus4 は完全5度ずつ離れた音で構成されているため、まるで、隣近所でいくつかのパワーコードが
同時に鳴っているかのような表示になります。
【 Dm7/G 】
分数コード では、コードの構成音でない音が分母に来るケースがあります。
その中でも特に出現頻度が高いのがこの形です。
コードボタンからの場合、F69 あるいは G9sus4 として出すことで近似的にこの形を出すことができます。
【 Fadd9 】
add9 を鳴らすと、元のコードの右上の sus4 が同時に点灯します。
F と Csus4 が組み合わさったような構成音を持つことがわかります。
分数コード F/G の場合も、これと似た形になります。
白鍵をすべて鳴らしたときの形です。
テキスト入力でこの形を出すには、CM7(9,11,13) というコードを入力します。
C を他の音に変えた場合も、単に左右にずれるだけで形は全く同じです。
画面上のキーボードには、長調の7音階全部に●がつくので、
ある長調の音階を調べたいときにも使えます。
背景色の赤っぽいエリアであっても、Fsus4 だけはスケールを外れた音(Bb)があるので光りません。
逆に、背景色の黄色っぽいエリアでは sus4 が全部光り、さらに Bm が丸く光ります。
この形は、低気圧の雲の形によく似ています。
キーになるメジャーコードが低気圧の中心、黄色(#系)エリアが暖かく湿った空気、
青(♭系)エリアが冷たい空気、sus4 が温暖前線、青のマイナーコードの列が寒冷前線に見えます。
天気から感じる印象と、コード進行から感じる印象 − この2つが見事に調和しているのがよくわかります。
この他にも色々なパターンがあります。実際に自分でコードボタンをクリックして探してみてください。
実際の音楽では、例えば F と Csus4 が同時に光っても、コードを弾いているパートでは Fadd9 ではなく
単なる F コードを弾いているだけ、ということもあります。どちらなのかわからない場合は、
自分でクリックして音を出して聞き比べてみるのが一番です。
アルペジオ(分散和音)演奏の場合、|| マークがあちこちに移動するばかりで
[回] マークとしてはっきり現れにくくなります。これは現在発音中の音だけを頼りにしているためです。
仮に音の残像効果をエミュレーションしたとしても、形をはっきり出すのは困難です。
そもそも「メロディからコードを選ぶ」のは「かな漢字変換で候補を選ぶ」のと同じで、
機械に任せられない部分です。ぜひとも、人間の目に備わっている「天然の残像効果」と
自分の感覚をうまく活用して最適な候補を選んでみてください。
コードダイアグラム
コードボタンでコードを鳴らす と、ウクレレ用、ギター用(どちらか一方を
Ukulele / Guitar のラジオボタンで選択)のコードダイアグラムが表示されます。
フレット範囲の移動は、横スクロールバーで行います。
初期表示では、コードの構成音を出せるすべての場所に○印がつきます。
縦スクロールバーで1個ずつ下がると、構成音が揃う押さえ方のバリエーションが次々と表示されます
(ドミナント 7th コードの五度省略や、9th コードのルート音省略のパターンも表示します)。
縦スクロールバーが先頭にある場合は、○印をクリックして、
その○印を使ったバリエーションへ移動することもできます。
×は弾かない弦、左端の○は開放弦で弾く弦です。●や○の色はコード構成音の順序を表します。
これは画面上のキーボードに表示される●の色と同じなので、どの弦でどの音階を鳴らすかが、色でわかります。
赤がルート音 、以後順番に青 、黄土色 、緑色 、紫色 、の順です。
dim と dim7
Wikipedia 英語版の Diminished triads によると、dim は m-5(3音=トライアド)の
意味で使うのが正しい使い方です。しかし、中には4音の dim7 を dim と省略して表記する、といった
非常に紛らわしい記述 をしているドキュメントも見受けられます。
特に、ギターやウクレレなどのコードブックに dim と書いてあった場合は要注意です。
実は dim7 の構成音が書かれていたりします。
MIDI Chord Helper では本来あるべき表記として
dim=3音、dim7=4音 、に統一してあります。
こういった事情があるので、dim のコードダイアグラムを調べるときは
dim7 も同時に調べてみる ことをおすすめします。
バリエーションの順序
縦スクロールバーで変化するバリエーションの順序は次のようになっています。
同じ弦の中では、最初が開放弦○ → 左のフレットから順に● → 最後は×
切り替えは下の弦ほど優先度高
このことを実感するには、ギターモードにして縦スクロールバーを動かしてみるとよいでしょう。
下の弦へ行くほど○→●→×の変化が激しく、上の弦へ行くほど変化がゆっくりになっていることがわかります。
ギターの場合は 100 通り以上出ることもあるため、この順序を知っておけば、
比較的スムーズに自分の探している押さえ方にたどり着きます。
チューニング設定の変更
左端の音名をクリックしてチューニング設定を変更することができます。
半音上げる → 左クリック
半音下げる → 右クリック
元に戻す → Ukulele / Guitar のラジオボタンをクリック
カポの設定
[Capo] チェックボックスについてはこちらを 参照してください。
テキストへの記録
コードダイアグラムに表示されたコードネームを、歌詞表示欄に出力できます。
Windows の場合、メモ帳と同じコピー&ペーストのショートカットキー(Ctrl-C など)が使えるので、
他のアプリケーションとのやりとりも可能です。
カポによる移調
ギターやウクレレなどの弦楽器では、押さえ方を変えずにキーを高くするための器具
「カポタスト」(通称「カポ」、詳しくはapollonmusicのカポタスト解説 やWikipedia などを参照)が使われることがあります。
コード譜によっては「カポをn番目のフレットにつける」という指定があり、
それに基づいて移調されているものもあります。これを見てコードボタンで演奏するとき、
頭の中でオリジナルキーのコードに戻しながら演奏するのは大変です。
そこで、このような場合でも楽にオリジナルキーで演奏できるよう、
カポと全く同じようなイメージで移調できる機能を用意しました。
例えば、コード譜に
Original key:Gm / Capo:3 / Play:Em
と書かれていた場合は次のように設定します。
Capo:3 ... コードボタン のほうの [Capo] をチェックし、その隣にある数値を 3 に設定します。
Play:Em ... キーを Em としたコード譜で弾くので、Em の真上にある調号ボタン # を選択 します。
あとはコード譜の通りに弾くだけで、Original key:Gm の音が出ます
(Capo:3 なので Em が半音3個分上がって Gm になります)。
実際に出ている音程に基づいて、キー、コード、構成音が画面上のキーボードに表示されます。
コードボタンに出てくる図形 の位置や色は
実際に出ている音程に基づいて決まるので、クリックしたコードボタンとは別のコードボタンが光ります。
コードダイアグラム のほうの [Capo] をチェックすると、ギターやウクレレでカポを使って演奏するときに
どんなコードを押さえればよいかが表示されます。
カポの数値は、コードボタンのほうの [Capo] と共通です。
コードボタンのほうの [Capo] とは逆に、数値の示す半音の数だけ下げられたコードが表示されます。
両方の [Capo] をチェックすると打ち消し合うため、コードボタンで弾いた通りのコードが
ダイアグラムに表示されますが、実際に出る音は移調されます。
カポの数値は1〜11の範囲で設定できます。カポなし(Capo: 0)に戻したいときは
チェックを外してください。
MIDIシーケンサ機能(録音・再生・編集・ファイル入出力)
MIDIファイルの読み込み、書き込み、再生、リアルタイムレコーディング、編集ができます。
赤いペンのアイコンボタンをクリックすると、編集画面が表示されます。
読み込みと書き込み
編集画面にはプレイリストがついています。
ファイルを読み込むと、まずプレイリストに対して追加されます。
再生や録音を行うには、シーケンサーへロードした状態になっている必要があります
(ロードされたシーケンスには Position 欄に「分:秒」が出ます)。
プレイリストには複数の曲を格納でき、追加した順序で連続再生させることができます。
シーケンスを新しく作成する
プレイリストのすぐ下にある [New] ボタンで、新しいシーケンスを作ることができます。
作成時に以下のパラメータを指定できます。
Sequence Name - シーケンス名を指定します。主に、曲のタイトルとアーティスト名を入れるのに使います。
PPQ - Pulse Per Quarter の略で、四分音符1個が何 Tick かを表す「分解能」です(タイムベースとも呼ばれます)。
なお、一度作ったシーケンスの分解能は変更できません。
分解能を変えたいときは、新しい分解能でシーケンスを作り直すなどの方法をとる必要があります。
Time signature - 拍子を指定します。
四分音符=の欄 - テンポ(1分あたりの四分音符の数)を指定します。
四分音符をリズミカルにクリックすると、その速さに応じて変更されます。
Max measure - 最大小節数を指定します。この値よりも、コード進行が示す小節数のほうが
大きい場合は無視されます。
Chord progression - コード進行とキー(Key: Am のような形式で1行)を
入力します。[Add to List] をクリックすると、このコード進行をもとにしてコード、
ベース、メロディのトラックが自動生成されます。
メロディは乱数によって自動的に作り出されます。
最大小節数(Max measure)を指定して [Randomize] ボタンをクリックすると、
その小節の長さを持つコード進行をランダムに自動生成します。
キーだけでなくテンポや拍子もランダムに変更されます。
認識できるコードネームの形式については、「コードネームを文字入力して鳴らす 」を参照してください。
分数コードを指定すると、その分母がベース音に反映されます。
例えば、Dm7/G のように指定すると、コードトラックに Dm7 のコード(レ・ファ・ラ・ド)が、
ベーストラックに低い単音の G(ソ)が生成されます。
小節の区切りには | または改行を、コードネームの区切りにはスペースまたはタブを使います。
コードの時間的な長さは、小節内にあるコードネームと、同じコードの継続を表す % を含めた
個数によって等分されます。
なお、0個だった場合はその小節は無視されます。
認識できなかった文字は、歌詞として扱われます(音長の等分計算には使われません)。
Transpose [+Up] [-Down] のボタンで、コード進行のテキストを移調できます。
テキストで書かれたコード譜を移調したいときに便利です。
異名同音の調が存在する場合は [Enharmonic] ボタンで♭表記と#表記を切り替えることができます。
[Relative key] ボタンは、キーを平行調のメジャー/マイナーへ切り替えたいときに使います。
※ コード進行とキーとの間にずれがあると、変化記号の使い分けが狂ってしまい、
ダブルシャープやダブルフラットが異常に多くなったりすることがあります。
このような現象を防ぐためにも、キーは必ずコード進行に合ったものを設定してください。
編集
MIDIイベントをクリックすると小節位置(Measure:Beat:Tick)が入力欄にセットされます。
Pair NoteON/OFF チェックボックスは、NoteON イベントと NoteOFF イベントを
ペアとして扱いたい場合にチェックします。
同一MIDIチャンネル、同一MIDIノート番号で最寄りの NoteOn/OFF イベントがペアとなり、
どちらか一方のイベントが選択されたときに、もう一方も自動的に選択されます。
なお、編集の仕方によっては、いわゆる「三角関係」ができてしまうことがあります。
三角関係を解消するには、チェックを外してペアを解除し、単独で削除などの操作を行ってから
再度チェックしてください。
MIDI ファイルが未保存だった場合、Java アプリケーションとして動かしている場合は
保存せずに終了してよいか尋ねてきますが、アプレットとして動かしている場合は尋ねてきません。
この編集機能は javax.sound.midi の Sequence クラスに展開された MIDI データの中身を
JTable で編集できるようにしただけの原始的なものです。
より高度な編集機能がほしい場合は、別のシーケンスソフト を用意してください。
録音
録音するには、どのMIDIチャンネルをどのトラックへ録音するかを MIDI Editor の中で指定します。
先頭のトラックは、曲のタイトル、テンポ、拍子、調などを設定するのに使います。
特に、曲のタイトルは必ず先頭トラックの先頭位置に 入れてください。
そうでないと正しく「曲のタイトルだ」と認識されません。
次に、曲の長さを設定します。これは EOT( = End Of Track )の小節位置(Measure:Beat:Tick)を
移動することで可能です。曲の長さが0のままで録音すると、ビート(拍)の表示が先頭から進まなくなり、
リズムを取るのが困難になってしまうので、録音しようとする小節数以上の長さを確保しておきます。
録音する先のトラックを作成し、RecCh. でどのチャンネルをどのトラックへ録音するかを指定します。
これで録音準備OKです。あとはメイン画面に戻って再生ボタンを押せば録音が始まるので、弾いてみてください。
調性イベントの受信
調性メタイベントの入った MIDI ファイルを再生すると、それを受信したタイミングで key:C のように
調性が表示されると同時に調号ボタン の選択が変わります。
カポの設定 は無視されます。再生開始時はカポの設定が強制的に解除されます。
MIDI Chord Helper での録音では、調性を示すメタイベントは一切出力されませんので、
適宜、MIDI Editor の編集機能で追加してください。
タイトル・歌詞の表示
MIDIファイルのテキスト系のメタイベントの一部は、歌詞のように順次コードボタンの下側に表示されます。
歌詞の入ったMIDIファイルであれば歌詞が表示されます。カラオケを楽しむのに便利です。
再生スピードの変更
Play speed: x1(Original) の右にある [=>|] ボタンを押すと、スライダーで再生スピードを変更できるようになります。
中央が元のスピードで、右へスライドするほどテンポが速くなります。
対数スケールになっているため、両端に書かれた x2 などの倍率は必ず逆数同士の関係となります。
例えば右端が x4 の場合、左端は x1/4 = x0.25 となります。
[=>|] [<=|] ボタンで、倍率の範囲を拡大・縮小できます。最大で1/32倍速〜32倍速になります。
トラックごとのミュート・ソロの指定
MIDI Editor のトラック一覧にある Mute、Solo のチェックボックスで、
特定のトラックから音を出ないようにしたり(ミュート指定)、
反対に特定のトラックのみから音が出るようにする(ソロ指定)ことができます。
ただし、Windows環境では選択肢が1つしかないようです。
応用編
VOCALOIDに歌わせる
「初音ミク 」などの VOCALOID2 (歌声合成ソフト)に歌わせるための伴奏を作るのにも便利です。
伴奏と歌声を合成するには、以下のような方法があります。
wav ファイルのレベルで合成する
まず、VOCALOID に歌わせる「カラオケ」MIDI ファイルを作ります。
手っ取り早く作るには、MIDI Chord Helper で MIDI データを新規作成するときに、
コード進行をテキストで書いて自動生成させます。このとき、メロディもランダムに作られます。
好みに応じ、そのまま使うか、または自分でメロディを打ち直してください。
メロディの編集も MIDI Chord Helper で一応可能ですが、よりビジュアルに入力したいときは
プレイリスト画面から一旦 SMF ファイルとして保存し、他の MIDI シーケンスソフトに
読み込ませて編集してください。
MIDI ファイルができたら、メロディトラックを VOCALOID2 に読み込ませ、歌詞を流し込んでいき、
wav ファイルに保存します。これで、その MIDI ファイルのテンポに合ったボーカルパートができます。
あとは、DAW ソフト を用いて伴奏(MIDI)とボーカル(wav)の
歌い出し位置をぴったり重ねて、ミックスダウンすれば完成です。
同期を取らなくても、テンポが統一されていれば、曲の途中でタイミングがずれることはまずないでしょう。
今時のコンピュータは水晶発振が基準ですから、精度は時計と同等です(かつてのテープレコーダーのように
モーターの速度に左右されるといったこともありません)。
注意点:
VOCALOID2 は1トラックの中で同時に複数の音を出すことができない 仕様に
なっているので、ハモりを入れるには、その分トラックを増やす必要があります。
メロディと同じトラックに、lyric メタイベントとして入れた歌詞を1小節1イベントに
まとめて入れると、あとで VOCALOID2 Editor で開いたときに
その歌詞の音符が1箇所に集中的に入ってしまうため、それを消去する必要が出てきます。
歌詞を入れる場合は、同じトラックで音節ごとに小分けして入れるか、あるいは別トラックに入れる、
といった方法をとるとよいでしょう。
wav ファイルのレベルで合成する方法であれば、VSTi
や ReWire
を使う必要もなく、リアルタイム性がそれほど要求されないので、性能の低いPCにおすすめです。
mobile AMD Athlon XP 2100+、RAM 640MB というやや低スペックの PC で動かしていた頃は、
VOCALOID2 Editor で直接再生すると音声が途切れて聞こえたりすることがありましたが、
このような環境でも、wav ファイルへ変換するだけであれば、
時間はかかっても音声が途切れることはありませんでした。
VST プラグインを使って歌わせる
VOCALOID2 用の MIDI データ(*.vsq)を直接 MIDI Chord Helper に読み込ませて再生することもできます。
ただし、ボーカルデータの中身は単なるテキストデータなので、普通の MIDI 音源に送っても音は出ません。
歌わせるためには、「声の出る音源 」としての役割を持つ、VOCALOID2 に付属の
VST プラグイン DLL
(C:\Program Files\Steinberg の先にあります)を使う必要があります。
VST プラグインへ接続するには以下のソフトを準備します。
接続するときは、MIDI Chord Helper の MIDI OUT を選択し、空いている番号の MIDI Yoke を選びます。
VST Host 側では、同じ番号の MIDI Yoke を MIDI IN として選択します。
あとは、VST Host から VOCALOID VST プラグインに接続すれば、MIDI Chord Helper で再生した内容を
VOCALOID2 に歌わせることができるようになります。
自分でコードを鳴らして伴奏したい場合は、VST Host で MIDI Thru を設定し、MIDI Yoke の出力を
MIDI 音源へ送るようにします。
また、作った伴奏の MIDI トラックと VOCALOID 用の MIDI トラックを合成した MIDI ファイルを作って
演奏することも可能です。MIDI Chord Helper 上でも、プレイリスト上の MIDI シーケンスを切り替えながら
1トラックのイベントを全部選択して Copy & Paste すれば、MIDI データのレベルでの合成は一応可能です。
セットアップ方法についてはruimo.com「JavaでMIDI」 が参考になります。
VST プラグインが VOCALOID2 ではなく Ivory になっているところが違うだけで、基本的には同じです。
なお、VST プラグインでは VOCALOID 音声合成をリアルタイムに行うため、
それなりのハードウェア性能が要求されます。
CPU 性能が低かったり、メモリ不足で HDD へのスワップアウトが頻繁に起こるような状況では
処理が追いつかず、歌声が途切れ途切れに再生されるといった現象が起きる可能性があります。
VOCALOID の歌声トラックが複数ある場合、複数の VST プラグインを起動し、
各トラックごとに別々の VST プラグインへデータを送る必要があります
(複数トラックの歌声をひとつのプラグインへ送っても、うまく発声できません)。
シーケンスソフトによっては、トラックごとに出力デバイス(MIDI OUT または VST プラグイン)
を異なる設定にできるものがありますが、Java の MIDI ライブラリ(javax.sound.midi)には
トラックごとに送り先 MIDI デバイスを別々にできない(どのトラックから来たかを見分ける方法がない)
ため、このような設定はできません。
この弱点を回避するには、VSTHost で MIDI メッセージをフィルタリングするしかありません。
MIDI チャンネルであれば VSTHost で見分けがつくので、各トラックごとに別々の MIDI チャンネルに
統一しておくとよいでしょう。
最新版では MIDI 編集機能のトラック一覧の MIDI チャンネル欄を変更することで、
そのトラック内にある全イベントの MIDI チャンネルを一度に変更できます。
[MIDI Chord Helper のホームへ戻る ]