音と映像の同期[max/msp -> Processing]_その1


開発環境

言語

- Processing 3.1.1

eclipseを使用し、core.jarをインポートした環境でコーディングしているため、

ProcessingのIDEでは実行できません。

 

参考URL

http://hiroyukitsuda.com/archives/172

- java 1.8.0_9

Processingで使用しているバージョン

ソフトウェア

- Ableton Live 9.7.1
- Max 7.3.1
- java 1.6.0_65

Max for Liveで使用しているバージョン

補足

最新のバージョンでは利用できないため、1.6を使用する

JAVA_HOMEの切り替え手順

http://qiita.com/mas0061/items/2fe9333f045800d00b5c

OS

- macOS sierra 10.12.2


Processingでアウトプットとなるイメージを作成する

四角形をランダムに表示するアニメーションを作成します。

 

値をランダムに指定している箇所は以下となります。

四角形の描画数、表示位置、横幅、縦幅、線(stroke)の彩度。


コード

package rectangle;

import java.util.Calendar;

import processing.core.PApplet;

public class RandomRect_Base extends PApplet{
        
        public void settings() {
                fullScreen();
                smooth();
        }
        
        public void setup() {
                noCursor();
                frameRate(30);
                background(0);
        }
        
        public void draw() {
                background(0);

                //四角形の数
                int rectNum = (int)random(1,30);
                
                pushMatrix();
                translate(width/2, height/2);
                for(int i=0;i<=rectNum;i++){
                        //四角形の表示位置
                        int x = (int)random(50);
                        int y = (int)random(50);
                        //四角形の横幅と縦幅
                        int rectWidth = (int)random(500);
                        int rectHeight = (int)random(500);
                        //図形の色を透明に設定
                        noFill();
                        //線の彩度
                        int rectAlpha = (int)random(255);
                        //図形の線を白色に設定
                        stroke(255,rectAlpha);
                        rectMode(CENTER);
                        //四角形を描画
                        rect(x, y, rectWidth, rectHeight);
                }
                popMatrix();
        }
        public void keyReleased(){
                if(key == 's' || key == 'S') 
                        saveFrame("./src/" + timestamp()+"_##.png");
        }

        String timestamp(){
                Calendar now = Calendar.getInstance();
                return String.format(
                                "%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS", 
                                now);
                
        }
        
        public static void main(String[] args) {
                PApplet.main(RandomRect_Base.class.getName());
        }
}

実行結果