さらにサンプルを発展させて、Minimライブラリを使用して音の出力も試してみましょう。
// Minimライブラリ |
JMyron版サンプル
minim_video_sample_jmyron.pde
カメラの動画像を動く1ラインのピクセルを調べ、暗い色のピクセルが連続した部分の数だけ、波形を生成し音にするというサンプルです。こちらも動作サンプル動画をご覧ください。音声としてはノイズに近いものではありますが、動画の形に応じた音が出ていることが分かるでしょうか。
カメラ動画の読み込み、ピクセル情報の扱いなどは前ページのサンプルとほぼ同様です。(※1)行では指定したピクセル画像の色から「brightness」という命令で明るさ情報だけを取り出し、その値が低い(色が暗い)部分を音に変換するという処理を行い、音の発振処理をMinimライブラリで行います。
Minimライブラリは初期化(setup)関数でライブラリ本体であるMinimクラスのオブジェクトを生成することで以後の音声関係のメソッドを使用することができるようになります。今回のサンプルでは波形を出力するAudioOutputオブジェクトに、矩形波を発振するSquareWaveオブジェクトを渡すことで音を出力するという処理をsetWave関数内で行っています。(※2)行で使用しているmap命令はある範囲内の値を別の範囲の数値にマッピングできるProcessingの便利な命令で、ここでは暗い色ピクセルの連続ラインの値(画面Y座標の0〜heightの範囲)を矩形波の音程を決める周波数(ここでは60〜1500Hzの範囲)にマッピングしています。
このようにProcessingの外部ライブラリは、高度な機能を提供しながらも使い方はProcessingらしくシンプルになっているものが多く、動画や音声を使ったプログラムもそれほど苦労せず扱えます。上のサンプルに興味を持たれたなら、ぜひアルゴリズムを変更したり機能を追加してみてください。
最後に、Processingで作ったプログラムを公開する方法を紹介しておきます。作ったプログラムや作品をWeb上などで公開するために、Processingで以下のような機能が用意されています。
そのほか今回の記事に使ったサンプル動画のように、デスクトップでのプログラムの動作を動画に録画し(これには専用のソフトが必要になります)、動画共有サイトで公開したり、または連載第1回で紹介したJavaScript実装のProcessing.jsやFlashのProcessingライブラリで動作する形で公開するのもよいかもしれません。
Processingのウィンドウに並ぶ右端のボタンアイコンをクリックすることで、Javaアプレット(Webブラウザで動作するJavaプログラム形式)と表示用のHTMLが出力されます。これをサーバにアップロードすることでプログラムをネットに公開できます。
※ Videoライブラリでカメラを使うようなプログラムについてはJavaアプレットでの動作に対応していないため、注意してください。
Processingウィンドウのメニューから[File]→[Export Application]を選択すると、Windows、Mac OS X、Linuxで動作するデスクトップアプリが出力されます。これらのファイルを送ったりWeb上で配布することで、プログラムをProcessingがインストールされていないマシンでも実行できます。
スクリーンショットを保存する命令や、前ページで紹介したPDFライブラリを使用することで、Processingのプログラムで作成したグラフィックをWebページに掲載したり印刷できます。
反応をもらうことで改良のアイデアやモチベーションを得られることも多いですから、完全な形ではないスケッチのプログラムでも公開していくとよいでしょう。皆さんもぜひProcessingのプログラミングの世界に参加してみてください。
Copyright © ITmedia, Inc. All Rights Reserved.