messages

class OscBundle(timestamp: float | None = None, *, contents: Sequence[OscBundle | OscMessage])

Bases: object

An OSC bundle.

>>> import supriya.osc
>>> message_one = supriya.osc.OscMessage("/one", 1)
>>> message_two = supriya.osc.OscMessage("/two", 2)
>>> message_three = supriya.osc.OscMessage("/three", 3)
>>> inner_bundle = supriya.osc.OscBundle(
...     timestamp=1401557034.5,
...     contents=(message_one, message_two),
... )
>>> inner_bundle
OscBundle(timestamp=1401557034.5, contents=[OscMessage('/one', 1), OscMessage('/two', 2)])
>>> print(inner_bundle)
size 56
   0   23 62 75 6e  64 6c 65 00  d7 34 8e aa  80 00 00 00   |#bundle..4......|
  16   00 00 00 10  2f 6f 6e 65  00 00 00 00  2c 69 00 00   |..../one....,i..|
  32   00 00 00 01  00 00 00 10  2f 74 77 6f  00 00 00 00   |......../two....|
  48   2c 69 00 00  00 00 00 02                             |,i......|
>>> outer_bundle = supriya.osc.OscBundle(
...     contents=(inner_bundle, message_three),
... )
>>> outer_bundle
OscBundle(contents=[OscBundle(timestamp=1401557034.5, contents=[OscMessage('/one', 1), OscMessage('/two', 2)]), OscMessage('/three', 3)])
>>> print(outer_bundle)
size 96
   0   23 62 75 6e  64 6c 65 00  00 00 00 00  00 00 00 01   |#bundle.........|
  16   00 00 00 38  23 62 75 6e  64 6c 65 00  d7 34 8e aa   |...8#bundle..4..|
  32   80 00 00 00  00 00 00 10  2f 6f 6e 65  00 00 00 00   |......../one....|
  48   2c 69 00 00  00 00 00 01  00 00 00 10  2f 74 77 6f   |,i........../two|
  64   00 00 00 00  2c 69 00 00  00 00 00 02  00 00 00 10   |....,i..........|
  80   2f 74 68 72  65 65 00 00  2c 69 00 00  00 00 00 03   |/three..,i......|
>>> datagram = outer_bundle.to_datagram()
>>> decoded_bundle = supriya.osc.OscBundle.from_datagram(datagram)
>>> decoded_bundle
OscBundle(contents=[OscBundle(timestamp=1401557034.5, contents=[OscMessage('/one', 1), OscMessage('/two', 2)]), OscMessage('/three', 3)])
>>> decoded_bundle == outer_bundle
True
classmethod from_datagram(datagram: bytes) OscBundle
classmethod partition(messages: list[OscMessage], timestamp: float | None = None) list[OscBundle]
to_datagram(realtime: bool = True) bytes
to_list()
to_osc() OscBundle
class OscMessage(address: Enum | int | str, *contents: Enum | OscBundle | OscMessage | Sequence[Enum | OscBundle | OscMessage | Sequence[OscArgument] | bool | bytes | float | str | None] | bool | bytes | float | str | None)

Bases: object

An OSC message.

>>> from supriya.osc import OscMessage
>>> osc_message = OscMessage("/g_new", 0, 0)
>>> osc_message
OscMessage('/g_new', 0, 0)
>>> datagram = osc_message.to_datagram()
>>> OscMessage.from_datagram(datagram)
OscMessage('/g_new', 0, 0)
>>> print(osc_message)
size 20
   0   2f 67 5f 6e  65 77 00 00  2c 69 69 00  00 00 00 00   |/g_new..,ii.....|
  16   00 00 00 00                                          |....|
>>> osc_message = OscMessage("/foo", True, [None, [3.25]], OscMessage("/bar"))
>>> osc_message
OscMessage('/foo', True, [None, [3.25]], OscMessage('/bar'))
>>> datagram = osc_message.to_datagram()
>>> OscMessage.from_datagram(datagram)
OscMessage('/foo', True, [None, [3.25]], OscMessage('/bar'))
>>> print(osc_message)
size 40
   0   2f 66 6f 6f  00 00 00 00  2c 54 5b 4e  5b 66 5d 5d   |/foo....,T[N[f]]|
  16   62 00 00 00  40 50 00 00  00 00 00 0c  2f 62 61 72   |b...@P....../bar|
  32   00 00 00 00  2c 00 00 00                             |....,...|
>>> osc_message = supriya.osc.OscMessage(
...     "/foo",
...     1,
...     2.5,
...     supriya.osc.OscBundle(
...         contents=(
...             supriya.osc.OscMessage("/bar", "baz", 3.0),
...             supriya.osc.OscMessage("/ffff", False, True, None),
...         )
...     ),
...     ["a", "b", ["c", "d"]],
... )
>>> osc_message
OscMessage('/foo', 1, 2.5, OscBundle(contents=[OscMessage('/bar', 'baz', 3.0), OscMessage('/ffff', False, True, None)]), ['a', 'b', ['c', 'd']])
>>> datagram = osc_message.to_datagram()
>>> OscMessage.from_datagram(datagram)
OscMessage('/foo', 1, 2.5, OscBundle(contents=[OscMessage('/bar', 'baz', 3.0), OscMessage('/ffff', False, True, None)]), ['a', 'b', ['c', 'd']])
>>> print(osc_message)
size 112
   0   2f 66 6f 6f  00 00 00 00  2c 69 66 62  5b 73 73 5b   |/foo....,ifb[ss[|
  16   73 73 5d 5d  00 00 00 00  00 00 00 01  40 20 00 00   |ss]]........@ ..|
  32   00 00 00 3c  23 62 75 6e  64 6c 65 00  00 00 00 00   |...<#bundle.....|
  48   00 00 00 01  00 00 00 14  2f 62 61 72  00 00 00 00   |......../bar....|
  64   2c 73 66 00  62 61 7a 00  40 40 00 00  00 00 00 10   |,sf.baz.@@......|
  80   2f 66 66 66  66 00 00 00  2c 46 54 4e  00 00 00 00   |/ffff...,FTN....|
  96   61 00 00 00  62 00 00 00  63 00 00 00  64 00 00 00   |a...b...c...d...|
classmethod from_datagram(datagram: bytes) OscMessage
to_datagram() bytes
to_list()
to_osc() OscMessage
format_datagram(datagram: bytes) str