Andy W. Schmeder
2011-11-04 20:26:04 UTC
The following in an excerpt from the draft document giving my list of design goals and proposed changes.
If your favorite issue is *not* on the list feel free to speak up. OR if your favorite feature is scheduled to be cut, or something else doesn't make sense.
...
The main design goals for OSC 2.0 are.
• Improve the packet format.
• Improve processing and coding efficiency.
• Resolve ambiguous syntax and semantics.
• Establish protocol for discovery, enumeration and control.
• Establish well-defined file format.
• Establish well-defined transformations to other coding schemes (JSON, XML, YAML)
The following are removed, resolved or simplified compared to OSC 1.0:
• Removes the “built-in” timestamp field from bundles.
• Resolves semantics of timestamps for use in temporal processing.
• Resolves syntax and semantics of address pattern expressions in messages.
• Removes requirement for backtracking in processing of the address pattern syntax.
• Resolves an oversight in the definition of the address pattern numeric range expression so that multi-digit index selectors can be used.
• Removes the need for a framing protocol when used with a serial transport.
• Simplifies the packet format so there is only one class of valid packet which is the bundle.
• Resolves ambiguous semantics of nested bundles.
• Removes all type-tags that implicitly carry data (I,T,N,F)
• Removes all improper types from the list of optional types ("improper" is any type with implicit semantics, such as "RGB color")
The following are additions or extensions:
• Adds a version number to the packet header to support future format revisions.
• Adds an options bit-flag field to the packet header to support different low-level encodings.
• Enables encoding of data sections with big- or little-endian byte order.
• Enables encoding of data sections with 4-, 8-, 16-, or 32-byte alignment.
• Adds an optional packet checksum.
• Adds float and integer 64-bit numeric types as mandatory types to the standard.
• Adds a comprehensive collection of optional types.
• Enables encoding of structured content by using nested bundles.
• Adds lookup-table string compression for bandwidth-constrained applications, whereby address and/or typetag strings may be substituted by a numeric identifier.
• Adds a set of predefined addresses and their protocol semantics to enable discovery, enumeration and control.
• Provides a file-format using IANA MIME.
• Provides transformations to other content formats including JSON, XML,YAML.
• Provides recommended practice for ad-hoc discovery on Layer 2 (how???) and Layer 3 (Zeroconf??)
---
Andy W. Schmeder
email: andy [at] cnmat.berkeley.edu
skype: andy.schmeder
mobile: +1-510-717-6653
Programmer/Analyst II
Research Group
Center for New Music and Audio Technologies
University of California at Berkeley
http://cnmat.berkeley.edu
If your favorite issue is *not* on the list feel free to speak up. OR if your favorite feature is scheduled to be cut, or something else doesn't make sense.
...
The main design goals for OSC 2.0 are.
• Improve the packet format.
• Improve processing and coding efficiency.
• Resolve ambiguous syntax and semantics.
• Establish protocol for discovery, enumeration and control.
• Establish well-defined file format.
• Establish well-defined transformations to other coding schemes (JSON, XML, YAML)
The following are removed, resolved or simplified compared to OSC 1.0:
• Removes the “built-in” timestamp field from bundles.
• Resolves semantics of timestamps for use in temporal processing.
• Resolves syntax and semantics of address pattern expressions in messages.
• Removes requirement for backtracking in processing of the address pattern syntax.
• Resolves an oversight in the definition of the address pattern numeric range expression so that multi-digit index selectors can be used.
• Removes the need for a framing protocol when used with a serial transport.
• Simplifies the packet format so there is only one class of valid packet which is the bundle.
• Resolves ambiguous semantics of nested bundles.
• Removes all type-tags that implicitly carry data (I,T,N,F)
• Removes all improper types from the list of optional types ("improper" is any type with implicit semantics, such as "RGB color")
The following are additions or extensions:
• Adds a version number to the packet header to support future format revisions.
• Adds an options bit-flag field to the packet header to support different low-level encodings.
• Enables encoding of data sections with big- or little-endian byte order.
• Enables encoding of data sections with 4-, 8-, 16-, or 32-byte alignment.
• Adds an optional packet checksum.
• Adds float and integer 64-bit numeric types as mandatory types to the standard.
• Adds a comprehensive collection of optional types.
• Enables encoding of structured content by using nested bundles.
• Adds lookup-table string compression for bandwidth-constrained applications, whereby address and/or typetag strings may be substituted by a numeric identifier.
• Adds a set of predefined addresses and their protocol semantics to enable discovery, enumeration and control.
• Provides a file-format using IANA MIME.
• Provides transformations to other content formats including JSON, XML,YAML.
• Provides recommended practice for ad-hoc discovery on Layer 2 (how???) and Layer 3 (Zeroconf??)
---
Andy W. Schmeder
email: andy [at] cnmat.berkeley.edu
skype: andy.schmeder
mobile: +1-510-717-6653
Programmer/Analyst II
Research Group
Center for New Music and Audio Technologies
University of California at Berkeley
http://cnmat.berkeley.edu