OSC significa Open Sound Control, e é um protocolo amplamente usado para passar dados entre aplicações multimidia. Fluxus pode enviar e/ou receber mensagens.
Um exemplo de uso de osc para comunicar entre pd e fluxus.
Um script fluxus para mover um cubo baseado em mensagens osc
entrando.
-- osc.scm
(define value 0)
(define (test)
(push)
(if (osc-msg "/zzz")
(set! value (osc 0)))
(translate (vector 1 0 value))
(draw-cube)
(pop))
(osc-source "6543")
(every-frame (test))
--- EOF
Um patch PD para enviar mensagens de controle ao fluxus:
--- zzz.pd
#N canvas 618 417 286 266 10;
#X obj 58 161 sendOSC;
#X msg 73 135 connect localhost 6543;
#X msg 58 82 send /zzz \$1;
#X floatatom 58 29 5 0 0 0 - - -;
#X obj 58 54 / 100;
#X obj 73 110 loadbang;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 5 0 1 0;
Returns void
Inicia o servidor osc, ou muda a porta. Bug conhecido: parece falhar se você usa de volta pra uma mesma porta já usada anteriormente.
Example
(osc-source "4444") ; listen to port 4444 for osc messages
Returns void
Retorna verdadeiro se a mensagem foi recebida desde o último quadro, e ajusta ela como a mensagem atual para chamadas subsequente ao (osc) para ler argumentos.
Example
(cond
((osc-msg "/hello") ; if a the /hello message is recieved
(display (osc 1))(newline))) ; print out the first argument
Returns void
Retorna o argumento da mensagem osc atual.
Example
(cond
((osc-msg "/hello") ; if a the /hello message is recieved
(display (osc 1))(newline))) ; print out the first argument
Returns void
Específica o destino para mensagens osc que estejam saindo. O nome da porta precisa ser específicado com todo o url e deve ser algo do tipo "osc.udp://localhost:4444"
Example
(osc-destination "osc.udp:localhost:4444") (osc-send "/hello" "s" (list "boo!")) ; send a message to this destination
Returns msg-string
Esta útil função retorna o nome, formato da string e número/string dos argumentos da última mensagem enviada como uma string - para debugar sua rede osc.
Example
(display (osc-peek))(newline)
Returns void
Envia uma mensagem osc com o argumento da lista como dado osc. Somente suporta floats, ints e strings como dados. O formato-string deve ser composto de "i", "f" e "s", e deve bater com os tipos dados na lista. Isto poderia ser removido provavelmente, usando os tipos diretamente, mas fazendo isto desta forma permite que você diga o tipo da mensagem osc explicitamente.
Example
(osc-destination "osc.udp:localhost:4444") (osc-send "/hello" "sif" (list "boo!" 3 42.3)) ; send a message to this destination