Pure Data入門講座 〜おまけ編〜 グラフの軸を変更しよう

By terada, 2016年5月4日


今まで色々なプログラムを作ってきましたが、ここでおまけ編として、グラフの軸を変更するテクニックを紹介します。Pdはリアルタイムで様々な波形を表示できることが大きな特徴ですが、ひとつのグラフで波形を表示させるには、いままでの使い方だけでは充分ではありません。信号の周波数が変わるともちろん波形の見え方も変わるので、グラフの軸を変更する必要があります。今回は、ひとつのグラフで軸を変更するプログラムを作ってみます。

信号の点数と時間の関係

Pure Data入門講座 vol.2 〜時間波形 / 周波数波形〜で解説しましたが、もう一度信号の点数と時間の関係をおさらいしておきます。波形を観測するためのアレイを作るときは、アレイのプロパティで256点とか512点というサイズを入力したと思います。このアレイに入力する点数こそ、グラフの横軸の時間の幅を表す値になります。では何点あれば何秒になるのでしょうか?それにはサンプリング周波数という値が密接に関係します。

サンプリング周波数とはアナログ信号をサンプリングしてディジタル信号を作るときに、どれくらいの間隔で値をサンプリングするかを表す数値です。Pdの場合 “メディア → オーディオ設定”という項目を見ると現在のサンプリング周波数が表示されると思います。サンプリング周波数が44.1 kHzということは、1秒間に44,100点信号をサンプリングするということで、1秒間のデータが44,100点の信号で表わされるということです。点数と時間の関係は次のように覚えておくと簡単です。

(サンプリング周波数) = (1秒間のデータの点数)
→ (x点のデータ)= (x点 / サンプリング周波数) 秒

この数式に当てはめると、先ほどの256点のアレイの場合は 256 / 44100 = 0.00058… 秒の時間幅、を持つグラフになります。このようにグラフの点数と時間間隔はサンプリング周波数という数値にとても深く関わっています。このブログではサンプリング周波数について解説した記事がありますので興味がある方はぜひそちらも御覧ください。 → サンプリング周波数と量子化ビット

プログラムを書いてみよう!

ではどうやってグラフの軸を替えるかというと、メッセージボックスを使って直接Pdに命令を送る方法でやってみます。まずは“; pd dsp 0”“; pd dsp 1”というコマンドをメッセージボックスで書いてみます。これだけでは何も起きませんが、実行モードにしてそれぞれのメッセージボックスをクリックしてみください。Pdではメッセージボックスに書いたコマンドをクリックすることで、直接命令を実行することができます。ちなみにこの2つの命令は、PdのDSPをoffにするコマンドと、onにするコマンドです。この機能を使ってこのようなプログラムを作ってみましょう。

pda03

図中のグラフ“array1”の右側にあるメッセージボックスが、グラフの軸を変更させるコマンドです。コマンドは“;配列名 項目 値”という書き方になっています。それぞれどのような効果があるかというと、

  • bounds: 配列の表示範囲 [x下限 y上限 x上限 y下限]
  • xticks: グラフのx軸目盛り [開始位置 目盛りの間隔 大きい目盛りの割合]
  • yticks: グラフのy軸目盛り [開始位置 目盛りの間隔 大きい目盛りの割合]
  • xlabel: グラフのx軸目盛り表示 [表示位置(y方向) 目盛りにつける数値]
  • ylabel: グラフのy軸目盛り表示 [表示位置(x方向) 目盛りにつける数値]
  • resize; グラフの点数変更 [グラフの点数]

という効果があります。この他にも“normalize”, “rename”, “read”, “write”などさまざまな命令を実行することができます。グラフの点数や軸を変更することで、効率よく波形の状態を見ることができるので、ぜひ色々試してみてください!

logo2

田園都市線三軒茶屋、セミナー・研修・講座のSoraoto。様々なセミナーやサイエンスカフェなどのイベントを開催しています。また英会話教室を始めとする、大人の学習講座もありますので、ぜひご参加ください。