Open Music Kontrollers

Synthpod - non-linear LV2 plugin host

To install the plugin bundle on your system, simply copy the synthpod folder out of the platform folder of the downloaded package into your LV2 path.

Unstable (nightly) release

Sources

Packages

About

Synthpod is an LV2 host. It can be run as a standalone app and be used as a tool for live performances or general audio and event filtering.

It was conceptualized to fill the gap between pure textual (e.g. SuperCollider) and pure visual flow (e.g. Pure Data) audio programming paradigms.

Potential fields of application may include:

The standalone host saves its state in the same format as an LV2 plugin instance,

It may be run on top of an audio system (JACK or ALSA) and on top of an event system (MIDI and OSC). It can be run with a GUI or headless. You can e.g. prepare a patch on your desktop machine and then transfer it to a wearable synth.

Synthpod takes a totally modular approach whereby it provides only the minimal necessary host infrastructure expected by a given plugin.

All additional, non strictly necessary glue shall be implemented with plugins. Synthpod e.g. can be extended with OSC via Eteroj. Sequencing and looping may be added via plugins from the Orbit bundle. When paired with realtime scripting via Moony, it turns Synthpod into a versatile realtime programmable, remote controllable LV2 host framework.

Synthpod screenshot

LV2 specifications support status

As Synthpod tries to be a lightweight LV2 host, it may not (fully) support the more exotic extensions. Get an up-to-date overview of current extensions support for Synthpod in the table below.

The full LV2 specification is located at http://lv2plug.in/ns/.

Specification API Description Support status Notes
Atom atom A generic value container and several data types. Yes
Buf Size buf-size Access to, and restrictions on, buffer sizes. Yes
Data Access data-access Provides access to LV2_Descriptor::extension_data(). No won't, ever
Dynamic Manifest dynmanifest Support for dynamic data generation. No
Event event A port-based real-time generic event interface. Yes
Instance Access instance-access Provides access to the LV2_Handle of a plugin. No won't, ever
Log log A feature for writing log messages. Yes
LV2 lv2core An audio plugin interface specification. Yes
MIDI midi A normalised definition of raw MIDI. Yes
Morph morph Ports that can dynamically change type. No
Options options Instantiation time options. Yes
Parameters parameters Common parameters for audio processing. data-only
Patch patch Messages for accessing and manipulating properties. Yes
Port Groups port-groups Multi-channel groups of LV2 ports. Yes
Port Properties port-props Various port properties. data-only
Presets presets Presets for LV2 plugins. Yes
Resize Port resize-port Dynamically sized LV2 port buffers. Partial no dynamic resize
State state An interface for LV2 plugins to save and restore state. Yes
Time time Properties for describing time. Yes
UI ui LV2 plugin UIs of any type. Yes X11UI, Gt2kUI, Gtk3UI, Qt4UI, Qt5UI, Show/Idle-Interface, external-ui
Units units Units for LV2 values. Yes
URI Map uri-map A feature for mapping URIs to integers. Yes
URID urid Features for mapping URIs to and from integers. Yes
Worker worker Support for a non-realtime plugin worker method. Yes

Hosts

Currently the following hosts are contained in this software bundle:

JACK

Synthpod as host built on top of JACK with support for native JACK audio, MIDI, OSC and CV in/out ports. The right choice on GNU/Linux for modular setups.

This standalone host supports NON session management and JACK session management to neatly integrate into modular setups.

ALSA

Synthpod as host built on top of ALSA with support for native ALSA audio and MIDI sequencer in/out ports. The right choice on GNU/Linux for live setups, embedded devices or when you don’t need audio routing to other apps.

This standalone host supports NON session management to neatly integrate into modular setups.

DUMMY

Synthpod as host built on top of a dummy driver, mainly useful for debugging purposes.

This standalone host supports NON session management to neatly integrate into modular setups.

Plugins

Control to CV

Convert between Control Voltage and control ports.

CV to Control

Convert between Control Voltage and control ports.

Heavyload

Just burn CPU cycles away for debugging.

Keyboard

A rudimentary graphical keyboard with a 2 octave range, mainly meant for simple test cases.

MIDI splitter

Split MIDI events based on their channel.

Panic

Silence MIDI downstream plugins upon panic.

Stereo

The Synthpod LV2 non-linear plugin container run as a plugin itself in an other host or itself. It features stereo audio in/out ports, atom event in/out ports and 4 control in/out ports.

Use this to add support for non-linear plugin routing in a strictly linear host.

Last update - 28 Sep 2018

Copyright © 2014-2018, Hanspeter Portner, Open Music Kontrollers, cc-by-sa 4.0.