日本語
MIDIプログラムチェンジとは?
InputConfigはMac App Storeで無料です。macOS 14以降に対応し、アカウントもトラッキングもありません。オープンソースです。
プログラムチェンジは、別の音色、パッチ、プリセットに切り替えるよう機器に伝えるMIDIメッセージです。運ぶのは、0から127までの番号1つだけです。General MIDIの機器にプログラム0を送ればピアノ、40を送ればバイオリンになります。128を超える音色に届くには、先にバンクセレクトを送ります。
私は、MIDIを送受信する無料のMacアプリInputConfigを作っています。最後の節では、ボタンからプログラムチェンジを送る方法と、レイアウトの切り替えに使う方法を説明します。
手順
- 機器のパッチ一覧で、欲しい音色のプログラム番号を探します。
- 機器が0から数えるか1から数えるかを確かめ、1から数える場合は、1を引きます。
- 音色が別のバンクにあるなら、先にバンクセレクトを送ります。CC 0、次にCC 32です。
- 機器が受信しているチャンネルで、プログラムチェンジを送ります。
メッセージを読む
| 部分 | 値 | 意味 |
|---|---|---|
| ステータスバイト | 0xC0から0xCF | プログラムチェンジ。チャンネル1から16 |
| データバイト | 0から127 | プログラム番号 |
全部で2バイトです。チャンネル1のプログラム5は、16進数でC0 05です。プログラムチェンジには値が付きません。番号がメッセージのすべてです。
0から数えるか1から数えるか
メッセージが運ぶのは0から127です。多くのキーボードやパッチ一覧は、1から128で表示します。どちらも同じ128個のプログラムを指していて、ピアノは、信号の上ではプログラム0、前面パネルではプログラム1です。頼んだ音色の1つ隣の音色が出たら、両端が違う数え方をしています。General MIDI楽器一覧では、両方の列を並べて見られます。
バンクセレクトで128を超える音色に届く
プログラムチェンジが選ぶのは、いまのバンクにある128個のプログラムのうちの1つです。バンクを選ぶのがバンクセレクトで、プログラムチェンジの前に、2つのコントロールチェンジとして送ります。
- CC 0。バンクセレクトの粗い半分です。多くの機器はこれだけを使います。
- CC 32。バンクセレクトの細かい半分です。
- そのあとプログラムチェンジ。バンクは、次のプログラムチェンジが届いたときに有効になります。
バンクセレクトだけでは、聞こえる変化は何も起きません。続くプログラムチェンジを待つからです。機器がどのバンク番号を使うかは、その機器のマニュアルにあります。
コントロールチェンジと区別する
| プログラムチェンジ | コントロールチェンジ | |
|---|---|---|
| 何をするか | 別の音色やプリセットに切り替える | ノブ、フェーダー、ペダルなど、1つの操作部を動かす |
| 何を運ぶか | 0から127の番号が1つ | コントローラー番号と値。どちらも0から127 |
| 頻度 | 切り替えたいときに1回 | 操作部が動いているあいだ、続けて |
音色を選ぶのがプログラムチェンジで、形を整えるのがコントロールチェンジです。すべてのコントローラー番号は、MIDI CC一覧にあります。
ボタンから送る
Macでは、InputConfigが、ゲームコントローラーのボタン、キーボードのキー、フットペダル、MIDIパッドから、独自の仮想MIDIポートを通してプログラムチェンジを送ります。1回押すごとに、0から数えた番号で1つのパッチを呼び出します。パッチ1つにボタン1つなら、楽器から手を離さずに音色を切り替えられます。設定はMIDI出力にあります。
レイアウトの切り替えに使う
逆向きにも使えます。MIDIコントローラーから入ってくるプログラムチェンジは、InputConfigの行の入力にでき、パッチが変わるたびに1回働きます。その行でプリセットを有効にできます。そうすると、コントローラーのパッチボタンで、パッドが送るショートカットの組全体が切り替わります。コントローラーのパッチボタンが、レイアウトの切り替えになります。詳しくはMacでMIDIをキー入力にする方法にあります。
短くまとめると
- 内容。音色を切り替える2バイトのメッセージです。ステータス0xC0にチャンネルを足し、0から127の番号が続きます。
- 128を超えるとき。先にバンクセレクト(CC 0とCC 32)を送り、そのあとプログラムチェンジを送ります。
- 1つずれる。信号は0から数え、多くの画面は1から数えます。
番号1つとチャンネル1つで、音色が変わります。
よくある質問
MIDIプログラムチェンジのメッセージとは?
別の音色やプリセットに切り替えるよう機器に伝える、2バイトのメッセージです。1バイト目は0xC0にチャンネルを足したもの、2バイト目は0から127のプログラム番号です。
プログラムチェンジとコントロールチェンジの違いは?
プログラムチェンジは別の音色に切り替え、番号を1つ運びます。コントロールチェンジは、ボリュームやフィルターなど1つの操作部を動かし、コントローラー番号と値を運びます。
プログラム128より上の音色を選ぶには?
先にバンクセレクトをCC 0、たいていはCC 32も合わせて送り、そのあとプログラムチェンジを送ります。機器が使うバンク番号は、マニュアルにあります。
プログラムチェンジが違うパッチを選ぶのはなぜですか?
たいていは1つのずれです。メッセージはプログラムを0から数え、多くの機器は1から表示するので、画面の番号から1を引きます。大きく外れるなら、機器が別のバンクにあります。
MIDIのプログラムはいくつありますか?
各バンクに128個で、メッセージでは0から127と番号が付きます。バンクセレクトで、機器が持つバンクの数だけ増えます。
日本語のページ
くわしいガイド(英語)
このページを書いた人。 Ryleigh NewmanはInputConfigを開発しています。手がうまく動かないため、毎日コントローラーで自分のMacを操作しています。このページは英語から翻訳したものです。Macの言語が日本語のとき、アプリの主なボタンとメニューは日本語で表示されます。このページではその名前を使い、英語の名前をかっこに添えています。アプリのほかの部分とサイトのほかのページは英語です。
ほかの言語で読む: English, العربية, Čeština, Dansk, Deutsch, Español, Suomi, Français, עברית, Magyar, Bahasa Indonesia, Italiano, 한국어, Norsk, Nederlands, Polski, Português, Русский, Slovenčina, Svenska, ไทย, Türkçe, Українська, Tiếng Việt, 繁體中文, 简体中文
無料。macOS 14以降。アカウント不要で、データがMacの外に出ることはありません。 ソースコードはGitHubにあります.