Vapor: Bootstrap Atmosphere plugin
This commit is contained in:
parent
0ada2df2e6
commit
c7772c220e
@ -3973,6 +3973,12 @@ LV2PluginInfo::discover (boost::function <void (std::string const&, PluginScanLo
|
||||
info->n_inputs.n_audio (), info->n_outputs.n_audio (),
|
||||
count_midi_in, count_midi_out,
|
||||
count_ctrl_in, count_ctrl_out), false);
|
||||
|
||||
if (uri == "urn:ardour:a-vapor" || uri == "urn:ardour:a-atmos") {
|
||||
info->internal = true;
|
||||
cb (uri, PluginScanLogEntry::OK, "", true);
|
||||
}
|
||||
|
||||
plugs->push_back(info);
|
||||
}
|
||||
|
||||
|
257
libs/plugins/a-vapor.lv2/a-vapor.c
Normal file
257
libs/plugins/a-vapor.lv2/a-vapor.c
Normal file
@ -0,0 +1,257 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Robin Gareus <robin@gareus.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifdef NDEBUG
|
||||
#error THIS PLUGIN EXISTS ONLY FOR THE PROTOTYPING
|
||||
#endif
|
||||
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE // needed for M_PI
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
/******************************************************************************
|
||||
* LV2 wrapper
|
||||
*/
|
||||
|
||||
#ifdef HAVE_LV2_1_18_6
|
||||
#include <lv2/core/lv2.h>
|
||||
#include <lv2/atom/atom.h>
|
||||
#include <lv2/atom/forge.h>
|
||||
#include <lv2/urid/urid.h>
|
||||
#else
|
||||
#include <lv2/lv2plug.in/ns/lv2core/lv2.h>
|
||||
#include <lv2/lv2plug.in/ns/ext/atom/atom.h>
|
||||
#include <lv2/lv2plug.in/ns/ext/atom/forge.h>
|
||||
#include <lv2/lv2plug.in/ns/ext/urid/urid.h>
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
LV2_URID atom_Blank;
|
||||
LV2_URID atom_Object;
|
||||
LV2_URID atom_Vector;
|
||||
LV2_URID atom_Float;
|
||||
LV2_URID atom_Int;
|
||||
LV2_URID atom_eventTransfer;
|
||||
} VaporLV2URIs;
|
||||
|
||||
typedef struct {
|
||||
/* audio I/O */
|
||||
float const* input[128];
|
||||
float* out_surround[12];
|
||||
float* out_binaural[2];
|
||||
float* out_loudness[6];
|
||||
|
||||
/* control Ports */
|
||||
LV2_Atom_Sequence const* p_control;
|
||||
LV2_Atom_Sequence* p_notify;
|
||||
float const* p_enable;
|
||||
float* p_latency;
|
||||
|
||||
/* atom-forge and URI mapping */
|
||||
LV2_URID_Map* map;
|
||||
LV2_Atom_Forge forge;
|
||||
LV2_Atom_Forge_Frame frame;
|
||||
VaporLV2URIs uris;
|
||||
|
||||
/* internal config/state */
|
||||
uint32_t latency;
|
||||
} AVapor;
|
||||
|
||||
static inline void
|
||||
map_uris (LV2_URID_Map* map, VaporLV2URIs* uris)
|
||||
{
|
||||
uris->atom_Blank = map->map (map->handle, LV2_ATOM__Blank);
|
||||
uris->atom_Object = map->map (map->handle, LV2_ATOM__Object);
|
||||
uris->atom_Vector = map->map (map->handle, LV2_ATOM__Vector);
|
||||
uris->atom_Float = map->map (map->handle, LV2_ATOM__Float);
|
||||
uris->atom_Int = map->map (map->handle, LV2_ATOM__Int);
|
||||
uris->atom_eventTransfer = map->map (map->handle, LV2_ATOM__eventTransfer);
|
||||
}
|
||||
|
||||
static LV2_Handle
|
||||
instantiate (const LV2_Descriptor* descriptor,
|
||||
double rate,
|
||||
const char* bundle_path,
|
||||
const LV2_Feature* const* features)
|
||||
{
|
||||
#if 0 /* D018y requires 48k or 96k */
|
||||
if (rate != 48000 && rate != 96000) {
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
AVapor* self = (AVapor*)calloc (1, sizeof (AVapor));
|
||||
if (!self) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (int i = 0; features[i]; ++i) {
|
||||
if (!strcmp (features[i]->URI, LV2_URID__map)) {
|
||||
self->map = (LV2_URID_Map*)features[i]->data;
|
||||
}
|
||||
}
|
||||
|
||||
if (!self->map) {
|
||||
fprintf (stderr, "a-vapor.lv2 error: Host does not support urid:map\n");
|
||||
free (self);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
lv2_atom_forge_init (&self->forge, self->map);
|
||||
map_uris (self->map, &self->uris);
|
||||
|
||||
self->latency = 0;
|
||||
|
||||
return (LV2_Handle)self;
|
||||
}
|
||||
|
||||
static void
|
||||
connect_port (LV2_Handle instance,
|
||||
uint32_t port,
|
||||
void* data)
|
||||
{
|
||||
AVapor* self = (AVapor*)instance;
|
||||
switch (port) {
|
||||
case 0:
|
||||
self->p_control = (LV2_Atom_Sequence const*)data;
|
||||
return;
|
||||
case 1:
|
||||
self->p_notify = (LV2_Atom_Sequence*)data;
|
||||
return;
|
||||
case 2:
|
||||
self->p_enable = (float const*) data;
|
||||
return;
|
||||
case 3:
|
||||
self->p_latency = (float*) data;
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (port < 132) {
|
||||
self->input[port - 4] = (float const*) data;
|
||||
} else if (port < 144) {
|
||||
self->out_surround[port - 132] = (float*) data;
|
||||
} else if (port < 146) {
|
||||
self->out_binaural[port - 144] = (float*) data;
|
||||
} else if (port < 152) {
|
||||
self->out_loudness[port - 146] = (float*) data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
activate (LV2_Handle instance)
|
||||
{
|
||||
//AVapor* self = (AVapor*)instance;
|
||||
}
|
||||
|
||||
static void
|
||||
deactivate (LV2_Handle instance)
|
||||
{
|
||||
activate (instance);
|
||||
}
|
||||
|
||||
static void
|
||||
run (LV2_Handle instance, uint32_t n_samples)
|
||||
{
|
||||
AVapor* self = (AVapor*)instance;
|
||||
|
||||
/* announce latency */
|
||||
*self->p_latency = self->latency;
|
||||
|
||||
if (!self->p_control || !self->p_notify || n_samples == 0) {
|
||||
/* latency measurement callback */
|
||||
return;
|
||||
}
|
||||
|
||||
/* prepare forge buffer and initialize atom-sequence */
|
||||
const uint32_t capacity = self->p_notify->atom.size;
|
||||
lv2_atom_forge_set_buffer (&self->forge, (uint8_t*)self->p_notify, capacity);
|
||||
lv2_atom_forge_sequence_head (&self->forge, &self->frame, 0);
|
||||
|
||||
/* process messages from Host */
|
||||
if (self->p_control) {
|
||||
LV2_Atom_Event* ev = lv2_atom_sequence_begin (&(self->p_control)->body);
|
||||
while (!lv2_atom_sequence_is_end (&(self->p_control)->body, (self->p_control)->atom.size, ev)) {
|
||||
if (ev->body.type == self->uris.atom_Blank || ev->body.type == self->uris.atom_Object) {
|
||||
// TODO
|
||||
// const LV2_Atom_Object* obj = (LV2_Atom_Object*)&ev->body;
|
||||
}
|
||||
ev = lv2_atom_sequence_next (ev);
|
||||
}
|
||||
}
|
||||
|
||||
/* process audio */
|
||||
for (uint32_t chn = 0; chn < 12; ++chn) {
|
||||
memset (self->out_surround[chn], 0, sizeof (float) * n_samples);
|
||||
}
|
||||
|
||||
for (uint32_t chn = 0; chn < 2; ++chn) {
|
||||
memset (self->out_binaural[chn], 0, sizeof (float) * n_samples);
|
||||
}
|
||||
|
||||
for (uint32_t chn = 0; chn < 6; ++chn) {
|
||||
memset (self->out_loudness[chn], 0, sizeof (float) * n_samples);
|
||||
}
|
||||
|
||||
/* close off atom-sequence */
|
||||
lv2_atom_forge_pop (&self->forge, &self->frame);
|
||||
}
|
||||
|
||||
static void
|
||||
cleanup (LV2_Handle instance)
|
||||
{
|
||||
//AVapor* self = (AVapor*)instance;
|
||||
free (instance);
|
||||
}
|
||||
|
||||
static const void*
|
||||
extension_data (const char* uri)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static const LV2_Descriptor descriptor = {
|
||||
"urn:ardour:a-vapor",
|
||||
instantiate,
|
||||
connect_port,
|
||||
activate,
|
||||
run,
|
||||
deactivate,
|
||||
cleanup,
|
||||
extension_data
|
||||
};
|
||||
|
||||
LV2_SYMBOL_EXPORT
|
||||
const LV2_Descriptor*
|
||||
lv2_descriptor (uint32_t index)
|
||||
{
|
||||
switch (index) {
|
||||
case 0:
|
||||
return &descriptor;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
859
libs/plugins/a-vapor.lv2/a-vapor.ttl.in
Normal file
859
libs/plugins/a-vapor.lv2/a-vapor.ttl.in
Normal file
@ -0,0 +1,859 @@
|
||||
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
|
||||
@prefix doap: <http://usefulinc.com/ns/doap#> .
|
||||
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
|
||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
|
||||
@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
|
||||
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||
@prefix rsz: <http://lv2plug.in/ns/ext/resize-port#> .
|
||||
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
|
||||
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
|
||||
|
||||
@prefix avapor: <urn:ardour:a-vapor> .
|
||||
|
||||
<http://ardour.org/credits.html>
|
||||
a foaf:Person;
|
||||
foaf:name "Ardour Community";
|
||||
foaf:homepage <http://ardour.org/> .
|
||||
|
||||
avapor:SevenOneFour
|
||||
a pg:SevenPointOneGroup, pg:OutputGroup;
|
||||
lv2:name "7.1.4";
|
||||
lv2:symbol "surround".
|
||||
|
||||
avapor:FiveOne
|
||||
a pg:FivePointOneGroup, pg:OutputGroup;
|
||||
lv2:name "5.1";
|
||||
lv2:symbol "loudness".
|
||||
|
||||
avapor:Binaural
|
||||
a pg:StereoGroup, pg:OutputGroup;
|
||||
lv2:name "Binaural";
|
||||
lv2:symbol "binaural".
|
||||
|
||||
<urn:ardour:a-vapor>
|
||||
a doap:Project, lv2:Plugin, lv2:SpatialPlugin;
|
||||
|
||||
doap:name "ACE Vapor";
|
||||
rdfs:comment "AtmosPhere Dummy Processor";
|
||||
|
||||
doap:maintainer <http://ardour.org/credits.html>;
|
||||
doap:license <http://usefulinc.com/doap/licenses/gpl>;
|
||||
|
||||
lv2:minorVersion 0;
|
||||
lv2:microVersion 0;
|
||||
lv2:requiredFeature urid:map;
|
||||
lv2:optionalFeature lv2:hardRTCapable;
|
||||
lv2:optionalFeature <http://harrisonconsoles.com/lv2/routing#connectAllOutputs>;
|
||||
|
||||
lv2:port
|
||||
[
|
||||
a atom:AtomPort, lv2:InputPort;
|
||||
atom:bufferType atom:Sequence;
|
||||
lv2:designation lv2:control;
|
||||
lv2:index 0;
|
||||
lv2:symbol "control";
|
||||
lv2:name "Control";
|
||||
rsz:minimumSize 4096;
|
||||
] , [
|
||||
a atom:AtomPort, lv2:OutputPort;
|
||||
atom:bufferType atom:Sequence;
|
||||
lv2:designation lv2:control;
|
||||
lv2:index 1;
|
||||
lv2:symbol "notify";
|
||||
lv2:name "Notify";
|
||||
rsz:minimumSize 4096;
|
||||
] , [
|
||||
a lv2:InputPort, lv2:ControlPort;
|
||||
lv2:index 2;
|
||||
lv2:name "Enable";
|
||||
lv2:symbol "enable";
|
||||
lv2:default 1;
|
||||
lv2:minimum 0;
|
||||
lv2:maximum 1;
|
||||
lv2:portProperty lv2:integer, lv2:toggled;
|
||||
lv2:designation lv2:enabled;
|
||||
] , [
|
||||
a lv2:ControlPort, lv2:OutputPort;
|
||||
lv2:index 3;
|
||||
lv2:symbol "latency";
|
||||
lv2:name "Signal Latency";
|
||||
lv2:minimum 0;
|
||||
lv2:maximum 8192;
|
||||
lv2:portProperty lv2:reportsLatency, lv2:integer;
|
||||
units:unit units:frame;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 4;
|
||||
lv2:symbol "in0";
|
||||
lv2:name "In 0";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 5;
|
||||
lv2:symbol "in1";
|
||||
lv2:name "In 1";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 6;
|
||||
lv2:symbol "in2";
|
||||
lv2:name "In 2";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 7;
|
||||
lv2:symbol "in3";
|
||||
lv2:name "In 3";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 8;
|
||||
lv2:symbol "in4";
|
||||
lv2:name "In 4";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 9;
|
||||
lv2:symbol "in5";
|
||||
lv2:name "In 5";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 10;
|
||||
lv2:symbol "in6";
|
||||
lv2:name "In 6";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 11;
|
||||
lv2:symbol "in7";
|
||||
lv2:name "In 7";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 12;
|
||||
lv2:symbol "in8";
|
||||
lv2:name "In 8";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 13;
|
||||
lv2:symbol "in9";
|
||||
lv2:name "In 9";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 14;
|
||||
lv2:symbol "in10";
|
||||
lv2:name "In 10";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 15;
|
||||
lv2:symbol "in11";
|
||||
lv2:name "In 11";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 16;
|
||||
lv2:symbol "in12";
|
||||
lv2:name "In 12";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 17;
|
||||
lv2:symbol "in13";
|
||||
lv2:name "In 13";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 18;
|
||||
lv2:symbol "in14";
|
||||
lv2:name "In 14";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 19;
|
||||
lv2:symbol "in15";
|
||||
lv2:name "In 15";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 20;
|
||||
lv2:symbol "in16";
|
||||
lv2:name "In 16";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 21;
|
||||
lv2:symbol "in17";
|
||||
lv2:name "In 17";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 22;
|
||||
lv2:symbol "in18";
|
||||
lv2:name "In 18";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 23;
|
||||
lv2:symbol "in19";
|
||||
lv2:name "In 19";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 24;
|
||||
lv2:symbol "in20";
|
||||
lv2:name "In 20";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 25;
|
||||
lv2:symbol "in21";
|
||||
lv2:name "In 21";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 26;
|
||||
lv2:symbol "in22";
|
||||
lv2:name "In 22";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 27;
|
||||
lv2:symbol "in23";
|
||||
lv2:name "In 23";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 28;
|
||||
lv2:symbol "in24";
|
||||
lv2:name "In 24";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 29;
|
||||
lv2:symbol "in25";
|
||||
lv2:name "In 25";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 30;
|
||||
lv2:symbol "in26";
|
||||
lv2:name "In 26";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 31;
|
||||
lv2:symbol "in27";
|
||||
lv2:name "In 27";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 32;
|
||||
lv2:symbol "in28";
|
||||
lv2:name "In 28";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 33;
|
||||
lv2:symbol "in29";
|
||||
lv2:name "In 29";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 34;
|
||||
lv2:symbol "in30";
|
||||
lv2:name "In 30";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 35;
|
||||
lv2:symbol "in31";
|
||||
lv2:name "In 31";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 36;
|
||||
lv2:symbol "in32";
|
||||
lv2:name "In 32";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 37;
|
||||
lv2:symbol "in33";
|
||||
lv2:name "In 33";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 38;
|
||||
lv2:symbol "in34";
|
||||
lv2:name "In 34";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 39;
|
||||
lv2:symbol "in35";
|
||||
lv2:name "In 35";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 40;
|
||||
lv2:symbol "in36";
|
||||
lv2:name "In 36";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 41;
|
||||
lv2:symbol "in37";
|
||||
lv2:name "In 37";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 42;
|
||||
lv2:symbol "in38";
|
||||
lv2:name "In 38";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 43;
|
||||
lv2:symbol "in39";
|
||||
lv2:name "In 39";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 44;
|
||||
lv2:symbol "in40";
|
||||
lv2:name "In 40";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 45;
|
||||
lv2:symbol "in41";
|
||||
lv2:name "In 41";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 46;
|
||||
lv2:symbol "in42";
|
||||
lv2:name "In 42";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 47;
|
||||
lv2:symbol "in43";
|
||||
lv2:name "In 43";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 48;
|
||||
lv2:symbol "in44";
|
||||
lv2:name "In 44";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 49;
|
||||
lv2:symbol "in45";
|
||||
lv2:name "In 45";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 50;
|
||||
lv2:symbol "in46";
|
||||
lv2:name "In 46";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 51;
|
||||
lv2:symbol "in47";
|
||||
lv2:name "In 47";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 52;
|
||||
lv2:symbol "in48";
|
||||
lv2:name "In 48";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 53;
|
||||
lv2:symbol "in49";
|
||||
lv2:name "In 49";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 54;
|
||||
lv2:symbol "in50";
|
||||
lv2:name "In 50";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 55;
|
||||
lv2:symbol "in51";
|
||||
lv2:name "In 51";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 56;
|
||||
lv2:symbol "in52";
|
||||
lv2:name "In 52";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 57;
|
||||
lv2:symbol "in53";
|
||||
lv2:name "In 53";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 58;
|
||||
lv2:symbol "in54";
|
||||
lv2:name "In 54";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 59;
|
||||
lv2:symbol "in55";
|
||||
lv2:name "In 55";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 60;
|
||||
lv2:symbol "in56";
|
||||
lv2:name "In 56";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 61;
|
||||
lv2:symbol "in57";
|
||||
lv2:name "In 57";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 62;
|
||||
lv2:symbol "in58";
|
||||
lv2:name "In 58";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 63;
|
||||
lv2:symbol "in59";
|
||||
lv2:name "In 59";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 64;
|
||||
lv2:symbol "in60";
|
||||
lv2:name "In 60";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 65;
|
||||
lv2:symbol "in61";
|
||||
lv2:name "In 61";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 66;
|
||||
lv2:symbol "in62";
|
||||
lv2:name "In 62";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 67;
|
||||
lv2:symbol "in63";
|
||||
lv2:name "In 63";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 68;
|
||||
lv2:symbol "in64";
|
||||
lv2:name "In 64";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 69;
|
||||
lv2:symbol "in65";
|
||||
lv2:name "In 65";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 70;
|
||||
lv2:symbol "in66";
|
||||
lv2:name "In 66";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 71;
|
||||
lv2:symbol "in67";
|
||||
lv2:name "In 67";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 72;
|
||||
lv2:symbol "in68";
|
||||
lv2:name "In 68";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 73;
|
||||
lv2:symbol "in69";
|
||||
lv2:name "In 69";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 74;
|
||||
lv2:symbol "in70";
|
||||
lv2:name "In 70";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 75;
|
||||
lv2:symbol "in71";
|
||||
lv2:name "In 71";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 76;
|
||||
lv2:symbol "in72";
|
||||
lv2:name "In 72";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 77;
|
||||
lv2:symbol "in73";
|
||||
lv2:name "In 73";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 78;
|
||||
lv2:symbol "in74";
|
||||
lv2:name "In 74";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 79;
|
||||
lv2:symbol "in75";
|
||||
lv2:name "In 75";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 80;
|
||||
lv2:symbol "in76";
|
||||
lv2:name "In 76";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 81;
|
||||
lv2:symbol "in77";
|
||||
lv2:name "In 77";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 82;
|
||||
lv2:symbol "in78";
|
||||
lv2:name "In 78";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 83;
|
||||
lv2:symbol "in79";
|
||||
lv2:name "In 79";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 84;
|
||||
lv2:symbol "in80";
|
||||
lv2:name "In 80";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 85;
|
||||
lv2:symbol "in81";
|
||||
lv2:name "In 81";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 86;
|
||||
lv2:symbol "in82";
|
||||
lv2:name "In 82";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 87;
|
||||
lv2:symbol "in83";
|
||||
lv2:name "In 83";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 88;
|
||||
lv2:symbol "in84";
|
||||
lv2:name "In 84";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 89;
|
||||
lv2:symbol "in85";
|
||||
lv2:name "In 85";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 90;
|
||||
lv2:symbol "in86";
|
||||
lv2:name "In 86";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 91;
|
||||
lv2:symbol "in87";
|
||||
lv2:name "In 87";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 92;
|
||||
lv2:symbol "in88";
|
||||
lv2:name "In 88";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 93;
|
||||
lv2:symbol "in89";
|
||||
lv2:name "In 89";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 94;
|
||||
lv2:symbol "in90";
|
||||
lv2:name "In 90";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 95;
|
||||
lv2:symbol "in91";
|
||||
lv2:name "In 91";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 96;
|
||||
lv2:symbol "in92";
|
||||
lv2:name "In 92";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 97;
|
||||
lv2:symbol "in93";
|
||||
lv2:name "In 93";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 98;
|
||||
lv2:symbol "in94";
|
||||
lv2:name "In 94";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 99;
|
||||
lv2:symbol "in95";
|
||||
lv2:name "In 95";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 100;
|
||||
lv2:symbol "in96";
|
||||
lv2:name "In 96";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 101;
|
||||
lv2:symbol "in97";
|
||||
lv2:name "In 97";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 102;
|
||||
lv2:symbol "in98";
|
||||
lv2:name "In 98";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 103;
|
||||
lv2:symbol "in99";
|
||||
lv2:name "In 99";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 104;
|
||||
lv2:symbol "in100";
|
||||
lv2:name "In 100";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 105;
|
||||
lv2:symbol "in101";
|
||||
lv2:name "In 101";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 106;
|
||||
lv2:symbol "in102";
|
||||
lv2:name "In 102";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 107;
|
||||
lv2:symbol "in103";
|
||||
lv2:name "In 103";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 108;
|
||||
lv2:symbol "in104";
|
||||
lv2:name "In 104";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 109;
|
||||
lv2:symbol "in105";
|
||||
lv2:name "In 105";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 110;
|
||||
lv2:symbol "in106";
|
||||
lv2:name "In 106";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 111;
|
||||
lv2:symbol "in107";
|
||||
lv2:name "In 107";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 112;
|
||||
lv2:symbol "in108";
|
||||
lv2:name "In 108";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 113;
|
||||
lv2:symbol "in109";
|
||||
lv2:name "In 109";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 114;
|
||||
lv2:symbol "in110";
|
||||
lv2:name "In 110";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 115;
|
||||
lv2:symbol "in111";
|
||||
lv2:name "In 111";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 116;
|
||||
lv2:symbol "in112";
|
||||
lv2:name "In 112";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 117;
|
||||
lv2:symbol "in113";
|
||||
lv2:name "In 113";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 118;
|
||||
lv2:symbol "in114";
|
||||
lv2:name "In 114";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 119;
|
||||
lv2:symbol "in115";
|
||||
lv2:name "In 115";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 120;
|
||||
lv2:symbol "in116";
|
||||
lv2:name "In 116";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 121;
|
||||
lv2:symbol "in117";
|
||||
lv2:name "In 117";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 122;
|
||||
lv2:symbol "in118";
|
||||
lv2:name "In 118";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 123;
|
||||
lv2:symbol "in119";
|
||||
lv2:name "In 119";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 124;
|
||||
lv2:symbol "in120";
|
||||
lv2:name "In 120";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 125;
|
||||
lv2:symbol "in121";
|
||||
lv2:name "In 121";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 126;
|
||||
lv2:symbol "in122";
|
||||
lv2:name "In 122";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 127;
|
||||
lv2:symbol "in123";
|
||||
lv2:name "In 123";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 128;
|
||||
lv2:symbol "in124";
|
||||
lv2:name "In 124";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 129;
|
||||
lv2:symbol "in125";
|
||||
lv2:name "In 125";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 130;
|
||||
lv2:symbol "in126";
|
||||
lv2:name "In 126";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:InputPort;
|
||||
lv2:index 131;
|
||||
lv2:symbol "in127";
|
||||
lv2:name "In 127";
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 132;
|
||||
lv2:symbol "surround0";
|
||||
lv2:name "7.1.4 Left";
|
||||
pg:group avapor:SevenOneFour;
|
||||
lv2:designation pg:left;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 133;
|
||||
lv2:symbol "surround1";
|
||||
lv2:name "7.1.4 Right";
|
||||
pg:group avapor:SevenOneFour;
|
||||
lv2:designation pg:right;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 134;
|
||||
lv2:symbol "surround2";
|
||||
lv2:name "7.1.4 Center";
|
||||
pg:group avapor:SevenOneFour;
|
||||
lv2:designation pg:center;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 135;
|
||||
lv2:symbol "surround3";
|
||||
lv2:name "7.1.4 LFE";
|
||||
pg:group avapor:SevenOneFour;
|
||||
lv2:designation pg:lowFrequencyEffects;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 136;
|
||||
lv2:symbol "surround4";
|
||||
lv2:name "7.1.4 Left Side";
|
||||
pg:group avapor:SevenOneFour;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 137;
|
||||
lv2:symbol "surround5";
|
||||
lv2:name "7.1.4 Right Side";
|
||||
pg:group avapor:SevenOneFour;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 138;
|
||||
lv2:symbol "surround6";
|
||||
lv2:name "7.1.4 Left Rear";
|
||||
pg:group avapor:SevenOneFour;
|
||||
lv2:designation pg:rearLeft;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 139;
|
||||
lv2:symbol "surround7";
|
||||
lv2:name "7.1.4 Right Rear";
|
||||
pg:group avapor:SevenOneFour;
|
||||
lv2:designation pg:rearRight;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 140;
|
||||
lv2:symbol "surround8";
|
||||
lv2:name "7.1.4 Left Front High";
|
||||
pg:group avapor:SevenOneFour;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 141;
|
||||
lv2:symbol "surround9";
|
||||
lv2:name "7.1.4 Right Front High";
|
||||
pg:group avapor:SevenOneFour;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 142;
|
||||
lv2:symbol "surround10";
|
||||
lv2:name "7.1.4 Left Rear High";
|
||||
pg:group avapor:SevenOneFour;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 143;
|
||||
lv2:symbol "surround11";
|
||||
lv2:name "7.1.4 Right Rear High";
|
||||
pg:group avapor:SevenOneFour;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 144;
|
||||
lv2:symbol "binaural0";
|
||||
lv2:name "Binaural Left";
|
||||
pg:group avapor:Binaural;
|
||||
lv2:designation pg:left;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 145;
|
||||
lv2:symbol "binaural1";
|
||||
lv2:name "Binaural Right";
|
||||
pg:group avapor:Binaural;
|
||||
lv2:designation pg:right;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 146;
|
||||
lv2:symbol "loudness0";
|
||||
lv2:name "Loudness Left";
|
||||
pg:group avapor:FiveOne;
|
||||
lv2:designation pg:left;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 147;
|
||||
lv2:symbol "loudness1";
|
||||
lv2:name "Loudness Right";
|
||||
pg:group avapor:FiveOne;
|
||||
lv2:designation pg:right;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 148;
|
||||
lv2:symbol "loudness2";
|
||||
lv2:name "Loudness Center";
|
||||
pg:group avapor:FiveOne;
|
||||
lv2:designation pg:center;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 149;
|
||||
lv2:symbol "loudness3";
|
||||
lv2:name "Loudness LFE";
|
||||
pg:group avapor:FiveOne;
|
||||
lv2:designation pg:lowFrequencyEffects;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 150;
|
||||
lv2:symbol "loudness4";
|
||||
lv2:name "Loudness Left Rear";
|
||||
pg:group avapor:FiveOne;
|
||||
lv2:designation pg:rearLeft;
|
||||
], [
|
||||
a lv2:AudioPort, lv2:OutputPort;
|
||||
lv2:index 151;
|
||||
lv2:symbol "loudness5";
|
||||
lv2:name "Loudness Right Rear";
|
||||
pg:group avapor:FiveOne;
|
||||
lv2:designation pg:rearRight;
|
||||
].
|
7
libs/plugins/a-vapor.lv2/manifest.ttl.in
Normal file
7
libs/plugins/a-vapor.lv2/manifest.ttl.in
Normal file
@ -0,0 +1,7 @@
|
||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
|
||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||
|
||||
<urn:ardour:a-vapor>
|
||||
a lv2:Plugin ;
|
||||
lv2:binary <a-vapor@LIB_EXT@> ;
|
||||
rdfs:seeAlso <a-vapor.ttl> .
|
40
libs/plugins/a-vapor.lv2/wscript
Normal file
40
libs/plugins/a-vapor.lv2/wscript
Normal file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python
|
||||
import re
|
||||
import waflib.extras.autowaf as autowaf
|
||||
import waflib.Utils as Utils
|
||||
|
||||
def options(opt):
|
||||
pass
|
||||
|
||||
def configure(conf):
|
||||
autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0', uselib_store='LV2_1_0_0')
|
||||
|
||||
def build(bld):
|
||||
bundle = 'a-vapor.lv2'
|
||||
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
|
||||
module_ext = module_pat[module_pat.rfind('.'):]
|
||||
|
||||
# Build RDF files
|
||||
for i in ['manifest.ttl', 'a-vapor.ttl']:
|
||||
obj = bld(features='subst')
|
||||
obj.source = i + '.in'
|
||||
obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
obj.chmod = Utils.O644
|
||||
obj.LIB_EXT = module_ext
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
source = 'a-vapor.c',
|
||||
name = 'a-vapor',
|
||||
cflags = [ bld.env['compiler_flags_dict']['pic'], bld.env['compiler_flags_dict']['c99'] ],
|
||||
includes = [ '../../ardour' ],
|
||||
target = '../../LV2/%s/a-vapor' % bundle,
|
||||
install_path = '${LV2DIR}/%s' % bundle,
|
||||
uselib = 'CAIRO',
|
||||
use = 'LV2_1_0_0'
|
||||
)
|
||||
obj.env.cshlib_PATTERN = module_pat
|
||||
obj.env.cxxshlib_PATTERN = module_pat
|
||||
|
||||
# vi:set ts=4 sw=4 et:
|
Loading…
Reference in New Issue
Block a user