本連載の第189回では、実在のシンセサイザーをいくつか紹介しました。これらは音声合成のためのモジュールを複数組み合わせて好みの音を出します。しかし、これとは別なアプローチで開発されたシンセサイザーがあります。それがサンプル音源シンセサイザーです。
サンプル音源シンセサイザーとは
サンプル音源シンセサイザーの源流は、サンプラーと呼ばれるシステムです。
サンプラーとは現実の音を録音して保存しておき、それに効果を付け、タイミングよく組み合わせることで音楽を作り出すシステムです。黎明期は磁気テープをメディアとして利用していたため、巨大で高価なシステムとなることが不可避でした。
しかし、時代が下って記憶装置の技術が進歩していくと、メディアとしてメモリーを活用するようになっていきます。そして1990年以降の大容量メモリーの普及により、メディアがよりコンパクトに、より使い勝手がよいものとなり、それに伴ってサンプラーはとても強力なシステムとなっていきました。
このサンプラーのアイディアをシンセサイザーに利用したものが、サンプル音源シンセサイザーです。これは、すでに広く使われている楽器の出す音を録音して最利用可能なデジタルデータとし、それに対して処理をかけ、MIDI信号をキューとして発音するシンセサイザーです。サンプル音源のセットを入れ替えることで、様々な音色に対応することができます。このような入れ替え可能なサンプル音源のセットを、「ライブラリー」と呼んだりします。
サウンドフォントとは
サウンドフォントとは、サンプル音源ライブラリーのフォーマットの一種です。1993年にE-MU Systems社が開発しました。同年、E-MU Systems社はCreative Technology社の子会社となり、1998年には更に買収されたEnsoniq社と統合されました。しかしサウンドフォントに関する開発はE-MU名義で継続されています。サウンドフォントは仕様が公開されており、Creative Technology社やE-MU Systems社のみならず、他社の多くのソフトウェアでも標準で使うことができます[1]。
実は本連載の第149回と第150回でご紹介したtimidity++は、このサウンドフォントを使うことのできるシンセサイザーでもあります。
こういったサウンドフォントを使うシンセサイザーは、アナログシンセサイザーのようにパラメーターを調整して音を作ることができない代わりに、サウンドフォントデータを差し替えることで様々な音色を手軽に扱うことができるという利点があります。
Qsynthとは
Qsynthはtimidity++とほぼ同じ機能を持ちますが、画面操作により詳細な設定が可能な点で使い勝手がよいソフトウェアシンセサイザーです。
Qsynthを使うには、パッケージ「qsynth」をインストールします。依存関係で、バックエンドとして動く「fluidsynth」やJACKサウンドサーバー、timidity++の回でも利用したパッケージ「fluid-soundfont-gm」をインストールします。
Qsynthを起動するには、Unityのダッシュボード、あるいは端末上で「qsynth」を実行してください。
音声出力とMIDI入力の設定
本連載ではおなじみ、まずは音声出力とMIDI入出力を確認してみたいと思います。Qsynthの操作画面で、ボタン「Setup」をクリックして設定ウィンドウを開いてみて下さい。
まず、タブ「Audio」で音声出力を設定してみましょう。Ubuntuの標準状態、すなわちPulseAudioサウンドサーバーを音声出力先として利用する場合、項目「Audio Driver」で「pulseaudio」あるいは「alsa」を指定しておくと間違いないでしょう[2]。対して、JACKサウンドサーバーを併用したいユーザーは「jack」を選択して下さい。
次に、タブ「MIDI」でMIDI入力ポートを設定してみましょう。
項目「MIDI Driver」ではポートを開くサブシステムを選択します。ALSAシーケンサー機能にポートを開く場合は「alsa_seq」を[3]、JACKシーケンサー機能にポートを開く場合は「jack」を指定して下さい。
サウンドフォントファイルの読み込み
起動したてQsynthはサウンドフォントファイルを読み込んでいないため、そのままでは音を出すことができません。そこで、設定ウィンドウのタブ「SoundFonts」で、読み込むサウンドフォントを追加します。
この図では、サウンドフォントファイル「/usr/share/sounds/sf2/FluidR3_GM.sf2」を読み込んでいます。このファイルは、qsynthをインストールした際にパッケージの依存関係でインストールされる「fluid-soundfont-gm」に含まれています。同様の操作でお好みで他のサウンドフォントファイルを登録し、いろいろな音色を使うことが可能です。
サウンドフォントファイルを読み込んだら、すべての準備完了です。MIDIのノート信号を受信すると、音声を出力するようになります。
Fluidsynthバックエンド
Qsynthの後ろではfluidsynthというソフトウェアが働いています。Qsynthは画面からこのfluidsynthを操作するためのソフトウェアと考えて下さい。
実はこのfluidsynth、本連載ではすでに数回登場しています。第176回では、このfluidsynthをDSSIのプラグイン音源として使うことのできるパッケージ「fluidsynth-dssi」を扱いました。
この他にも本連載の第150回で扱った音楽プレイヤーAudaciousのAMIDIプラグインは、バックエンドにfluidsynthを指定してサウンドフォントを利用することで、外部のMIDI音源を使わずに演奏することもできます。
他にも、楽譜エディタソフトウェアである「MuseScore」や「Denemo」、マルチメディアプレイヤーであるVLCのプラグインなどでも、fluidsynthを利用することが出来ます。いずれのソフトウェアも、サウンドフォントファイルを読み込んでMIDIファイルを再生すると、音声として出力することができます。
サウンドフォントエディター Swami
サウンドフォントのフォーマットで作成されたファイルの内容を確認したり編集したり、あるいは新規に作成することができるソフトウェアが開発されています。
Swami(Sampled Waveforms And Musical Instruments)は現在、サウンドフォントファイルにターゲットを絞って開発されているサンプル音源エディターです。Linuxはもとより、WindowsやMacOS Xでも使うことができます。
Ubuntuではパッケージ「swami」でインストールすることができます。筆者はサウンドフォントを作ったり編集した経験はありませんので、紹介するだけに留めておきます。
今回はサンプル音源シンセサイザーのうち、サウンドフォントを扱うソフトウェアに焦点を当ててみました。次回は、別なライブラリーフォーマットであるGIGサンプルを使うソフトウェアシンセサイザーを紹介します。