playmidi - SMF プレーヤ

playmidi というプログラムがあります. このプログラムでは↓こんな感じの画面で,ちょっと楽しいビジュアルの画面です. 横軸が MIDI チャネル,縦軸が音階になっています.

playmidi実行画面

また,xplaymidi という,X 版のプログラムもあります. こちらは縦軸が MIDI チャネル,横軸が音量になっています. なぜか playmidi よりちょっとビジュアルがさびしい.

xplaymidi実行画面

SoundBlaster の音源でも演奏できますが,もの悲しいものがあります. Windows のドライバよりも制御が粗いようで,いかにも FM 音源くさい音になります. もちろん,MIDI 音源を使えばなかなかの音質で演奏が楽しめます. 私の場合は,WaveBlaster II を使っています.

そうそう,この WaveBlaster II ですが,これと playmidi の組合せだと音がヘロヘロになってしまいます. ソースを追っていくと,チャネルプレッシャーの初期設定値がおかしいようです. というわけで,それを直すパッチ. 短いのでそのまま載せちゃいます. 見てわかるように変更箇所は 127 とある所を 1 箇所だけ 0 に書き直すだけなので,手で修正した方が手っ取り早い,という説もあります (^_^;;

*** playevents.c.orig	Sun Jan  7 10:41:51 1996
--- playevents.c	Sat Jun  8 20:06:55 1996
***************
*** 102,108 ****
  	seq_control(use_dev, best, CTL_EXT_EFF_DEPTH, reverb);
  	seq_control(use_dev, best, CTL_CHORUS_DEPTH, chorus);
  	seq_control(use_dev, best, CTL_MAIN_VOLUME, 127);
! 	seq_chn_pressure(use_dev, best, 127);
  	seq_control(use_dev, best, 0x4a, 127);
      }
      SEQ_DUMPBUF();
--- 102,108 ----
  	seq_control(use_dev, best, CTL_EXT_EFF_DEPTH, reverb);
  	seq_control(use_dev, best, CTL_CHORUS_DEPTH, chorus);
  	seq_control(use_dev, best, CTL_MAIN_VOLUME, 127);
! 	seq_chn_pressure(use_dev, best, 0);
  	seq_control(use_dev, best, 0x4a, 127);
      }
      SEQ_DUMPBUF();

Linux のお部屋のもくじ
いまいくんのページのもくじ
2002 年 8 月 21 日更新
imai@jr0bak.homelinux.net