aa develop

開発と成長

Processingでシンセサイザーをつくる

「Processingで楽器をつくろう」の最後の記事です。 最後は、倍音を含んだ音を加工して音をつくる減算式シンセサイザーをつくろうと思います。 シンセサイザーの構成 次の図は、今回作成するシンセサイザーの構成を表しています。 太い矢印が音声信号、細い…

Processingでイージング

少し前に、fladdictさんの乱数にコクを出すという話がネットで盛り上がっていました。 乱数にコクを出す方法について - Togetterまとめ 私もかれこれ1年以上、Processingで作品を作ってきましたが、自分の作品のクオリティをもっと上げていくには、こういう…

Processingでリズムマシンをつくる

今回は、ProcessingのMinimとControlP5を使ってリズムマシンを作りたいと思います。 リズムマシンは、ドラムパターンを自動で演奏する楽器です。 メトロノームをつくる まずは、これから作るリズムマシンの基本を理解するためにメトロノームを作ってみたいと…

Processingでエフェクターをつくる

今回は、Processingでエフェクターを作ろうと思います。 エフェクターは入力した音に音響効果を加えて出力するもので、特にエレキギターやエレキベースといった楽器で音を加工するために使われています。 エフェクターの種類は多々ありますが、そのうちのい…

Processingでサンプラーをつくる

前回はキーボードを鍵盤にしました。今回はMinimとControlP5を使って簡単なサンプラーを作りたいと思います。 サンプラーとは、いろいろな音を録音して、それを音源として利用する楽器です。 音を録音することをサンプリングと呼びます。 ファイルを再生する…

Processingでキーボードを鍵盤にする

第1回目ではMinimを、第2回目ではControlP5について解説しました。 ここから、本格的に楽器づくりを始めていきたいと思います。 まずは手始めとしてPCのキーボードを楽器の鍵盤のように叩くと音がでるようにしたいと思います。 キーボードを鍵盤にする 次の…

ControlP5の使い方

今回はProcessingでGUIを扱うためのライブラリであるControlP5の使い方を解説します。 GitHub - sojamo/controlp5: A gui library for processing.org ControlP5のインストール ControlP5はProcessingにデフォルトではインストールされていないので、はじめ…

ProcessingのblendMode()の使い方

ProcessingではblendMode()で色を重ねたときにどう表示するかを決定するすることができます。 これを使うと発光表現を簡単に作ることができるらしいのですが、いまいち公式リファレンスを読んでも何がどうなるかがわからず敬遠していました。 なので今回はbl…

Minimの使い方

ここではProcessingで音を扱うためのライブラリであるMinimについて解説します。 スピーカーから音を鳴らす まずはMinimの基本的な使い方を確認していきましょう。 次のコードはスピーカーから440Hzのサイン波を鳴らすものです。 /* * sample01 */ import dd…

Processingで楽器を作ろう

最近、ProcessingのMinimとControlP5で楽器を作っています。 サウンド カテゴリーの記事一覧 - 30 min. Processing このノウハウを折角なので、まとめていきたいと思います。 MinimはProcessingで音を扱うためのライブラリです。Minimを使うことで、ファイル…

ProcessingでパラメータをGUIで操作できるBoids

ProcessingでパラメータをGUIで操作できるBoidsを作成しました。Boidsはパラメータが多数あるので、これでパラメータの影響がわかりやすくなると思います。 Boids自体は、前に作成した3D版と同じようにProcessingのSampleにあるFlockingを参考にしています。…

Processingで3DのBoids

Processingで3DのBoidsを作成しました。群れをつくって3D空間を飛んでいます。 基本的にはProcessingのSampleにある「Topics/Simulate/Flocking」を3Dになるように書き換えただけです。 このSampleは「The Nature of Code」の「6. AUTONOMOUS AGENTS」で解説…

ProcessingのlerpColor()でグラデーションを作る

OpenProcessingでlerpColor()という便利な関数を教えてもらったので、メモ代わりにまとめておきます。 dancing flame- OpenProcessing lerpColor()は簡単に言うと、lerp()というある2つの値の間を0.0〜1.0の比率で指定して取得することができる関数の色版み…

ドラム音の合成方法がわかりやすい動画

ドラム音の合成についてわかりやすい動画があったので、自分用にまとめておきます。 基本的には、ピッチとボリュームにエンベロープをかけた正弦波か三角波と、ボリュームにエンベロープをかけたノイズ音を足し合わせて、それぞれのドラム音をつくっているよ…

Pure Dataでシンセサイザーを作成する

今までPure Dataで作成してきたものを組み合わせて、鍵盤・VCO・VCF・VCA・EG・LFOがついたシンセサイザーを作成しました。 キーボードの「abcdefgh」がそれぞれ「ドレミファソラシ」に対応しています。 Pure DataでPCのキーボードを鍵盤にする - aa develop…

Pure DataでPCのキーボードを鍵盤にする

Pure DataでPCのキーボードを鍵盤にして音階をならすパッチを作成しました。 キーボードの「a b c d e f g h」がそれぞれ「ド レ ミ フ ァ ソ ラ シ」に対応しています。 左上のラジオボタンで音の高さを変更することができます。 「key」でキーボードの入力…

Pure Dataでエンベロープジェネレーター

Pure DataでADSR(Attack・Decay・Sustain・Release)を設定できるエンベロープジェネレーターを作成しました。 このパッチでは、エンベロープジェネレーターを音量にかけています。 #N canvas 444 82 415 519 10; #X obj 96 385 *~; #X obj 145 236 pack f …

Pure Dataで「vcf~」を用いてワウをかける

Pure Dataで「vcf~」オブジェクトを用いて、カットオフ周波数にLFOをかけてワウ効果を得るパッチを作成しました。 「vcf~」のパラメータは基本的には、以前に使った「bp~」と同じですが、カットオフ周波数の引数に音声信号を用いることができます。 Pure Dat…

Pure Dataでローパス・ハイパス・バンドパスフィルターをかける

Pure Dataでローパスフィルター、ハイパスフィルター、バンドパスフィルターは、「lop~」、「hip~」、「bp~」オブジェクトでそれぞれかけることができます。 それぞれのフィルターをノイズ音源にかけてみるパッチを作成しました。 まずは、ローパスフィルタ…

Pure Dataでスペクトラムを表示する

Pure Dataで音声信号のスペクトラムを表示するパッチを作成しました。 以下のサイトを、参考にして作成しました。 こじ研(音・映像メディア) Pure Dataでのスペクトラム作成について、以下のページに詳しい説明が書かれています。 第1章 SDRって何? FFTに…

Pure Dataで正弦波・ノコギリ波・三角波・矩形波・PWMを鳴らす

以前、作成したパッチを組み合わせて、正弦波・ノコギリ波・三角波・矩形波・PWMからどれか一つを選択して鳴らすことができるパッチを作成しました。 Pure Dataで正弦波/のこぎり波を切り替えるパッチ - aa develop Pure Dataで矩形波を鳴らす - aa develop …

Pure DataでPWMを鳴らす

Pure DataでのPWMを鳴らすパッチを作成しました。 PWMの作成方法は、以前作った矩形波とほとんど同じです。 PWMのパルス幅を可変できるようにしました。 Pure Dataで矩形波を鳴らす - aa develop ソースコード #N canvas 349 252 558 382 10; #X obj 68 91 p…

Pure Dataで三角波を鳴らす

Pure Dataで三角波を鳴らすためのパッチを作成しました。 三角波はのこぎり波「phasor~」を合成することで生成します。 わかりづらいので、生成過程の各ステップの波形も見れるようにしました。 ソースコード #N canvas 102 26 1178 736 10; #X obj 280 97 p…

Pure Dataを学べるサイトのまとめ

自分用にPure Dataを学べるサイトをまとめてみました。 こじ研(音・映像メディア) Pure Data 入門 Pure Data 音処理 Pure Data 画像生成 Pure Data 画像処理 Pure Data コネタ集 Pure Data 小辞典 Pdでリズムマシンをつくる プロローグ 習うより慣れる | L…

Pure Dataで矩形波を鳴らす

Pure Dataで、矩形波はのこぎり波「phasor~」から作成します。 今回は、2通りの手法で矩形波を鳴らすパッチを作りました。 ラジオボタンで、矩形波の生成手法を選択することができます。 (生成されるのは同じ周波数の矩形波なので、音は変わりません。) 左…

Pure Dataで正弦波/のこぎり波を切り替えるパッチ

Pure Dataを始めました。 まずは、モジュラーシンセサイザーっぽいものの作成を目指しながら、Pure Dataでのプログラミングを学習したいと思います。 モジュラーシンセ作成の手始めとして音が出る部分のVCOを作ります。 Pure Dataでは正弦波とのこぎり波は最…

駒ケ岳・光前寺

賽形模様(Cube Pattern)

この模様の名前は「賽形(さいがた)」 英語では「Cube Pattern」 賽形模様(Cube Pattern) - 30 min. Processing

PythonからArduinoにシリアル通信でデータを送る

Pythonからシリアル通信でArduinoにデータを送り、LEDの明るさを制御する。 Arduinoには、D13とGRDにLEDを接続する。 Pythonでのシリアル通信には、pySerialライブラリが必要。 $ pip install pyserial 以下、コード。 PythonからArduinoに数値を送るときは…

Museで取得した脳波に基づき,ArduinoでLEDを光らせる

脳波ヘッドバンドのMuseで脳波から集中度を所得し,その値をProcessingでArduinoに送ってLEDの明るさを変化させる. MuseはPCとBluetooth接続し,ターミナルから以下のコマンドを実行する. $ muse-io --device Muse-XXXX --osc osc.udp://localhost:5000 LE…

シリアル通信でProcessingからArduinoに信号を送る

Processingでマウスのx座標を取得して,その値をシリアル通信でArduinoに送り,LEDの明るさとして表示する. ArduinoのGRDとD13にLEDを接続する. Processing import processing.serial.*; Serial serial; void setup(){ size(500,200); stroke(128); stroke…

シリアル通信でArduinoからProcessingに信号を送る

シリアル通信でArduinoに接続した可変抵抗器の値をProcessingに送り,Processing上で円の大きさとして可視化する. 可変抵抗器はGRDと5V,A0に接続する. Processing import processing.serial.*; Serial serial; float diameter = 0; void setup(){ size(30…

Arduinoで可変抵抗器により圧電スピーカーの音の高さを制御する

Arduinoで可変抵抗器により,圧電スピーカーから出力する音の高さを制御する.可変抵抗器の左右をGRDと5Vに,真ん中をA0に接続する.スピーカーはGRDとD12に接続する. #define DX 12 void mtone(int dx, int hz, unsigned long tm){ unsigned long t = mill…

Museで取得した脳波データをProcessingで可視化する

Museという瞑想用の脳波計がある. MUSE ™ | Meditation Made Easy このMuseはiOS,Android用のSDKが公開されている他,MacやWindows向けにResearch Toolsが提供されている. Muse: the brain sensing headband Developer Portal 今回は,Mac用のResearch To…

OpenCVで特徴点をもとに画像をボロノイ分割・ドロネー分割する

この前に,ランダムに選んだ母点をもとに画像をボロノイ分割,ドロネー分割して,モザイク画像を生成した. 今回は,母点の粗密がいい感じになることを期待して,画像の特徴点をもとに分割する. それぞれの特徴検出器のパラメータ設定は適当. 固有値に基づ…

OpenCVでドロネー分割・ボロノイ分割により画像のモザイクをつくる

OpenCVのドロネー分割・ボロノイ分割の機能を使って,画像をランダムに設定した母点で分割し,モザイクのようにした. 入力画像 出力画像(ボロノイ分割/母点:100) 出力画像(ボロノイ分割/母点:500) 出力画像(ボロノイ分割/母点:3000) 出力画像(ボロノ…

openFrameworksでホモグラフィ変換

ホモグラフィ変換を理解するために,openFrameworksでホモグラフィ変換のパラメータをいじれるプログラムを書いた. 赤が変換元の4点,青が変換先の4点を表しており,移動させることができる. main.cpp #include "ofMain.h" #include "ofApp.h" //=======…

openFrameworksでアフィン変換する

アフィン変換を理解するために,openFrameworksでアフィン変換のパラメータをインタラクティブに変更できるプログラムを書いた. 赤が変換元の3点,青が変換先の3点を表しており,マウスで移動させることができる. main.cpp #include "ofMain.h" #include…

HOG特徴量と主成分分析を用いてAV女優の顔の類以度を可視化する

AV女優の顔写真から求まるHOG特徴量を主成分分析を用いて二次元に落とし込むことで顔の類以度を可視化した.画像数は10000枚ぐらい.結果画像は以下のリンク先. 結果画像(かなりファイルサイズが大きいので注意, ブラウザでは見られないかも) 下の画像は…

OpenCVでHOG特徴量を用いて人を検出する

OpenCVでHOG特徴量を求め,それに基づき人を検出する.OpenCVには人検出用に学習された識別器がすでに存在しているので簡単にできる. 入力画像 出力画像 main.cpp #include #include #include "opencv2/opencv.hpp" int main(int argc, const char * argv[]…

openFrameworksのofxBeatアドオンを使ってみる

openFrameworksのofxBeatアドオンを使うことで,キック,スネア,ハイハットの認識と高速フーリエ変換が簡単にできる. ofxBeatは以下から入手する.使い方も書いてある. darrenmothersele/ofxBeat それを使って,簡単なビジュアライザーを作ってみた.上は…

openFrameworksでofxCvとofxBox2dを組み合わせる

openFrameworksのofxCvアドオンとofxBox2dアドオンを組み合わせて,映像中の動きに合わせてメッシュ状に配置したオブジェクトを動かすプログラムを書いた. box2dオブジェクトはその位置のオプティカルフローの値とバネで繋がった他のオブジェクトから力を受…

openFrameworksで3Dデータを読み込む

openFrameworksで,3Dデータを読み込んでみた.使ったのはつぼみの3Dデータ.以下からダウンロードできる. つぼみを3Dプリントできまっす! | つぼみオフィシャルサイトへようこそ! ダウンロードしたobjデータをprojectのbin/dataに置く. プログラムを実…

openFrameworksのofLight, ofMaterialの機能を調べる

openFrameworksのofLightとofMaterialの機能について調べるために,guiでofLight, ofMaterialのパラメータを操作できるプログラムを書いた. ambient colorは全体,diffuse colorは反射しているところ,specular colorは強く反射しているところの色を決定す…

openFrameworksでカメラの映像を3Dにする

OpenFrameworksでカメラ画像を3D空間上に表示するプログラムを書いた.各点の輝度をz値にしている似非立体画像.本当はlightオブジェクトを置いて陰影をつけたかったが,まだofLightについて理解してないため断念. 下の画像は,ワイヤフレームだけを表示し…

openFrameworksで背景をグラデーションにする

openFrameworksの背景を簡単にグラデーションにするofBackgroundGradientという関数があるので試してみた. OF_GRADIENT_CIRCULAR OF_GRADIENT_LINEAR OF_GRADIENT_BAR 本当は,modeの設定をラジオボタンにしたかったが,ofxGuiでのやり方がわからず断念.そ…

OpenCVでカメラ画像をアニメ風にする(K-meansによる減色)

この前に,OpenCVでカメラ画像をアニメ風にするプログラムを書いた.そのときは減色に量子化を用いた. 今回は,減色にK-meansを用いて,同じことをやってみた.結果は以下のようになる. K-meansを使った方が色の数が少なくても,それなりに元の画像の雰囲…

OpenCVでカメラ画像をアニメ風にする

OPenCVでカメラから取得した映像をアニメ風にして表示するプログラムを書いた.具体的には,取得した画像の各ピクセルのRGB値を適当な段階に量子化する.その上にCanny法で検出したエッジを黒で重ねている.結果として,カメラで取得した画像が以下のように…

オプティカルフローでパーティクルを操作する

openFrameworksのofxCvアドオンを使って,オプティカルフローを計算する.オプティカルフローのベクトル値に基づき,パーティクルを動かす. オプティカルフローを使うとインタラクティブな何か面白いものを作れそうな気がするが,アイデアが浮かばない.も…

ofxCvのexample-flowについて調べる

openFrameworksのofxCvアドオンを使って,オプティカルフローで何かを作りたいと思う.そのために,まずofxCvに付属するサンプルexample-flowを分析する. オプティカルフローには,二種類のアルゴリズムがある. 画像ピラミッドを利用したLucas-Kanade法(L…