「USB MIDI キーボード」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Created page with "Category:他のハードウェア en:USB MIDI keyboards このページでは ALSA を使用して音楽が聞けるようにサウンドカー...")
 
(カテゴリを修正)
 
(2人の利用者による、間の4版が非表示)
1行目: 1行目:
[[Category:他のハードウェア]]
+
[[Category:ハードウェア]]
 
[[en:USB MIDI keyboards]]
 
[[en:USB MIDI keyboards]]
このページでは [[ALSA|ALSA]] を使用して音楽が聞けるようにサウンドカードが設定されていることが前提となります。Evolution MK-631 USB midi キーボードと SB Live! Value カードが使えることが確認されています。特記がないかぎりコマンドは非特権ユーザーで実行して下さい。
+
このページでは [[ALSA]] を使用して音楽が聞けるようにサウンドカードが設定されていることが前提となります。Evolution MK-631 USB midi キーボードと SB Live! Value カードが使えることが確認されています。特記がないかぎりコマンドは非特権ユーザーで実行して下さい。
   
 
==予備テスト==
 
==予備テスト==
28行目: 28行目:
 
snd_usb_lib 16640 1 snd_usb_audio
 
snd_usb_lib 16640 1 snd_usb_audio
 
}}
 
}}
  +
  +
{{Note|カーネル 3.19.2 現在、{{ic|snd_seq_midi}} [[カーネルモジュール|モジュール]]を手動でロードする必要があるかもしれません。バグレポート: {{Bug|44286}}。}}
   
 
{{ic|aconnect -i}} と入力して全ての MIDI 入力ポートを表示してください。以下のように出力されます:
 
{{ic|aconnect -i}} と入力して全ての MIDI 入力ポートを表示してください。以下のように出力されます:
47行目: 49行目:
 
}}
 
}}
 
リストには他にも様々なイベント (ノブを回したり、チャンネルを変えるなど) が登録されています。キーボードがちゃんと動作しているか確認するのに便利です。
 
リストには他にも様々なイベント (ノブを回したり、チャンネルを変えるなど) が登録されています。キーボードがちゃんと動作しているか確認するのに便利です。
  +
  +
MIDI イベントをキーボードや他の MIDI 出力デバイスに送信するには、{{ic|aplaymidi -p ## midifile.mid}} を実行して MIDI ファイルを指定してください。
  +
  +
== 録音 ==
  +
{{Note|この章は生のMIDIデータをファイルに記録するためのものです。オーディオを録音するには、シンセサイザーが必要です。[[#演奏|演奏]] を参照してください。}}
  +
  +
まず、{{ic|arecordmidi -l}} を実行します。使用可能な入力デバイスが一覧表示されるので、使用するデバイスを決めます。
  +
それから、以下のコマンドを実行して記録を開始します。
  +
  +
{{bc|
  +
arecordmidi -p <port_number> <output_file>
  +
}}
  +
  +
記録を停止するには、プロセスを {{ic|kill}} します。(Ctrl+c)
  +
  +
このツールで使用できる追加オプションの詳細は {{ic|man arecordmidi}} を参照してください。
   
 
== 演奏 ==
 
== 演奏 ==
64行目: 82行目:
 
3 'Emu10k1 Port 3 '
 
3 'Emu10k1 Port 3 '
 
}}
 
}}
client 65 が MIDI シンセサイザーです。サウンドカードが正しく[[SB Live! Midi|設定]]されていれば、キーボードの出力を MIDI シンセサイザーにつなげることができるはずです。{{ic|aconnect ''in'' ''out''}} と入力してください。''out'' は出力の client 番号 (このページの例では 65)、''in'' は入力の client 番号に置き換えてください (このページの例では 72)。それでサウンドカードの MIDI 出力を使ってキーボードを演奏できるようになります。
+
client 65 が MIDI シンセサイザーです。サウンドカードが正しく[[en2:SB Live! Midi|設定]]されていれば、キーボードの出力を MIDI シンセサイザーにつなげることができるはずです。{{ic|aconnect ''in'' ''out''}} と入力してください。''out'' は出力の client 番号 (このページの例では 65)、''in'' は入力の client 番号に置き換えてください (このページの例では 72)。それでサウンドカードの MIDI 出力を使ってキーボードを演奏できるようになります。
   
 
=== ソフトウェアシンセサイザー ===
 
=== ソフトウェアシンセサイザー ===

2022年2月10日 (木) 12:50時点における最新版

このページでは 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
ノート: カーネル 3.19.2 現在、snd_seq_midi モジュールを手動でロードする必要があるかもしれません。バグレポート: FS#44286

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 イベントをキーボードや他の MIDI 出力デバイスに送信するには、aplaymidi -p ## midifile.mid を実行して MIDI ファイルを指定してください。

録音

ノート: この章は生のMIDIデータをファイルに記録するためのものです。オーディオを録音するには、シンセサイザーが必要です。演奏 を参照してください。

まず、arecordmidi -l を実行します。使用可能な入力デバイスが一覧表示されるので、使用するデバイスを決めます。 それから、以下のコマンドを実行して記録を開始します。

arecordmidi -p <port_number> <output_file>

記録を停止するには、プロセスを kill します。(Ctrl+c)

このツールで使用できる追加オプションの詳細は man arecordmidi を参照してください。

演奏

キーボードのボタンを押した時に音が鳴るようにするには、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 をクリックして下さい。