debian(etch)で外部midi音源を鳴らすには
usb-midiケーブルの接続確認
$ cat /dev/sndstat Sound Driver:3.8.1a-980706 (ALSA v1.0.14 emulation code) Kernel: Linux jet 2.6.23.1 #1 SMP Sat Jan 19 13:43:27 JST 2008 i686 Config options: 0 Installed drivers: Type 10: ALSA emulation Card config: HDA Intel at 0xf9ff8000 irq 22 Yamaha UX16 at usb-0000:00:1a.1-2, full speed Audio devices: 0: ALC883 Analog (DUPLEX) Synth devices: NOT ENABLED IN CONFIG Midi devices: 1: UX16 Timers: 7: system timer Mixers: 0: Realtek ALC888 1: mixer10
UX16が存在しているか確認
$lsusb Bus 002 Device 003: ID 0499:1009 Yamaha Corp. $ amidi -l Dir Device Name IO hw:1,0,0 UX16 MIDI 1
UX16へ信号が出力されているかの確認
$ cat > /dev/snd/midiC1D0 kjfadfadfa fadfasf dfadfa ^D $ cat /proc/asound/card1/midi0 UX16 Output 0 Tx bytes : 58 Mode : native Buffer size : 4096 Avail : 4096 Input 0 Rx bytes : 6686
pmidiを使って外部MIDI機器でmidiをならす
$ sudo aptitude install pmidi $ pmidi -l Port Client name Port name 14:0 Midi Through Midi Through Port-0 20:0 UX16 UX16 MIDI 1 $ pmidi -p "20:0" BWV1046A.MID
timidityを使ってPC内蔵音源でMIDIをならす
$ sudo aptitude install timidity $ timidity BWV1046A.MID
timidityとpmidiを使ってPC内蔵音源でMIDIをならす
timidityの-iオプションはDをvに変えると非常駐でverbose
$ timidity -Os -iAD Requested buffer size 32768, fragment size 8192 ALSA pcm 'default' set buffer size 33868, period size 3760 bytes TiMidity starting in ALSA server mode Opening sequencer port: 128:0 128:1 128:2 128:3 $ cat /proc/asound/seq/clients Client info cur clients : 5 peak clients : 7 max clients : 192 Client 0 : "System" [Kernel] Port 0 : "Timer" (Rwe-) Port 1 : "Announce" (R-e-) Connecting To: 15:0 Client 14 : "Midi Through" [Kernel] Port 0 : "Midi Through Port-0" (RWe-) Client 15 : "OSS sequencer" [Kernel] Port 0 : "Receiver" (-we-) Connected From: 0:1 Client 20 : "UX16" [Kernel] Port 0 : "UX16 MIDI 1" (RWeX) Client 128 : "TiMidity" [User] Port 0 : "TiMidity port 0" (-We-) Port 1 : "TiMidity port 1" (-We-) Port 2 : "TiMidity port 2" (-We-) Port 3 : "TiMidity port 3" (-We-) Output pool : Pool size : 500 Cells in use : 0 Peak cells in use : 0 Alloc success : 0 Alloc failures : 0 Input pool : Pool size : 1000 Cells in use : 0 Peak cells in use : 0 Alloc success : 0 Alloc failures : 0 $ pmidi -l Port Client name Port name 14:0 Midi Through Midi Through Port-0 20:0 UX16 UX16 MIDI 1 128:0 TiMidity TiMidity port 0 128:1 TiMidity TiMidity port 1 128:2 TiMidity TiMidity port 2 128:3 TiMidity TiMidity port 3 $ pmidi -p "128:0" BWV1046A.MID
別にポートは:1でもよい
playmidiでならしてみる(なぜかポートが指定できずならない)
すっかり勘違い。aplaymidiでならす。
$ sudo aptitude install playmidi $ aplaymidi -p 128:0 BWV1046A.MID $ aplaymidi -p 20:0 BWV1046A.MID
以下はplaymidiとaplaymidiを勘違いしたときの記録。
http://www.linux.or.jp/JF/JFdocs/Sound-Playing-HOWTO-2.html によるとplaymidiによってコマンドラインから鳴らせるらしい。
しかし、ポート指定するオプションがわからない。
ネット上では-Dとかあったのだがdebianのパッケージではなかった。
$ sudo aptitude install playmidi $ playmidi BWV1046A.MID Playmidi 2.4 Copyright (C) 1994-1997 Nathan I. Laredo, AWE32 by Takashi Iwai This is free software with ABSOLUTELY NO WARRANTY. For details please see the file COPYING. playmidi: No playback device found.