スーパーファミコンの音色データの作り方 初級・前編


まえがき

 素人の試行錯誤の結果として、僕がqSPCのVer.1のテスト中に行なっていた音色の作成方法の流れを書きます。qSPCとはPA Gamesさんが独自で研究・開発中のスーパーファミコンの音源(SPC700/S-DSP)用のMMLコンパイラ・ドライバのことですが、MMLとは別に、音色データも自作する必要があったのです。

まだ研究中の内容ですので、同志の方の意見や情報を元に随時追記や推敲が入ったりと曖昧な部分も出てくるかと思います。あくまで内容はqSPC向けのものが主体となるので、参考程度にお願いします。

Twitter でスーファミが野に放たれていた事案も考慮し、あえて書きますが、スーパーファミコンの音源はPCM音源……といっても、昨今のようなwavやmp3などをそのまま再生するようなストリーミング方式ではなく、音色データに非可逆圧縮を伴うADPCMを使って、スコアデータを元に「演奏する」という仕組みです。このため、音色データの作成においては、手作業での波形編集からは結果が想定しにくいような、ADPCMへのダウンコンバート特有の音のクセが生じます。

世の中に存在する波形の特徴は様々なので、こういったリミテッドなシステムに向けての適切なサンプリングというものは一筋縄でいくものではないですが、安易なリアルさよりも音色の記号化が求められるという点では、日常の風景を手作業でドット絵に落とし込んでいくような面白さがあります。僕は、これがスーパーファミコンのサウンドの侘び寂びの核であるとも感じます。

まずは初級編ということで、前編と後編に分けて基本的な流れを説明していきます。

 

◆ 目標

qSPCはスーパーファミコンの音源の機能に準じ、単音のサンプリングデータをもとに平均律の音程を生成し、1つの音色を表現するという仕組みなので、この単音のデータ(.brr)を自作します。
BRR(Bit Rate Reduction)とは技術の名称であり、規格化されているファイルフォーマットではありませんが、スーパーファミコンの音源で使われているADPCMの一種であると理解してください。

 

◆ 材料

・お好みのDAWとPPSE部さんのC700

・波形編集ソフト(Audacityを推奨)

・サンプリングしたい楽器と録音環境

 


1.自分で楽器を録音してwaveファイルとして収録する

音楽家としては収録する音のピッチを440Hzとしたいところですが、スーパーファミコン実機およびqSPCの仕様に最適なデータを作るという観点で、比較的つくりやすい500Hzでのサンプリング方法を書きます。少なくとも自分の経験では500Hzでサンプリングしつつ、最終的に1周期としたい波形のサンプル数を64の倍数に合わせておくことで、他の音色とのピッチのズレが起こりにくくなると感じています(なぜ500Hzと64サンプルの倍数にこだわるか、ということについては、こちらのエピソードで触れています)

そもそも500Hzという音程は平均律に存在しないので、まじめに考えると500Hzの音を出せるように楽器を調律してから録音する必要があります。このため、調律不可な楽器をサンプリングしたい場合や、そこまで素材にこだわらないという方は、ひとまず平均律のB4の音(493.88…Hz)を録音しておいてください。

B4の音を録音する場合は、ピッチの揺らぎが多く複雑な波形になるほど、後の工程でピッチシフトがかかりにくくなるので、注意しましょう。そういう意味では、初めの録音の段階での楽器の選定や収録方法も重要になってきます。可能な限り、残響音など余計な波形成分が入っていないドライな音の収録を心がけましょう。

なお、もともと一定の音程を保っていないような打楽器や人の掛け声などで、非楽音としてサンプリングしたい場合は500Hzの音程にはこだわらず、ありのままを録音しておきます。


2.モノラル化する

収録したwaveファイルがステレオになっている場合は、波形編集ソフトで片チャンネルを切り捨てた後、モノラル化の処理を行います。多くの場合、波形が大きく形がよい方を選び、片方を切り捨てる方が波形が劣化せず、よい結果が得られます。ただ、意図した結果が得られるのであれば両チャンネルの波形を合成してモノラル化してもよいと思います。


3.必要な部分だけを選んで、ざっくりとカット

楽器のサンプリングデータを作る場合、音色の波形に応じて、最終的には長くても0.5秒ぐらいまでに刈り込むことを想定し、これよりも少し余裕をもってカットしておきます。例えば目標が0.4秒だったら0.7秒ぐらいにカットするイメージです。

スーパーファミコンの音源は実用上、サンプリング用に使えるメモリ領域が多くても40KB前後である為、このような一瞬の波形をループさせて再生することで、少ない音色データで長い音を表現しています。

波形の再生パターンとしては、以下の3パターンがあるので、この時点で自分が作りたい音色がどのパターンに当てはまるか決めます。

 

A.全体をループさせる

B.アタック部分とループ部分に分けて、2回目以降はループのフラグが立っている部分からループさせる

C.ループさせずに1回だけ再生

 

さすがに何もないとイメージしづらいので、例として手回しオルゴールの単音を録音した波形を拡大して分析してみます。

波形の先頭には、B4の音が安定して鳴るまでのノイズ音を含む「アタック部分」と、波形やピッチが安定して音量が減衰していく「ループ部分」が存在することが分かります。

多くの楽器がこのパターンに当てはまるのですが、オルゴールの場合もBのパターンが適しているといえます。

 

 
このように再生パターンが決まったら、波形の表示スケールを少しずつ縮小していって、大きな周期のパターン(時間軸に沿った、うねりのようなもの)を意識します。

今回のオルゴールの波形はアタック部分の後のうねりと波形のパターンが一定で、0.1秒以降は減衰するのみなので、サンプリングデータとしては0.15秒までを切り出しておけば必要十分であることが分かります。

これをうまく見極められるようになることが、少ないデータで良い音を出す素材作りの秘訣です。

 

まだ素材のサンプリング周波数が録音時のままですが、気にせずにそのままにしておきます。

この時点で少し余裕を持ちつつも波形を切り出す理由は、後のピッチシフトが適切にかかるようにするためです。Audacityでは493.88…Hzから500Hz付近へピッチシフトをかけると波形が変化し、波形の長さが短くなる傾向にあるので、それを想定しています。


後編につづく