wiki:OscProtocol

Future Changes

New Version

There is an outdated version of the protocol here: http://fourierscratching.open-projects.net/code/Loops/protokoll.txt.

This table is the current version and should be updated, once Loops supports the respective messages. Proposals for future enhancements are further below.

OSC-path signature argument description description comments
/fsloops/loops/update s{ff}* (LoopName, abwechselnd magnitude und phase) Creates a new loop or updates an existing one Implemented in Loops
/fsloops/loops/updateRadians s{f}* (LoopName, radius) Sets the radians of the named loop cancelled
/fsloops/loops/updateColours s{iiii}* (LoopName, r, g, b, alpha) Sets the colours of the named loop cancelled
/fsloops/loops/delete s LoopName deletes a loop by name Implemented in Loops
/fsloops/loops/deleteAll Deletes all loops Implemented in Loops
/fsloops/loops/setPosition sfff (LoopName, x, y, z) Sets the position of the named loop. 1 unit in coordinates equals the radius of one Loop. Implemented in Loops
/fsloops/loops/setRadius sfff (LoopName, x, y, z) Sets the position of the named loop. 1 unit in coordinates equals the radius of one Loop. cancelled
/fsloops/loops/select s LoopName selects the named loop Implemented in Loops
/fsloops/loops/scalar/select si (LoopName, ScalarIndex) selects the given scalar in the named loop Implemented in Loops
/fsloops/loops/scalar/setValues siff (LoopName, ScalarIndex, magnitude, phase) sets the values of the given scalar in the named loop Implemented in Loops
/fsloops/loops/scalar/setRadius sif (LoopName, ScalarIndex, radius) sets the radius of the given scalar in the named loop. Initial values are 0.075 for unselected and 0.1 for selected scalars. Once you "touch" a scalar with this function, Loops will not modify its radius anymore (on selection or unselection) Implemented in Loops
/fsloops/loops/scalar/getColour si (LoopName, ScalarIndex) gets the colour of the given scalar in the named loop Implemented in Loops
/fsloops/loops/scalar/setColour siffff (LoopName, ScalarIndex, r, g, b, alpha) sets the colour of the given scalar in the named loop Implemented in Loops
/fsloops/loops/scalar/setLabel sis (LoopName, ScalarIndex, Label) sets the label of the given scalar in the named loop Implemented in Loops
/fsloops/camera/up/press moves the camera up Implemented in Loops
/fsloops/camera/up/release moves the camera up Implemented in Loops
/fsloops/camera/down/press moves the camera down Implemented in Loops
/fsloops/camera/down/press moves the camera down Implemented in Loops
/fsloops/camera/left/press moves the camera left Implemented in Loops
/fsloops/camera/left/release moves the camera left Implemented in Loops
/fsloops/camera/right/press moves the camera right Implemented in Loops
/fsloops/camera/right/release moves the camera right Implemented in Loops
/fsloops/camera/in/press moves the camera in Implemented in Loops
/fsloops/camera/in/release moves the camera in Implemented in Loops
/fsloops/camera/out/press moves the camera out Implemented in Loops
/fsloops/camera/out/release moves the camera out Implemented in Loops
/fsloops/camera/nosedive switches the camera perspective between front and above Implemented in Loops
/fsloops/camera/setPosition fff (x, y, z) Sets the position of the camera. 1 unit in coordinates equals the radius of one Loop. Initial position is (1.25, 0, 5). Implemented in Loops
/fsloops/camera/getPosition asks for the camera position Implemented in Loops
/fsloops/reset reinit the application only if too unstable or has bad garbage collection (GC)

Everything is sent from SuperCollider to Loops.

Answers from Loops:

OSC-path signature argument description description comments
/fsloops/camera/position fff (x, y, z) the position of the camera. 1 unit in coordinates equals the radius of one Loop. Implemented in Loops
/fsloops/loops/scalar/colour siffff (LoopName, ScalarIndex, r, g, b, alpha) the colour of the given scalar in the named loop Implemented in Loops

Wenn ich einen Vektor hinzufügen möchte oder löschen möchte, würde ich dann einfach die Vektorenzahl ändern? Macht es nicht Sinn, dafür auch updateLoop zu verwenden?

  • Erstens passiert das ja nicht so oft, es entsteht also nicht zuviel Traffic.
  • Zweitens besteht sonst die Gefahr, dass man mit den Skalarindices durcheinander kommt.

Querying of Loops

Only that it seems important to be able to query the state of Loops in terms of:

1a) How many loops are around? (also possibly where?)[[BR]]
1b) Which loop has focus?[[BR]]
2a) How many scalars has a existing loop?[[BR]]
2b) Which scalar has focus?[[BR]]

Implement this ticket

http://fourierscratching.open-projects.net/ticket/1

Old Version

OSC-path signature argument description description
SC -> Loops
/fsloops/register s{s}* (ClientName, Sonifikationsmethoden) Handshake
/fsloops/reconnect s (ClientName) Handshake ohne resetting
/fsloops/gamecontroller/scalar/selectNext selects the next scalar
/fsloops/gamecontroller/scalar/selectPrevious selects the previous scalar
/fsloops/gamecontroller/scalar/manipulateX f value sets the real part of the selected scalar
/fsloops/gamecontroller/scalar/manipulateY f value sets the imaginary part of the selected scalar
/fsloops/gamecontroller/loop/selectNext selects the next loop
/fsloops/gamecontroller/loop/selectPrevious selects the previous scalar
Loops -> SC (deprecated)
/fsloops/reset Loescht alle Loops und mutet instantan
/fsloops/updateLoop s{ff}* (LoopName, abwechselnd magnitude und phase) Legt eine neue Loop an
/fsloops/muteOn ss (LoopName, Sonifikationsmethode)
/fsloops/muteOff ss (LoopName, Sonifikationsmethode)
/fsloops/onSet si (LoopName, SkalarIndex ab 0)
/fsloops/offSet si (LoopName, SkalarIndex ab 0)

The messages that are sent from Loops to SuperCollider are all deprecated, because Loops is going to be a perfect slave. We don't even need a message to acknoledge receiving, because we are using tcp.

Last modified 7 years ago Last modified on 09/23/2010 04:10:39 PM