[Fluxus] getting there osc-recursion-
    geoffroy tremblay 
    gef at ponnuki.net
       
    Thu Dec 30 23:44:34 PST 2010
    
    
  
I was able to get value from an osc device (nds with dsmi) - and I was
trying to emulate the movement of the mouse with the camera - I
attached a camera to an object then trying to use the osc values to
move around. can I accomplish the same effect with the camera move
than the normal mouse camera ?
would I use rotate for the left click
the translate for the middle click
and the set-ortho zoom for the right click
(in my code right now I only loaded some movement but nothing really nice)
also the osc is quite laggy - is there some better to get the osc
data? it's not really usable at this point - maybe it's sending too
much data to the function (like too often - can I reduce that ?)
I am also moving around a recursion - and taking input from the audio
in -  and it seems out of sync - is there someway to create a faster
connection with jack ? or is it just computer power that will help
that ?
I am sure my code is probably not being quite optimized for speed :S
(thanks)
(clear)
; (define obj (build-cube)) ; create a cube to lock camera too
; (osc-source "9000")
; defining all the osc source 3 slider and a kaos xy
(define oscR 1)
(define oscG 1)
(define oscB 1)
(define oscY 1)
(define oscX 1)
(define evolve 0)
;(lock-camera obj)  ; locking the camera that will be used by osc
;(camera-lag 0.1)
(texture (load-texture "egg3.png"))
(gain 0.1)
(define (animate)
    (with-primitive obj
        (identity)
 ; loading the osc data into the variables
        (display (mouse-wheel))
        (when (osc-msg "/ds/kaos/y")
            (set! oscY (* 1000 (osc 0))))
        (when (osc-msg "/ds/kaos/x")
            (set! oscX (* 1000 (osc 0))))
        (when (osc-msg "/ds/slider1")
            (set! oscR (* 1000 (osc 0))))
        (when (osc-msg "/ds/slider2")
            (set! oscG (* 10 (osc 0))))
        (when (osc-msg "/ds/slider3")
            (set! oscB (* 100 (osc 0))))
;applying the osc data
        (rotate (vector oscX oscY oscR))
        ;(scale (vector oscB oscB oscB))
        )
    )
; My main recursion
(define (play count)
    (cond
        ((not (zero? count))
            (rotate (vector (time) 0 0)) ; keeping it moving
; getting the sphere to react to audio input
           ;(colour (vector (+ 10 (* 100 (gh 1))) (* 100 (gh 1)) (*
100 (gh 1))))
            (scale (vector (+ 1 (gh 1)) (+ 1 (gh 1)) (+ 1 (gh 1))))
            (draw-sphere)
            (with-state
                (rotate (vector 0 0 (* 10 (time))))
                (translate (vector 3 3 3))
                (scale (vector .6 .6 .6))
                (draw-sphere)
                (rotate (vector 0 0 (* 100 (time))))
                (translate (vector 2 2 2))
                (scale (vector .6 .6 .6))
                (draw-sphere)
                (rotate (vector 0 0 (* 100 (time))))
                (translate (vector 2 2 2))
                (scale (vector .6 .6 .6))
                (draw-sphere))
            (translate (vector 1 2 3))
            (play (- count 1)))))
(every-frame(begin
        ;        (animate)
        ;mouse wheel to increase the number of recursion
        (set! evolve (+ evolve (mouse-wheel)))
        (play evolve)))
    
    
More information about the Fluxus
mailing list