日本語

MIDIプログラムチェンジとは?

Mac App StoreでInputConfigをダウンロードInputConfigはMac App Storeで無料です。macOS 14以降に対応し、アカウントもトラッキングもありません。オープンソースです。

プログラムチェンジは、別の音色、パッチ、プリセットに切り替えるよう機器に伝えるMIDIメッセージです。運ぶのは、0から127までの番号1つだけです。General MIDIの機器にプログラム0を送ればピアノ、40を送ればバイオリンになります。128を超える音色に届くには、先にバンクセレクトを送ります。

私は、MIDIを送受信する無料のMacアプリInputConfigを作っています。最後の節では、ボタンからプログラムチェンジを送る方法と、レイアウトの切り替えに使う方法を説明します。

手順

  1. 機器のパッチ一覧で、欲しい音色のプログラム番号を探します。
  2. 機器が0から数えるか1から数えるかを確かめ、1から数える場合は、1を引きます。
  3. 音色が別のバンクにあるなら、先にバンクセレクトを送ります。CC 0、次にCC 32です。
  4. 機器が受信しているチャンネルで、プログラムチェンジを送ります。

メッセージを読む

部分値意味
ステータスバイト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, 繁體中文, 简体中文

Mac App StoreでInputConfigをダウンロード無料。macOS 14以降。アカウント不要で、データがMacの外に出ることはありません。 ソースコードはGitHubにあります.