Towards Standardization of Queries in OSC

Queries are intended to allow OSC clients to discover information about OSC servers, including the following:

  • The Address Space
  • The schema,
  • Expected type signatures for arguments to specific messages
  • Human-readable documentation
  • The current state of the system:
    • Values of parameters that clients can set (e.g., current frequency of an argument)
    • Current attributes of the system (e.g., CPU usage, free memory, number of active unit generators...)

Although the original paper introducing OSC includes a somewhat detailed section defining messages that are "requests for information", this particular scheme was not in fact implemented.

There are a few implementations of queries, none of which are mutually compatible, hence the desire to form an OSC Query Working Group to design a stronger standard that meets everybody's needs.

Queries have been implemented in SuperCollider for a long time. Since the OSC address space of the SuperCollider server is static, there is not thought to be a need for a mechanism to discover the address space, so the queries are designed to get current information about the dynamic state of the system.

OpenSoundWorld implements queries. Each OSW patch has an automatically-generated dynamic OSC name space allowing every unit generator to be addressed in an OSC Address Space whose tree structure matches the hierarchical recursive nesting of subpatches in the user's OSW patch. (Bidule has the same sort of automatic OSC address space generation based on the user's creation of nested patch structures.) Andy Schmeder created a Python client to OSW that uses OSW's OSC Address Space query mechanism to browse the dynamic address space via a shell-style metaphor (i.e., mimicing the Unix "cd" and "ls" commands as if the OSW server's address space were a filesystem), briefly described .

Andy Schmeder made a presentation at the 2004 OSC Conference giving a history of the OSC query effort, laying out some design criteria and possible design choices, and making some concrete suggetions.

Querries have been an active topic on the osc_dev email list.