~hp/eteroj.lv2

Open Sound Control inside LV2 plugin graphs
35a4659c — builds.sr.ht 12 days ago
Update ci to release-0.4.11
03072dc3 — builds.sr.ht 3 months ago
Update ci to release-0.4.9
5879b64d — builds.sr.ht 6 months ago
Update ci to release-0.4.4

clone

read-only
https://git.open-music-kontrollers.ch/~hp/eteroj.lv2
read/write
git@git.open-music-kontrollers.ch:~hp/eteroj.lv2

You can also use your local clone with git send-email.

Eteroj

Open Sound Control inside LV2 plugin graphs

builds.sr.ht status

This LV2 plugin bundle allows you to handle OSC (Open Sound Control) bundles and messages in modular hosts.

  • Insert/dispatch OSC from/to UDP, TCP (IPv4/6) and serial sockets
  • Pack/unpack MIDI into OSC
  • Pack/unpack OSC into MIDI
  • Pack/unpack LV2 atoms into OSC

Makes only sense to be used in hosts that allow routing of LV2 atom messages between plugins, e.g.

Packages

Plugins

(De)Cloak

Embed OSC in MIDI Sysex messages. Use this to smuggle arbitrary OSC packets via MIDI to a given destination. It does also the opposite of course, e.g extract arbitrary OSC packets previously embedded in MIDI Sysex messages.

IO

A plugin able to inject/eject OSC packets into/from the plugin graph to/from network and serial lines. The non-realtime network part of the plugin supports OSC via bidirectional UDP and TCP on top of IPv4/IPv6 and OSC via serial lines which is handy for interfacing to microcontrollers via U(S)ART and USB. TCP based connections support both (deprecated) size-prefix and SLIP framing (default).

Internally to the plugin graph, OSC packets are routed as first-class LV2 Atom objects, making the plugin compliant with any existing hosts.

Timestamped OSC bundles are injected into the plugin graph with sample accuracy.

The supported Urls are as follows:

// UDP IPv4 unicast server/client on port 2222
osc.udp://:2222
osc.udp://localhost:2222
	
// UDP IPv6 unicast server/client on port 3333
osc.udp://[]:3333
osc.udp://[::1]:3333

// UDP IPv4 broadcast server/client on port 3344
osc.udp://:3344
osc.udp://255.255.255.255:3344

// TCP IPv4 server/client on port 4444 (SLIP encoded)
osc.tcp://:4444
osc.tcp://localhost:4444

// TCP IPv6 server/client on port 5555 (SLIP encoded)
osc.tcp://[]:5555
osc.tcp://[::1]:5555

// TCP IPv4 server/client on port 6666 (SLIP encoded)
osc.slip.tcp://:6666
osc.slip.tcp://localhost:6666
	
// TCP IPv6 server/client on port 7777 (SLIP encoded)
osc.slip.tcp://[]:7777
osc.slip.tcp://[::1]:7777
	
// TCP IPv4 server/client on port 8888 (int32 size-prefixed)
osc.prefix.tcp://:8888
osc.prefix.tcp://localhost:8888
	
// TCP IPv6 server/client on port 9999 bound to loopback interface (int32 size-prefixed)
osc.prefix.tcp://[%lo]:9999
osc.prefix.tcp://[::1%lo]:9999

// Serial server/client on /dev/ttyUSB0 (SLIP encoded)
osc.serial:///dev/ttyUSB0

Ninja

Embed Turtle RDF in OSC as string. Use this to smuggle arbitrary LV2 atom messages via OSC to a given destination. It does also the opposite of course, e.g. extract and deserialize Turtle RDF embedded in OSC messages to plain LV2 atoms.

(Un)Pack

Embed arbitrary 1-3 byte MIDI commands (but Sysex) in OSC messages. Use this to send MIDI commands via OSC to a given destination. It does also the opposite of course, e.g. extract MIDI commands embedded in OSC messages to plain MIDI.

Query

This plugin implements our OSC Introspect specification. It thus exports any methods and parameters of a given OSC device to transparently to LV2 properties.

Issues/Patches

Please report issues to https://todo.open-music-kontrollers.ch/~hp/issues

Please submit patches to https://lists.open-music-kontrollers.ch/~hp/patches

Do not follow this link