波形テーブル方式とは、音色をつくる方法の1つです。
きれいな音色をつくるには、録音したものを再生することが考えられます。しかし、音の高さや長さや大きさなどを考えると、その組み合わせが膨大でデータ量が多くなったり、準備が大掛かりになってしまいます。
今回の「波形テーブル方式」は、80年代のシンセサイザーに使われていた方法でもあり、当時の記憶容量の少なく処理能力も高くない半導体で、音色をつくることができました。自分はマイコンに実装する方法を探し、この方法にたどり着きました。
原理を簡単に説明すると、音色は特徴があらわれる波の1周期分を記憶し、再生速度を変えて音階を作り出し、リアルタイムに計算してエンベロープを作ります。これを使うと、録音した音をもとに音色を作ったりできます。
ただ、記憶する波形が1周期分と、かなり省略したものなので、もとの音色の再現性は低いです。それでも、無作為に選ぶ音と違って、「自分の録音した音でしか作れない音」という意味ではコンセプトを支える手法とも言えます。
今回WSでは「オリジナルの音を奏でる楽器をつくる」というテーマですが、「オリジナルの音」をつくる方法がたくさんあるので迷うかもしれません。
そんな時は、自分で録音した音から「自分の音」をつくるとわかりやすいかもしれません。
[ tabosc4~ Array名] を使います。
指定したArrayをサイン波のようなオシレータとして使うことができます。
ただし、「2のN乗+3コ」のデータ個数が必要になります。これは「4点補間」をしているからです。4点補間とは少ないデータから値を補う、補間のアルゴリズムの1つで、2点で補間するよりも精度があがる方法です。基本的に、2のN乗個分のデータのうち、隣り合う4コの値から中間の値を補間します。
ここで、音の波形は、最初と最後がループしてきれいにつながると、ノイズの少ない音になります。
最後の値から最初の値にループしてする時、その「中間」を補間するためにも4コの値が必要になり、「最後の値+3コ」の4コのデータを使うことで、補間を行います。
結果的に、「2のN乗+3コ」が必要になります。
[ tabosc4~ Array名] をつかって、
音を構成する波形として使います。
[ osc~ ] や [ phasor~ ] のような使い方ができるので、とてもシンプルです。
「wavetable」の波形は、マウスで描くこともできます。
読みこむファイルは、あらかじめデータ個数を「515」個にしてあります。これは、「512+3」であり、「2の9乗+3」のことです。
自分で録音した音をつかうには、データ個数を揃える必要がありますが、ここはAudacityなどの波形編集ソフトで行います。
Audacityの使い方は、説明すると長くなるので今回は省略します。こちらにまとめました。
もしこんな音でどうなるか確認したい場合は、元の音のファイルを私に送ってもらって、変換してみます。この変換の過程を、画面共有で解説しながら、なんとなく作業の流れをつかんでいただければと思います。
これまでやってきた、エンベロープや、キーボードで音階を奏でる機能を追加してみました。
サブパッチ [ pd wt ] の中が音を鳴らす部分