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.
