OMK Logo
OMK Title

LV2

Synthpod - a lightweight non-linear plugin container

To install the program bundle on your system, simply copy the synthpod folder out of the platform folder of the downloaded package into your /opt 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
Synthpod in action.

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. Partial 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

Currently the following plugins are contained in this plugin bundle:

Atom to Control

Deserialize a single atom sequence to multiple control ports (see also Control to Atom).

Use this to extend Synthpod with as many control ports as needed.

Atom to CV

Deserialize a single atom sequence to multiple Control Voltage ports (see also CV to Atom).

Use this to extend Synthpod with as many Control Voltage ports as needed.

Audio Crossfade Mono

Crossfade between two mono audio channels.

Audio Crossfade Stereo

Crossfade between two stereo audio channel pairs.

Control to Atom

Serialize multiple control ports to a single atom sequence (see also Atom to Control).

Use this to extend Synthpod with as many control ports as needed.

Control to CV

Convert between control and Control Voltage ports (see also CV to Control).

CV to Atom

Serialize multiple Control Voltage ports to a single atom sequence (see also Atom to CV).

Use this to extend Synthpod with as many Control Voltage ports as needed.

CV to Control

Convert between Control Voltage and control ports (see also Control to CV).

Keyboard

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

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.

Mixer

Adjust gain of audio ports from -96dB to 96dB.

WANTED:
Beta Testers

After a high interest at Maker Faire Rome, we are now running a beta-testing campaign to collect more comprehensive feedback of first-hand experiences of our final Chimaera prototype design from interested individuals. Get in contact with us. Now.

Please support free/libre software and hardware designs.

or

donate bitcoins

or

request bank credentials via encrypted mail for SEPA transfers.

Last update - 16 May 2017

GitHub Google+ SoundCloud Vimeo

Copyright © 2014-2017, Hanspeter Portner, Open Music Kontrollers, cc-by-sa 4.0. Uses libre javascript.