コンテンツにスキップ

USB MIDI キーボード

提供: ArchWiki
2014年12月25日 (木) 18:02時点におけるKusakata (トーク | 投稿記録)による版 (Created page with "Category:他のハードウェア en:USB MIDI keyboards このページでは ALSA を使用して音楽が聞けるようにサウンドカー...")
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
印刷用ページはサポート対象外です。表示エラーが発生する可能性があります。ブラウザーのブックマークを更新し、印刷にはブラウザーの印刷機能を使用してください。

このページでは ALSA を使用して音楽が聞けるようにサウンドカードが設定されていることが前提となります。Evolution MK-631 USB midi キーボードと SB Live! Value カードが使えることが確認されています。特記がないかぎりコマンドは非特権ユーザーで実行して下さい。

予備テスト

ALSA

公式リポジトリから alsa-utils パッケージをインストールして下さい。

aseqdump を実行してください。以下のような出力がされるはずです:

Waiting for data at port 128:0. Press Ctrl+C to end.
Source_ Event_________________ Ch _Data__

表示はこれだけです。Ctrl+C を押してプログラムを終了してください。

キーボードの接続

キーボードを接続して電源を入れて下さい。lsusb に以下のような出力がされるはずです:

Bus 002 Device 002: ID 0a4d:00a0 Evolution Electronics, Ltd

lsmod | grep usb の出力には以下のモジュールが含まれているはずです:

usb_midi               25348  0
snd_usb_audio          70592  0
snd_usb_lib            16640  1 snd_usb_audio

aconnect -i と入力して全ての MIDI 入力ポートを表示してください。以下のように出力されます:

client 72: 'MK-361 USB MIDI keyboard' [type=kernel]
    0 'MK-361 USB MIDI keyboard MIDI 1'

client の数字はおそらく異なっていると思われます。メモして下さい。

イベントの確認

aseqdump -p ## と入力してください。## はキーボードの client 番号に置き換えてください。以下のように表示されます:

 72:0   Active Sensing

鍵盤を押すと以下のように表示されます:

 72:0   Note on                 0  65  94
 72:0   Note on                 0  65   0

リストには他にも様々なイベント (ノブを回したり、チャンネルを変えるなど) が登録されています。キーボードがちゃんと動作しているか確認するのに便利です。

演奏

キーボードのボタンを押した時に音が鳴るようにするには、MIDI 信号を音声に変換するシンセサイザーが必要です。

サウンドカードによってはハードウェアシンセサイザーが内蔵されていることがありますが、最近のサウンドカード、特にオンボードのサウンドカードの場合、普通は搭載されていません。自分で楽器の音源をロードすることができるプログラムである、ソフトウェアシンセサイザーを使うのが簡単でしょう。

ハードウェアシンセサイザー

aconnect -o と入力して全ての MIDI 出力ポートを表示してください。サウンドカードによって出力は変わります。SB Live! Value では、以下のように出力されます:

client 64: 'EMU10K1 MPU-401 (UART)' [type=kernel]
    0 'EMU10K1 MPU-401 (UART)'
client 65: 'Emu10k1 WaveTable' [type=kernel]
    0 'Emu10k1 Port 0  '
    1 'Emu10k1 Port 1  '
    2 'Emu10k1 Port 2  '
    3 'Emu10k1 Port 3  '

client 65 が MIDI シンセサイザーです。サウンドカードが正しく設定されていれば、キーボードの出力を MIDI シンセサイザーにつなげることができるはずです。aconnect in out と入力してください。out は出力の client 番号 (このページの例では 65)、in は入力の client 番号に置き換えてください (このページの例では 72)。それでサウンドカードの MIDI 出力を使ってキーボードを演奏できるようになります。

ソフトウェアシンセサイザー

Qsynth

  1. qsynth をインストールして下さい。
  2. QSynth を起動して Setup を開いて下さい。SF2 形式のサウンドフォントをロードする必要があります。http://soundfonts.narod.ru/ (ロシア語) からフリーの SoundFont を入手できます。SoundFont をロードした後に QSynth がエンジンを再起動するように言ってきたら、それに従って下さい。
  3. aconnect -o と入力して全ての MIDI 出力ポートを表示します。FLUID Synth を含むポートを探して client 番号をメモして下さい。
  4. aconnect in out と入力して下さい。out は出力の client 番号、in は入力の client 番号に置き換えてください (このページの例では 72)。これでキーボードを演奏すると QSynth が音を鳴らすはずです。
ノート Qsynth を再起動したり楽器や SoundFont を変更するたびに aconnect in out を実行する必要があります。

Qsynth で JACK を使う

  1. qsynth, jack, qjackctl をインストールして下さい
  2. qjackctl を起動して設定を確認:
 Server Path: jackd
 Driver: alsa
 Realtime=enable; Priority:0
 Frames/Period:512
 Soft Mode=enable; Periods/Buffer:2
 Rest of parameters=disable(by default)
 Dither: None
 Audio: Duplex
  1. qjackctl を使って jackd を起動 (Play ボタン)
  2. USB キーボードを接続
  3. QSynth を起動して Setup を開いて下さい。SF2 形式のサウンドフォントをロードする必要があります。http://soundfonts.narod.ru/ (ロシア語) からフリーの SoundFont を入手できます。SoundFont をロードした後に QSynth がエンジンを再起動するように言ってきたら、それに従って下さい。
  4. qjackctl から、Connect をクリックして ALSA タブを選択して下さい。MIDI キーボードと QSynth を選択して、Connect をクリックして下さい。