2010年6月29日 星期二

[筆記-26] [gate ]



[gate] 右邊的數字代表outlet閘道的數量,而左上方的inlet可以控制數值會從哪個outlet送出。

右上方的 inlet則是數值輸入端。

2010年6月19日 星期六

2010年6月9日 星期三

▌在mac下安裝pd的外掛gridflow

gridflow 9.9版本 下載

解壓縮後將資料夾gridflow放到如下圖所在位置






接著打開pd 進入到startup







新增一個gridflow 並且按下ok






完成!!

2010年6月7日 星期一

[教學]QC如何用外部輸入數值去調變影響影片播放速度


首先在patch library 找到一個函式 clear(用來製造背景)




接著創建color Transformation(改變顏色屬性)




打開Parameters 並將顏色改為紅色




然後是創建Lfo(產生循環的線性數值)






將Lfo的屬性調成如上圖

---------------------------------------

Lfo的解釋以及介紹

LFO是用於輸出各種波形的Patch,在這個圖中,我們使用Sin類型輸出正弦波形。這樣,輸出的數值將會隨時間的變化而變大變小。 Period參數表示變化週期,單位是秒,數值越大輸出的Sin波形就越大。 Phase參數表示初期的角度(單位:度)。 Amplitude參數表示振幅,用於決定波形變化的範圍。 Offset參數用於全局調整。計算結果值的範圍為:從0到以下公式:
Result = Amplitude * sin( th / Period + Phase ) + Offset

轉錄至這裡




照著上圖連接不同的patch



創建一個Marco


如果你是qtz4.0以後的版本 Marco創建完後方塊應該是黑色的



在Marco這個patch連點左鍵2下 ,並且將[Lfo][color Tranformation][Clear]
剪下貼到裡面(貼完會變成藍色)



在Marco這個patch按下右鍵,並且將Timebase的值更改為External



創建[Input Splitter] (Number Splitter),按下command+1打開它的 Inspector , 到settings的地方將type選成Number





到 input splitter(Number Splitter)的Parameters 將input的數值調成1



在 input splitter(Number Splitter)按下右鍵,並且如上圖所示選擇Input


最後創建[Integrator],並且如上圖所示將他們都連起來




在viewer的 input parameters就可以輸入數值影響影片播放速度


以下是影片的測試


qtz-test1 from kicko on Vimeo.

2010年6月3日 星期四

[教學]QC內建範例以及外掛安裝


圖說一(內建的範例檔的位置)


圖說二(螢幕保護程式檔案放置處)


 圖說三(外掛檔案放置處)



圖說四 (如果將qtz升級到4.0版本,造成有些外掛如果無法讀取,可以將他調回32位元試試看)

2010年6月1日 星期二

▌pd小練習_[repeat]及[separator]的控制


GEM-TEST from kicko on Vimeo.


這個小動畫本來是這次openframeworks工作坊時的小練習

而我則是用puredata用相同的原理將它做出來

以下是openframeworks的程式碼
----------------------------------------------------
#include "testApp.h"
#define NUM 24

ofPoint pos[NUM];
float angle;
ofPoint rot;

//--------------------------------------------------------------
void testApp::setup(){
    ofBackground(0, 0, 0);
    ofSetFrameRate(60);
    ofSetCircleResolution(64);
}

//--------------------------------------------------------------
void testApp::update(){
    angle += 0.02;
    for (int i=0; i
        pos[i].x = sin(angle*i/NUM)*200 ;
        pos[i].y = cos(angle*i/NUM)*200 ;
    }
}

//--------------------------------------------------------------
void testApp::draw(){
    ofSetColor(31, 127, 255);
    ofNoFill();
    ofTranslate(ofGetWidth()/2,ofGetHeight()/2 );
    ofRotateX(rot.x);
    ofRotateY(rot.y);
    for (int i=0; i
        ofCircle(pos[i].x, pos[i].y, i*200.0/NUM);
    }
}

------------------------------------------------------------------

以下則是puredada的做法:





ps 特別感謝李駿的友情指點