11/2の記録

前回のライブは実際のビー玉の動きにあわせて音や映像を付けていたので今度は仮想的なものを動かしてそれに音や映像を動かしてみよう、ということが11/2の目標でした。

Leap Motion、openFrameworks(ofxBox2d,ofxOpenCV,ofxUGen)、赤外線カメラを使用。
指の位置でbox2dの重力、指の本数でオシレータの種類、ofxOpenCVで手の形を検出。
Beyond Interactionがなかったらやっていなかったでしょう。これから約3年半くらい。まだまだだなぁと思います。


11/14 12:02

10/24の記録


Leap Motion→openFrameworks→arduino→サーボモーター→蓄光マーブル

Leap MotionのZ軸でモーターを動かし(Firmata使用)、赤外線LEDで照らした蓄光マーブルの揺れをビデオカメラのナイトショットカメラモードで撮ってofxOpenCVのcontourFinderで位置検出→ofxUGenで音をつけた感じです。一本指だとサイン波、二本指だと低音、三本指だとホワイトノイズ…など指の数に応じてオシレータやモーターの数、y軸で音量などを割り当ててます。

参考…
Leap Motion→oF http://gndo.blogspot.jp/2013/07/leap-motion-openframeworks.html
ビー玉 蓄光マーブル25mm 40粒入
→通常の光ではあまり蓄光できていない(contourFinderで判別が難しい)ので赤外線LEDを下からあてました。
SONY HDD30GB搭載 デジタルビデオカメラ DCR-SR100

先週のライブ時の映像


この日は手の動きを見せるために赤外線カメラで手を撮ってもう一台のプロジェクターで手の動きを見せています。

きっかけは

http://atelieromoya.jp/ps.html
実際に動くビー玉の位置検出して音や映像を追加できたらもっと楽しくなるのかな、というのが出発点。まだ改良の余地ありですが…。


10/27 17:38

ofxTrueTypeFontUC + oF systemSpeak “Kyoko” test

openFrameworksのサンプルで英語で発音できていたので日本語でも発音できないのかな〜と思ったら普通に出来ました。

testApp.h

#pragma once
#include "ofMain.h"
#include "ofxTrueTypeFontUC.h"  // https://github.com/hironishihara/ofxTrueTypeFontUC

// ---------------------------------------------
class testApp : public ofBaseApp, public ofThread {
	
public:
    
    void setup();
    void draw();
    void exit();
    void threadedFunction();
    
    ofxTrueTypeFontUC font;
    vector <string> words;
    int step;
    
    string voice;
};

testApp.cpp

#include "testApp.h"

//--------------------------------------------------------------
void testApp::setup() {

    font.loadFont("ヒラギノ明朝 ProN W3.otf", 34);  //日本語対応フォントを ./bin/data下に
    voice = "Kyoko";                           //http://veadardiary.blog29.fc2.com/blog-entry-3854.html参照

    // load the lyrics from a text file and split them
    // up in to a vector of strings
    string lyrics = ofBufferFromFile("lyrics.txt").getText();  //適当な文章を。区切りたいところに半角スペースを入れる
    step = 0;
    words = ofSplitString(lyrics, " ");

    // we are running the systems commands
    // in a sperate thread so that it does
    // not block the drawing
    startThread();
}

//--------------------------------------------------------------
void testApp::threadedFunction() {

    while (isThreadRunning()) {
        // call the system command say
        #ifdef TARGET_OSX
            string cmd = "say -v "+voice+" "+words[step]+" ";   // create the command
            system(cmd.c_str());
        #endif
        #ifdef TARGET_WIN32
            string cmd = "data\\SayStatic.exe "+words[step];   // create the command
            cout << cmd << endl;
            system(cmd.c_str());
        #endif

        // step to the next word
        step ++;
        step %= words.size();

        // slowdown boy
        ofSleepMillis(10);
    }
}
//--------------------------------------------------------------
void testApp::draw() {
    // center the word on the screen
    float x = (ofGetWidth() - font.stringWidth(words[step])) / 2;
    float y = ofGetHeight() / 2;

    // draw the word
    ofSetColor(0);
    font.drawString(words[step], x, y);    
}

//--------------------------------------------------------------
void testApp::exit() {
    // stop the thread on exit
    waitForThread(true);
}

元は↓の歌詞でした。

Benny Benassi – Satisfaction


09/03 17:19