# The KMidi Handbook

Bernd Johannes
Wuebben

    wuebben@kde.org

Greg
Lee

    lee@hawaii.edu

Version 1.3,23 August 1999

これはKMidi Version 1.3について書かれたものです。

KMidi Midi Player Timidity Midi To Wav

KMidi
Midi
Player
Timidity
Midi
to
Wav

## はじめに

KMidiはMIDIファイルを演奏します。ハードウエアとしてGUS(Gravis UltraSount)やSound Blaster AWEの ようなサウンドカードが行うことを、ソフトウエアで行います。ですから、あなたが必要とするハードウエアは、 単純なサウンドカードか、あるいはサウンドチップだけで良いのです。あなたが持っているものがGUSやAWEであ ったとしても、KMidiを試したくなるかも知れません。KMidiはそれだけ音が良いのです。ソースコードは無料で すので、もし更に良い音を楽しみたいのならソースの書き換えを行うことができます。

しかし、KMidiはいくらかCPU時間を必要とします。新しいウインドウを立ち上げ、あるいはウインドウをスクロ ールさせることは、時として曲の再生中の音跳びの原因になるようです。ですから、ご自身でパッチを入手したく なるかも知れません。そういったパッチ類は、標準的なKDEディストリビューションの一部として含むには容量が 大きすぎます(10〜20MB)。ですから、サンプルとして５つだけパッチを入れておきました。KMidiは128個の楽 器それぞれの、257キーに対応しています。

KMidiは、たいていのことはやってのけてしまうTuukka Toivonen氏のTimidityという素晴らしいプログラムを ベースにしています。KMidiはTiMidityのGUIフロントエンドプログラムであり、別のユーザーインターフェース を持つTiMidity自体がKMidiのソースに組み込まれています。ありがとう、Tuukka!

KMidiの今回のバージョン(Version 1.1)は以下のプラットフォームで動作します。

- Linux

- FreeBSD

- DEC OSF/1

- HP UX

- SUN

- SUN SOLARIS

TiMidityの非KDEバージョンも上記の全てのプラットフォームで動作します。しかしこのバージョンはLinuxでのみ動作確認をしています。

他のプラットフォームへの移植も簡単です。KMidiを他のプラットフォームに移植されたい場合は、私までご連絡ください。

使い方の詳細で、このマニュアルに載っていないものについては、timidity(1) manを御覧ください。

Midiファイルは一般的に50キロバイトかそれ以下です。ダウンロードがとても簡単なのでMidi以外のものを決して再生しなくなるでしょう。

KMidiをどうぞお楽しみください。

`Bernd Johannes Wuebben` wuebben@kde.org

## インストール

### KMidiの入手方法

KMidiは、KDEプロジェクトの一部です。 KMidiはKDEプロジェクトのFTPサイトで見つけることができます。

### Requirements

KMidiのコンパイルを成功させるためには、 `libkdecore` and `libkdeui`の最新バージョンが必要です。 要求されるライブラリ群は全てKMidiと同じようにKDEプロジェクトのFTPサイトで見つけることができます。

標準的なUnixタイプのシステム、あるいはWindows95であってもTimidityのコマンドライン・インターフェースである"dumb"を コンパイルすべきでしょう。その他のインターフェースには独自に必要なファイルが存在します(ディストリビューション内にある READMEファイルをご覧ください)。MotifインターフェースはLesstifで動かすことができます。

### Compilation and installation

あらかじめKMidiがインストールされてある場合は、このバージョンをインストールする前にConfigurationディレクトリ(KDEDIR/share/apps/kmidi/config/) を移動しておくことをお勧めします。ここで使われるファイル群が書き換えられてしまうためです。きっと新しいバージョンを使いたくなるか、あるいは少なくとも 新しいバージョンを見掛けることになるでしょう。同様に、Timidityの非KDEバージョンをインストールする前にも/usr/local/lib/timidity/*のバックアップ を取っておいてください。完全に一からのインストールの場合は、これら二つのディレクトリ内にあるファイル群を削除しておく必要があります。この場合、古いフ ァイル群は新しいバージョンによって置き換えられることはないからです。

kdemultimediaがある場合は、kdemultimediaディレクトリに移動し、

    ./configure

multimediaプログラムを全てmakeするためにそのディレクトリに留まるか、あるいはKMidiをmakeするためにkmidiディレクトリに移動します。

    make
    make install

Timidityの非KDEバージョンのために、(コンパイルしたいユーザーインターフェースに依存している)要求通りにMakefile.timを書き換えてください。

    make clean
    make -f Makefile.tim
    make -f Makefile.tim install

問題が起こるようなら、私にそれをレポートしてください。

### フルセットのパッチはどこで手に入れれば良いか。

KMidi/TiMidityで使うことができるパッチはGNUパッチ、IW`fonts`、AWE32 SoundFonts三種類あります。単楽器のサンプルとパ ラメータのセットとパッチはGNUパッチファイルと分けてありますが、IW fontsには`.dat`ファイルのなかに、関係するパッチセッ トの全てのサンプルが含まれており、パラメータについては`.fff`ファイルのなかに集められています。AWE SoundFontsについて は`.sf2`ファイル(もしくは`.sbk`ファイル)に全て入っています。

私は`.sf2`SoundFontsと、その中の後に触れることにするChaos fontsをお勧めします。 (IW fontサポートは現在うまく動作しません。ですから、好みでいろいろ試してみてください。)

最初に、GUSパッチを入手できる場所です。

Dan Hollis氏はパッチセットをおいてくださっています。彼のページに是非行ってみて下さいhttp://www.anime.net/~goemon/timidity。そして、この素晴らしいセットを作る手助けをしてあげて下さい。

ニュース： 私は上述のパッチセットをftp.kde.orgにアップロードしました。パッチセットは現在ftp://fiwi02.wiwi.uni-tuebingen.de/pub/kde/stable/Beta2/apps/multimedia/sound/にありますが、良い場所が見つかるまで移動するつもりでいます。ですからもしこれを読まれて行った場所にそのセットが見つからなかった場合は、ftp.kde.orgの辺りを探してみて下さい。

パッチはSunsiteのdepモジュールかrpmモジュールでパッケージングされています。

- Debian: timidity-patches_0.1.tar.gzu

- RPM: timidity-patches-1-1.i386.rpmu

- RPM: timidity-patches-1-1.src.rpm-try2

私はまだ上記のものと追加パッチとセットとドラムセットが一緒になっているメディアパッチを試していません。メディアパッチは以下のURLで見つけることができます。 ftp://archive.cs.umbc.edu/pub/midia/.

追加パッチとドラムセット(gsドラムとwowパッチが入手できます)は以下のURLで。 ftp://ftp/cdrom.com/pub/gus/sound/patches/files/.

Vincent Pagel氏はパッチコレクションを置いて下さっています。このリンクは(パリ)夜間帯だけに繋がるものです。ftp://sig.enst.fr/pub/midi/instruments/. そのパッチセットを使うための設定ファイルは以下で手に入ります。here.

Timdity Pageもチェックしてみて下さい。

それからTakashi's page。 Takashi's pageは8メガAWE32 SoundFont、`chaos8m.sf2`を勧めて下さっています。これはで手に入り、とても良いものです。(これらは自己解凍ファイル、`exe`ファイルでパッケージングされています。)

ftp://sec.wtm.tudelft.nl/pub/music/soundbank/にはいくつかフリーのIWフォントが置いてあります。ステレオパッチで私が知っている(KMidiやTiMidityで再生できる)IWフォントは、CDで33ドルかかります。http://sdc.wtm.tudelft.nl/utopia/をご覧下さい。

#### パッチセットのインストール

上述のパッチセットの中には、KMidiの付属ファイルであり、`KDEDIR/share/apps/kmidi/config`に置かれてい る.cfgファイルと同じような、`.cfg`設定ファイルに付属しているものもあります。 KMidiにはメディアパッチセットのような数多くの普通のパッチセットのために、設定ファイルが既に用意されています。`.sf2` SoundFontsの ために、ユーティリティプログラム、`sf2cfg`が供給されています。これは`.sf2`フォント から`.cfg`ファイルを生成し、timidityと一緒にコンパイルされます。

拡張子`.cfg`を伴うファイル名`filename.cfg`のようにする必要はありません。これらは普 通のテキストファイルです。その構成についてはこのマニュアルで後述します。

パッチセットのインストールを完全にするために、`timidity.cfg`ファイルを編集し、ダウンロードしたパッチセットの 設定ファイルを入手してください。例として`timidity.cfg`を見て下さい。設定ができれば、KMidiディストリビューシ ョンや他のソースにあるmidiファイルを再生できるようになるでしょう。

#### その他

時々KMidiは特定の楽器のパッチを見つけることができなくなることがあります。その場合は(このインフォメーションを読むためにInfoウインドウを開け)、無 いパッチを入手してpatchディレクトリにそれを移動してそれをインストールし、新しいパッチが入ったことをKMidiに教えるためにパッチセットの.cfgファイ ルを編集するだけです。

時々特定の楽器が機能しない場合があります。その場合、単にウルトラサウンド・アーカイブから別のパッチを入手し、最善とはいえないパッチをより良いパッチ に置き換えてください。理解できるなら、どのようにして全ての楽器が音を奏でているかを知ることができます。KMidiディストリビューションに含まれているpat2wav ユーティリティを使って自分のパッチを作ることもできます。

## 使用方法

### はじめてみよう

以前にKMidiを使ったことが無いなら、私が入れておいたサンプルmidiファイルの名前をディスプレイに見ることができるでしょう。それを選択して再生ボタンをクリッ クしてみてください。クリックしたときにそれぞれのボタンがどういうことを行うかを記した``tooltip''の解説を見るためにマウスポインターをいろいろなボタンに合 わせてみて下さい。

左上にある``KMidi''のロゴをクリックしてみて下さい。そこで``channel meter''のディスプレイを見ることができます。これは16midiチャンネル上での演奏をグラ フを示しています。その左側にパッチセット・セレクタとサウンド・セレクタがあります。サウンド・セレクタをクリックして、私がKMidiディストリビューションに入れ ておいた他のサンプルmidiファイルのリストを見て下さい。良さそうなのがあればクリックして再生してみて下さい。

Infoボタンをクリックすれば、midiファイルならどれでも再生しているmidiファイルと「カラオケ」についての情報を示すことができます。

再生リストのボタンを押せば、ファイルシステム内のmidiファイルを探して、再生するファイルのリストを提示します。フィルタボタンを押していない限りは、midiファ イルに`.mid`や`.kar`の拡張子が付いているかいないかにかかわらず、midiファイルだけが表示 されます。スクリーンの左部分のファイルネームをダブルクリックすると、その右側にある再生リストにそのファイルが追加されます。

いくつかのmidiファイルが音を出さず、あるいは小さな音しか出さなくても、驚いたり失望したりしないで下さい。配布版のKMidiには可哀想なくらいわずかな数の楽器パ ッチしか持っていません。それについてはこのドキュメントのネット上のパッチを入手する方法についての節をご覧下さい。

### Playlists

``eject''ボタンを押すと、再生リストマネージャが開きます。左側に再生リストを最後に編集したディレクトリの内容が表示されます。右側が現在の再生リストです。左 側のmidiファイルを選択して、ダブルクリックでそれを再生リストに追加して下さい。もしくはそれをクリックしてAddボタンをクリックして下さい。

左側に表示されているファイルがmidiファイルです。圧縮されているmidiファイルは認識されません。ですからgzipを使ってファイルを圧縮していた場合は、Filterボタ ンを解除しなくてはなりません。そうすれば全てのファイルを見ることができます。KMidiは名称を見ることでそのファイルがmidiファイルかそうでないかを決定すること はしません。その代わりそのファイルの一部分を読み込んでそれがmidiファイルであるかどうかを判断します。ですからわざわざお手持ちのmidiファイルに`.mid`拡張子をつける必要はありません。

スクリーンの下の方が現在の再生リストです。初めてスタートする時は、KMidiに最初からついているサンプルmidiを``default'と呼んでいるものが一つあるだけです。それがまだ選択されていない場合は``default'という名前をワンクリックしてこの内容を変更します。保存のボタンを押して現在の再生リストのファイルの内容を置き換えます。あるいは追加のボタンを押して、現在の再生リストを再生リストファイルの最後につなぎます。新しい再生リストを作るには、Save as...ボタンをクリックし、現れた小さなボックスに任意の新しい名前を書き込みます。再生リストの名前をダブルクリックすると、現在の再生リストを、保存した再生リストの内容に置き換えます。これはフロントパネル上で、「再生リスト選択」ボックスの中の再生リストの名称をワンクリックして行うこともできます。

再生リストの名称をクリックして、「消去」ボタンをクリックすれば再生リストを消去することができます。

ディレクトリリストと再生リストを分けている縦のバーはマウスで左右にドラッグすることができます。それらを再生リストの名称と分けている水平のバーは上下にドラッグすることができます。

### Midiのファイルネーム

フロントパネル上に見えるmidiファイルの名称は実際のファイルネームと少し異なっている場合があります。判読しやすくするために、KMidiは、スペースにしたり.midや.MIDという拡張子を切り捨てることによって、midiファイルの中にあるアンダーバーを暫定的に置き換えているのです。

### 設定

パネル上の設定ボタンをクリックすると設定画面に変わります。設定画面ではパネルの二つのウインドウの背景色やREDカラーを変更することができます。当面の間、チャンネルメーター内でパーカッションに使われている色は設定できません。それは常に黄色です。

### パッチセット

左上のパネルの下の方にパッチセットのセレクタがあります。配布版のKMidiでは三つのパッチセットオプションがあります。`piano+guitar`と`piano`、そして`guitar`がそれです。ピアノやギターのパッチを選択することはさして重要ではありません。それは単なる例としての選択でしかありません。パッケージ群を入手されたときは、それらのパッチをパネルからスイッチするようにセットすることができます。以下はその使用方法です。

個々のパッチセットは、パッチやキー配列、楽器番号(midi ``program'')を書き込む設定ファイルを作ります。そして`timidity.cfg`ファイルに関しては、ソースに<filename>を、それに先だつif部分に<n>を加えます。つまり<filename>はパッチを書き込む設定ファイルに対して与えられる名称です。<n>は<filename>が``Select Patchset''ボックスでKMidiのパネルに現れる行です。この名前をクリックすると、パッチセットが選択されます。パッチセットの番号は0で始まります。

`cfg`ファイルで、キー配列やドラムセットやパッチの名称は与えられていなければなりません。というのはパッチが有効であっても、宣言されていないものはGNUパッチファイルやsound fonts等のファイルからロードされないからです。この方法は、ロードされるフォントからより良いパッチをロードするようにsound fontから特定のパッチを省く際に便利です。まさにフォントをロードするか尋ねられる前にはすでに宣言しないのです。

同じキー配列やドラムセットの同じパッチが一回以上宣言される時は、最初の宣言だけがカウントされます。ですから一番良いフォントを最初に置いて下さい。

`sbk/sf2`サウンドフォントのためにcfgファイルを構築するのに、`sf2cfg`ユーティリティがあります。これはフォントの中にある全てのパッチを吐き出します。また、`chaos8m.sf2`と`chaos12m.sf2`のための`cfg`ファイルのサンプルをいれておきました。

### Polyphony

再生中に音の脱落はありますか？KMidiでは楽器パッチのピッチ、フィルタリング、音符との合致に調整に必要となる行程計を遅らせることがありえます。このようなことが起こったら、右側のパネル下段のspinboxを使って問題を解決することができるかも知れません。これは同時に使用している大多数のポリフォニックの``voices''を調整しています。最大ポリフォニーを下げると、コーラスやリバーブの効果がなくなったり、もしくはいくつかの音符を省略したり、実際両者を併せて行うことでKMidiの負荷を軽減します(いくらかの行程下ではKMidiはMidiコーラスやリバーブレーションエフェクトに近づけるために特別な音符を生じさせることがあります。)

### 効果音

効果音はいろいろな方法で変化させた音です。その方法のなかには私はあまり詳しくないものもあります。不可欠な四つの実行型方法と、それをコントロールする二つの方法があります。

midiでの音楽は、16チャンネルのどれか一つであっても再生できるあらゆる楽器のための効果音です。また、複数のチャンネルのための複数の効果音ともいえるでしょう。パネルの``eff''ボタンをクリックすると、信号はコーラスやリバーブレーション、セレストやフェーザーなどmidiの効果音を再現するためのフィルタリングがなされます。しかしmidiファイルの音楽が効果音を要求しない限り、どんな効果音もないでしょう。二つの標準的なmidi効果音であるハーモニーとブライトネスは、いまだにフィルタに実行させることができません。(フィルタはNicolas Witczak氏によってコード化されています)

``eff''ボタンをクリックしなくても、チャンネル上で要求されればコーラスやリバーブレーションを得ることはできます。しかしそれは別の方法でなされているのです。つまりフィルタを使用する代わりに、特別な音符が生成されるのです。それはコーラス効果によるわづかなデチューニングであり、リバーブレーションにとっては遅延的なものです。エンベロープやビブラートのための調整も存在します。``eff''を切ることによって、セレストやフェーザー効果音のチャンネルは得られなくなってしまうのです。

二つ目の方法として、実行型効果音はパッチによるものであるということです。つまり楽器パッチはコーラスやリバーブを含んでいるのです。AWEパッチは一般的に特別な効果音を再現し、グラヴィス・フォルテパッチは効果音を再現しません(ですからAWEパッチはわずかによく響くように聞こえるのです)。この方法による効果音は``ghost note''メソッドに行われており、``eff''ボタンの影響は受けません。

三番目は、好みに応じた効果音を作成することができます。パネルの右側に四つのチェックボックスがあることに注目してください。それぞれのボタンには三つのステータスがあります。``normal'' (the default), "extra'と``off''の三つです。真中の二つのチェックボックスはコーラスとリバーブをコントロールします。これらが``normal''にセットされていると、効果音はは上述のように再現されます。``extra''にセットされていると、特別な音符が全ての楽器、チャンネルのコーラスとリバーブに対して生成されます。これは``eff''ボタンをクリックすることで必要によりエフェクトフィルタに加えられます。``off''にセットされている場合は、コーラスやリバーブノートは再生されません。

最期に、midiファイル中の"sysexes"に存在するmidiシステム限定的なメッセージにより効果音が再生されることもあります。これらは特定のシンセサイザーなどのハードウエアをコントロールしています。KMidiはRoland GSシンセサイザーやYamaha XGシンセサイザーに対して、ある一定量のsysexecのデコードを行い、それに応じて音の最適化をはかっているのです。コーラスやリバーブなどの機能の多くは``ghost note'メソッドによって行われており、先程説明したチェックボックスでスイッチオフにすることができます。しかしながら、コーラスの一種であるセレストはXG sysexに必要となります。これはWitczak氏のセレストフィルタを呼び出し、``eff''ボタンクリックする事機能します。

### コマンドオプション

コマンドライン上で一つ、あるいは複数のmidiファイルの名前を実行するのでなければ、この節の内容は知っていてもおそらくあまり有用ではありません。これらのオプションの必要性を感じられた場合、むしろ``timidity''をコンパイルしてコマンド入力をした方が良いでしょう。

kmidi

  &lsqb;options&rsqb; filename &lsqb;...&rsqb;

stdinからMIDIファイルを読むために、"-"をファイルネームとして使用。

Options:

-o filename

  ファイルかデバイスかもしくはHP-UX audioサーバかも知れないが、-Oオプションで選択された出力モードに依存しているファイルネームを出力。

-O mode

  コンパイルされた別のものから出力モードを選択せよ。モードはサポートされている出力モード確認のうちの一つで開始すること。-hオプションでTiMidityを起動し、リストを参照。

-sf

  f(HzかkHz)でサンプリングの周波数をセットせよ。全てのサウンドデバイスが全ての周波数に対応しているとは限りません。実行されることによってもっとも近い周波数が選ばれます。

-a

  アンチエイリアシングフィルタを使用可能にします。サンプルは、低域のサンプリング周波数でエイリアシングノイズを分解して再生する前に低域フィルタを通して再生されます。

-f

  急速減衰モードを使用可能にします。急速エンベロープを保ちます。MIDIファイルの中には、遅い減衰を使用した時により良く響くものもあります。リバーブのような効果があるようです。

-pn

  ポリフォニー(多重音声)をセットします。

-An

  nパーセントボリュームを上げます。(音とびを起こす場合があります)

-Cn

  サンプリングの比率とセットして周波数をコントロールします。これは、エンベロープがどれくらい頻繁に再計算するかを決定します。比率が小さければ良いクオリティが得られますが、CPUタイムは多く使用します。

-E

  Witczak氏のコーラス、リバーブ、フェーザー、セレストエフェクトフィルタをかけます。

-&num;n

  パッチセットを選択します。

-L dir

  パスを検索するディレクトリを追加します。

-c file

  特別設定ファイルを読み込みます。 Read extra configuration file

-In

  nプログラムをデフォルトで使います。

-P

  全てのプログラムに対してパッチファイルを使います。

-Dn

  nチャンネルでドラムを演奏します。

-Qn

  nチャンネルを無視します。

-F

  高速パニングを使用可能にします。

-U

  MIDIファイル間でメモリから楽器をロードしません。

-i mode

  ユーザーインターフェースの選択(リストの下方参照)

-Bn

  バッファフラグメントの番号をセットします。

-h

  このヘルプメッセージを表示します。

出力モードについて(-Oオプション)

-Od

  Linux dspデバイス

-Ow

  RIFF WAVEファイル

-Or

  未加工のウエーブフォームデータ raw waveform data

出力フォーマットのオプション(-O?オプションに加えます)

`8'

  サンプル幅8ビット

`1'

  サンプル幅16ビット

`U'

  ロウエンコーディング

`l'

  リニアエンコーディング

`M'

  モノフォニック

`S'

  ステレオ

`s'

  合図待ちの出力

`u'

  署名のない出力

`x'

  バイトスワップ出力

インターフェースを出すためのオプション(-iオプション)

-iq

  Kmidi QT インターフェース

-id

  dumbインターフェース

インターフェースオプション(-i?オプションに付け加えるオプション)

`v'

  より冗長的に(累加的)

`q'

  より静かに(累加的)

`t'

  再生内容のトレース

-i

  モード選択のインターフェース(リストの下記参照)

-Bn

  バッファフラグメントの番号をセットせよ。

-h

  このヘルプメッセージを表示せよ

## Q & A

### どこでパッチセットを入手できるか。

kmidiインストールの章で<ref id="patches" name="section">と一致するところを参照してください。

## クレジット

KMidiはTuukka Toivonen氏のTiMidity 0.2i(C) 1995 Tuukka Toivonenエンジンを使用しています。事実、5つのユーザーインターフェースを持った、Tuukka氏のオリジナルプログラムの強化バージョンにはKMidiディストリビューションが入っているのです(TiMidityのコンパイルについては下記インフォメーションを参照のこと)。KMidiとTiMidityはTakashi Iwai氏によるAWE SoundFont機能拡張と、Greg LeeによるAMD InterWave機能拡張を使用しています。これらは、Gravis.patファイル、あるいはForte.patファイルに加えてSoundFonts(.sbkファイル/.sf2ファイル)とIWパッチ(.fffファイル/.datファイル)の使用を可能にしてくれます。

## 著作権

KMidi Copyright 1997 Bernd Johannes Wuebben wuebben@kde.org

KMidiはTuukka Toivonen氏のtimidity 0.2iエンジン、Copyright (C) 1995 Tukka Toivonen (email)を使用しています。

このプログラムはフリーのソフトウエアです。したがってバージョン2であってもそれ以降のバージョンであってもGNU General Public Licenseの約定の下にこれを再編集し、また修正することができます。このプログラムは使いやすくはありますが、一切の保障がありません。商業的な黙示保障も特定の意図による適合性についての黙示保障もありません。詳細についてはGNU一般公有使用許諾書をお読み下さい。このプログラムについているGNU一般公有使用許諾書のコピーを受け取るべきです。もし手元にない場合、Free Software Foundation, Inc.(675 Mass Ave, Cambridge, MA 02139, USA)にお尋ね下さい。

日本語翻訳：レーザーファイブ(info@laser5.co.jp)