Start analyser
This commit is contained in:
parent
5c31f6dbf8
commit
a1b9153bdc
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -4,3 +4,9 @@
|
|||||||
[submodule "modules/hilbert-iir"]
|
[submodule "modules/hilbert-iir"]
|
||||||
path = modules/hilbert-iir
|
path = modules/hilbert-iir
|
||||||
url = https://github.com/Signalsmith-Audio/hilbert-iir.git
|
url = https://github.com/Signalsmith-Audio/hilbert-iir.git
|
||||||
|
[submodule "clap/modules/linear"]
|
||||||
|
path = modules/linear
|
||||||
|
url = https://github.com/Signalsmith-Audio/linear.git
|
||||||
|
[submodule "modules/linear"]
|
||||||
|
path = modules/linear
|
||||||
|
url = https://github.com/Signalsmith-Audio/linear.git
|
||||||
|
|||||||
48
analyser.h
Normal file
48
analyser.h
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2022 Signalsmith Audio Ltd. / Geraint Luff
|
||||||
|
Released under the Boost Software License (see LICENSE.txt) */
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "stfx/stfx-library.h"
|
||||||
|
|
||||||
|
namespace signalsmith { namespace basics {
|
||||||
|
|
||||||
|
template<class BaseEffect>
|
||||||
|
struct AnalyserSTFX;
|
||||||
|
|
||||||
|
using AnalyserFloat = stfx::LibraryEffect<float, AnalyserSTFX>;
|
||||||
|
using AnalyserDouble = stfx::LibraryEffect<double, AnalyserSTFX>;
|
||||||
|
|
||||||
|
template<class BaseEffect>
|
||||||
|
struct AnalyserSTFX : public BaseEffect {
|
||||||
|
using typename BaseEffect::Sample;
|
||||||
|
using typename BaseEffect::ParamRange;
|
||||||
|
using typename BaseEffect::ParamStepped;
|
||||||
|
|
||||||
|
template<class Storage>
|
||||||
|
void state(Storage &storage) {
|
||||||
|
storage.info("[Basics] Analyser", "A Bark-scale spectrum analyser");
|
||||||
|
storage.version(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class Config>
|
||||||
|
void configureSTFX(Config &config) {
|
||||||
|
config.outputChannels = config.inputChannels;
|
||||||
|
config.auxInputs = config.auxOutputs = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset() {}
|
||||||
|
|
||||||
|
template<class Io, class Config, class Block>
|
||||||
|
void processSTFX(Io &io, Config &config, Block &block) {
|
||||||
|
for (size_t c = 0; c < config.inputChannels; ++c) {
|
||||||
|
auto &input = io.input[c];
|
||||||
|
auto &output = io.output[c];
|
||||||
|
for (size_t i = 0; i < block.length; ++i) {
|
||||||
|
output[i] = input[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}} // namespace
|
||||||
@ -1,7 +1,9 @@
|
|||||||
cmake_minimum_required(VERSION 3.28)
|
cmake_minimum_required(VERSION 3.28)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||||
|
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
||||||
|
|
||||||
project(plugins VERSION 1.0.0)
|
project(plugins VERSION 1.0.0)
|
||||||
set(NAME basics)
|
|
||||||
|
|
||||||
################ boilerplate config
|
################ boilerplate config
|
||||||
|
|
||||||
@ -57,17 +59,16 @@ FetchContent_MakeAvailable(clap-helpers)
|
|||||||
|
|
||||||
################ The actual plugin(s)
|
################ The actual plugin(s)
|
||||||
|
|
||||||
|
add_subdirectory(../ signalsmith-basics/) # need explicit path since it's not a subdir
|
||||||
|
|
||||||
|
set(NAME basics)
|
||||||
add_library(${NAME}_static STATIC)
|
add_library(${NAME}_static STATIC)
|
||||||
target_link_libraries(${NAME}_static PUBLIC
|
target_link_libraries(${NAME}_static PUBLIC
|
||||||
clap
|
clap
|
||||||
clap-helpers
|
signalsmith-basics
|
||||||
)
|
|
||||||
target_include_directories(${NAME}_static PRIVATE
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../include
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../modules
|
|
||||||
)
|
)
|
||||||
target_sources(${NAME}_static PRIVATE
|
target_sources(${NAME}_static PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/source/${NAME}.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/source/basics.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
make_clapfirst_plugins(
|
make_clapfirst_plugins(
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<REAPER_PROJECT 0.1 "7.20/macOS-arm64" 1747749064
|
<REAPER_PROJECT 0.1 "7.24/OSX64-clang" 1750919608
|
||||||
<NOTES 0 2
|
<NOTES 0 2
|
||||||
>
|
>
|
||||||
RIPPLE 0
|
RIPPLE 0
|
||||||
@ -101,7 +101,7 @@
|
|||||||
BAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAIAAAAAAAAAArAAAAAEAAAAAABAA
|
BAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAIAAAAAAAAAArAAAAAEAAAAAABAA
|
||||||
AQAAAAIAAAABAAAAZGVmYXVsdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMjcuMC4wLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
AQAAAAIAAAABAAAAZGVmYXVsdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMjcuMC4wLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||||
AAAQAAAA
|
AFByb2dyYW0gMQAQAAAA
|
||||||
>
|
>
|
||||||
FLOATPOS 0 0 0 0
|
FLOATPOS 0 0 0 0
|
||||||
FXID {11A0D811-6420-CB40-95D6-F9D12E45C862}
|
FXID {11A0D811-6420-CB40-95D6-F9D12E45C862}
|
||||||
@ -125,54 +125,8 @@
|
|||||||
>
|
>
|
||||||
<PROJBAY
|
<PROJBAY
|
||||||
>
|
>
|
||||||
<TRACK {6D299D8B-E766-F540-80D3-DA6147A064BA}
|
<TRACK {93E699D9-F890-234E-A113-7E0053A85B78}
|
||||||
NAME "Sidechain Distortion"
|
NAME ""
|
||||||
PEAKCOL 16576
|
|
||||||
BEAT -1
|
|
||||||
AUTOMODE 0
|
|
||||||
PANLAWFLAGS 3
|
|
||||||
VOLPAN 0.56085967561807 0 -1 -1 1
|
|
||||||
MUTESOLO 0 0 0
|
|
||||||
IPHASE 0
|
|
||||||
PLAYOFFS 0 1
|
|
||||||
ISBUS 1 1
|
|
||||||
BUSCOMP 0 0 0 0 0
|
|
||||||
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
|
|
||||||
FIXEDLANES 9 0 0 0 0
|
|
||||||
SEL 1
|
|
||||||
REC 0 0 1 0 0 0 0 0
|
|
||||||
VU 2
|
|
||||||
TRACKHEIGHT 0 0 0 0 0 0 0
|
|
||||||
INQ 0 0 0 0.5 100 0 0 100
|
|
||||||
NCHAN 4
|
|
||||||
FX 1
|
|
||||||
TRACKID {6D299D8B-E766-F540-80D3-DA6147A064BA}
|
|
||||||
PERF 0
|
|
||||||
AUXRECV 2 3 1 0 0 0 0 0 2 -1:U 0 -1 ''
|
|
||||||
AUXRECV 3 3 1 0 0 0 0 0 2 -1:U 0 -1 ''
|
|
||||||
MIDIOUT -1
|
|
||||||
MAINSEND 1 0
|
|
||||||
<FXCHAIN
|
|
||||||
WNDRECT 184 282 862 150
|
|
||||||
SHOW 1
|
|
||||||
LASTSEL 0
|
|
||||||
DOCKED 0
|
|
||||||
BYPASS 0 0 0
|
|
||||||
<CLAP "CLAP: Sidechain Distortion (example) (Signalsmith Audio)" uk.co.signalsmith.dev.sidechain-distortion ""
|
|
||||||
CFG 0 0 0 ""
|
|
||||||
<OUT_PINS
|
|
||||||
>
|
|
||||||
<STATE
|
|
||||||
v2d2ZXJzaW9uAGVzdGF0Zb9ndmVyc2lvbgBnbGltaXREYr9ldmFsdWX7wDrCUmkT/3z/Z3RvbmVrSHq/ZXZhbHVl+0AVARbxhJ0S////
|
|
||||||
>
|
|
||||||
>
|
|
||||||
FLOATPOS 0 0 0 0
|
|
||||||
FXID {1F02CE63-5B2C-DD40-B8DA-6796E8E4CD70}
|
|
||||||
WAK 0 0
|
|
||||||
>
|
|
||||||
>
|
|
||||||
<TRACK {D098F2BD-6569-F946-9F66-5C0548DFE5B1}
|
|
||||||
NAME "Welcome Pad"
|
|
||||||
PEAKCOL 16576
|
PEAKCOL 16576
|
||||||
BEAT -1
|
BEAT -1
|
||||||
AUTOMODE 0
|
AUTOMODE 0
|
||||||
@ -181,180 +135,25 @@
|
|||||||
MUTESOLO 0 0 0
|
MUTESOLO 0 0 0
|
||||||
IPHASE 0
|
IPHASE 0
|
||||||
PLAYOFFS 0 1
|
PLAYOFFS 0 1
|
||||||
ISBUS 2 -1
|
|
||||||
BUSCOMP 0 0 0 0 0
|
|
||||||
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
|
|
||||||
FIXEDLANES 9 0 0 0 0
|
|
||||||
SEL 0
|
|
||||||
REC 0 0 1 0 0 0 0 0
|
|
||||||
VU 2
|
|
||||||
TRACKHEIGHT 0 0 0 0 0 0 0
|
|
||||||
INQ 0 0 0 0.5 100 0 0 100
|
|
||||||
NCHAN 2
|
|
||||||
FX 1
|
|
||||||
TRACKID {D098F2BD-6569-F946-9F66-5C0548DFE5B1}
|
|
||||||
PERF 0
|
|
||||||
MIDIOUT -1
|
|
||||||
MAINSEND 1 0
|
|
||||||
<ITEM
|
|
||||||
POSITION 0
|
|
||||||
SNAPOFFS 0
|
|
||||||
LENGTH 12.5
|
|
||||||
LOOP 0
|
|
||||||
ALLTAKES 0
|
|
||||||
FADEIN 1 0 0 1 0 0 0
|
|
||||||
FADEOUT 1 0 0 1 0 0 0
|
|
||||||
MUTE 0 0
|
|
||||||
SEL 0
|
|
||||||
IGUID {96281C1B-0CD8-7A4C-BC7B-83E34DB38B24}
|
|
||||||
IID 4
|
|
||||||
NAME "Welcome Pad - stem"
|
|
||||||
VOLPAN 1 0 1 -1
|
|
||||||
SOFFS 0
|
|
||||||
PLAYRATE 1 1 0 -1 0 0.0025
|
|
||||||
CHANMODE 0
|
|
||||||
GUID {D46D1639-7253-D040-86A3-47C6E3A0FBCB}
|
|
||||||
<SOURCE WAVE
|
|
||||||
FILE "Media/sidechain-distortion_stems_Welcome Pad.wav"
|
|
||||||
>
|
|
||||||
>
|
|
||||||
>
|
|
||||||
<TRACK {F4D9FA0E-571B-E24E-B158-4F619AA188D8}
|
|
||||||
NAME Filtered
|
|
||||||
PEAKCOL 16576
|
|
||||||
BEAT -1
|
|
||||||
AUTOMODE 0
|
|
||||||
PANLAWFLAGS 3
|
|
||||||
VOLPAN 0 0 -1 -1 1
|
|
||||||
MUTESOLO 0 0 0
|
|
||||||
IPHASE 0
|
|
||||||
PLAYOFFS 0 1
|
|
||||||
ISBUS 0 0
|
ISBUS 0 0
|
||||||
BUSCOMP 0 0 0 0 0
|
BUSCOMP 0 0 0 0 0
|
||||||
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
|
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
|
||||||
FIXEDLANES 9 0 0 0 0
|
FIXEDLANES 9 0 0 0 0
|
||||||
SEL 0
|
SEL 1
|
||||||
REC 0 0 1 0 0 0 0 0
|
REC 0 5088 1 7 0 0 0 0
|
||||||
VU 2
|
VU 2
|
||||||
TRACKHEIGHT 0 0 0 0 0 0 0
|
TRACKHEIGHT 0 0 0 0 0 0 0
|
||||||
INQ 0 0 0 0.5 100 0 0 100
|
INQ 0 0 0 0.5 100 0 0 100
|
||||||
NCHAN 2
|
NCHAN 2
|
||||||
FX 1
|
FX 1
|
||||||
TRACKID {F4D9FA0E-571B-E24E-B158-4F619AA188D8}
|
TRACKID {93E699D9-F890-234E-A113-7E0053A85B78}
|
||||||
PERF 0
|
PERF 0
|
||||||
MIDIOUT -1
|
MIDIOUT -1
|
||||||
MAINSEND 1 0
|
MAINSEND 1 0
|
||||||
<FXCHAIN
|
<FXCHAIN
|
||||||
WNDRECT 847 421 815 444
|
|
||||||
SHOW 2
|
|
||||||
LASTSEL 1
|
|
||||||
DOCKED 0
|
|
||||||
BYPASS 0 0 0
|
|
||||||
<JS "Geraint's JSFX/Utility/Panalysis/Panalysis.jsfx" ""
|
|
||||||
1 0 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
>
|
|
||||||
<JS_SER
|
|
||||||
zczMPQAAAAAAAAAA
|
|
||||||
>
|
|
||||||
FLOATPOS 0 0 0 0
|
|
||||||
FXID {6A5C4484-079E-F34D-8A18-CB456B094205}
|
|
||||||
WAK 0 0
|
|
||||||
BYPASS 0 0 0
|
|
||||||
<VST "VST: ReaEQ (Cockos)" reaeq.vst.dylib 0 "" 1919247729<56535472656571726561657100000000> ""
|
|
||||||
cWVlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAagAAAAEAAAAAABAA
|
|
||||||
IQAAAAIAAAAEAAAAAQAAAMS7LCro8zZAAAAAAAAA8D9GtvP91Hj1PwEDAAAAAQAAAHj7zCB2ucJAdouc1Fqk9D8QWDm0yHbyPwEBAAAAAQAAAAAAAAAAAPA/AAAAAEAC
|
|
||||||
AABrAQAAAgAAAA==
|
|
||||||
AAAQAAAA
|
|
||||||
>
|
|
||||||
FLOATPOS 0 0 0 0
|
|
||||||
FXID {5262179C-F519-424F-8C34-4765E9AE04E7}
|
|
||||||
WAK 0 0
|
|
||||||
>
|
|
||||||
<ITEM
|
|
||||||
POSITION 0
|
|
||||||
SNAPOFFS 0
|
|
||||||
LENGTH 12.5
|
|
||||||
LOOP 0
|
|
||||||
ALLTAKES 0
|
|
||||||
FADEIN 1 0 0 1 0 0 0
|
|
||||||
FADEOUT 1 0 0 1 0 0 0
|
|
||||||
MUTE 0 0
|
|
||||||
SEL 1
|
|
||||||
IGUID {102A7029-390F-704B-AE82-A4E1AA02CD03}
|
|
||||||
IID 8
|
|
||||||
NAME "Welcome Pad - stem"
|
|
||||||
VOLPAN 1 0 1 -1
|
|
||||||
SOFFS 0
|
|
||||||
PLAYRATE 1 1 0 -1 0 0.0025
|
|
||||||
CHANMODE 0
|
|
||||||
GUID {6D40E4DA-D9A6-5149-915A-965CEB60DCAE}
|
|
||||||
<SOURCE WAVE
|
|
||||||
FILE "Media/sidechain-distortion_stems_Welcome Pad.wav"
|
|
||||||
>
|
|
||||||
>
|
|
||||||
>
|
|
||||||
<TRACK {F52BCBA5-0B54-6B40-8D30-4E09891F36EC}
|
|
||||||
NAME Drums
|
|
||||||
PEAKCOL 16576
|
|
||||||
BEAT -1
|
|
||||||
AUTOMODE 0
|
|
||||||
PANLAWFLAGS 3
|
|
||||||
VOLPAN 0 0 -1 -1 1
|
|
||||||
MUTESOLO 1 0 0
|
|
||||||
IPHASE 0
|
|
||||||
PLAYOFFS 0 1
|
|
||||||
ISBUS 0 0
|
|
||||||
BUSCOMP 0 0 0 0 0
|
|
||||||
SHOWINMIX 1 0.6667 0.5 1 0.5 0 0 0
|
|
||||||
FIXEDLANES 9 0 0 0 0
|
|
||||||
SEL 0
|
|
||||||
REC 0 0 1 0 0 0 0 0
|
|
||||||
VU 2
|
|
||||||
TRACKHEIGHT 0 0 0 0 0 0 0
|
|
||||||
INQ 0 0 0 0.5 100 0 0 100
|
|
||||||
NCHAN 2
|
|
||||||
FX 1
|
|
||||||
TRACKID {F52BCBA5-0B54-6B40-8D30-4E09891F36EC}
|
|
||||||
PERF 0
|
|
||||||
MIDIOUT -1
|
|
||||||
MAINSEND 1 0
|
|
||||||
<FXCHAIN
|
|
||||||
WNDRECT 900 170 815 444
|
|
||||||
SHOW 0
|
SHOW 0
|
||||||
LASTSEL 0
|
LASTSEL 0
|
||||||
DOCKED 0
|
DOCKED 0
|
||||||
BYPASS 0 0 0
|
|
||||||
<VST "VST: ReaEQ (Cockos)" reaeq.vst.dylib 0 "" 1919247729<56535472656571726561657100000000> ""
|
|
||||||
cWVlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAagAAAAEAAAAAABAA
|
|
||||||
IQAAAAIAAAADAAAAAQAAAJ0Q6aODFJFAAAAAAAAA8D+amZmZmZnpPwEEAAAAAQAAADNAfmGLZFZANFOMBg1H7z9/arx0kxjsPwEBAAAAAQAAAModDNkGk/o/AAAAAEAC
|
|
||||||
AABrAQAAAgAAAA==
|
|
||||||
AAAQAAAA
|
|
||||||
>
|
|
||||||
FLOATPOS 0 0 0 0
|
|
||||||
FXID {4CCB9CFD-8185-AE45-8B5D-ADB8ED3C4344}
|
|
||||||
WAK 0 0
|
|
||||||
>
|
|
||||||
<ITEM
|
|
||||||
POSITION 0
|
|
||||||
SNAPOFFS 0
|
|
||||||
LENGTH 12.5
|
|
||||||
LOOP 1
|
|
||||||
ALLTAKES 0
|
|
||||||
FADEIN 1 0 0 1 0 0 0
|
|
||||||
FADEOUT 1 0 0 1 0 0 0
|
|
||||||
MUTE 0 0
|
|
||||||
SEL 0
|
|
||||||
IGUID {AEF812EA-814E-294B-8BFA-79DB6C6C36A2}
|
|
||||||
IID 1
|
|
||||||
NAME Drums.wav
|
|
||||||
VOLPAN 1 0 1 -1
|
|
||||||
SOFFS 0
|
|
||||||
PLAYRATE 1 1 0 -1 0 0.0025
|
|
||||||
CHANMODE 0
|
|
||||||
GUID {DE8AA9D2-A674-E747-9071-19071A8A8C7E}
|
|
||||||
<SOURCE WAVE
|
|
||||||
FILE "Media/Drums.wav"
|
|
||||||
>
|
|
||||||
>
|
>
|
||||||
>
|
>
|
||||||
>
|
>
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
# define LOG_EXPR(expr) std::cout << #expr " = " << (expr) << std::endl;
|
# define LOG_EXPR(expr) std::cout << #expr " = " << (expr) << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "signalsmith-basics/analyser.h"
|
||||||
#include "signalsmith-basics/crunch.h"
|
#include "signalsmith-basics/crunch.h"
|
||||||
#include "signalsmith-basics/limiter.h"
|
#include "signalsmith-basics/limiter.h"
|
||||||
#include "signalsmith-basics/reverb.h"
|
#include "signalsmith-basics/reverb.h"
|
||||||
@ -52,6 +53,21 @@ bool clap_init(const char *path) {
|
|||||||
CLAP_PLUGIN_FEATURE_AUDIO_EFFECT,
|
CLAP_PLUGIN_FEATURE_AUDIO_EFFECT,
|
||||||
CLAP_PLUGIN_FEATURE_REVERB,
|
CLAP_PLUGIN_FEATURE_REVERB,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
plugins.add<signalsmith::basics::AnalyserSTFX>({
|
||||||
|
.clap_version = CLAP_VERSION,
|
||||||
|
.id = "uk.co.signalsmith.basics.analyser",
|
||||||
|
.name = "[Basics] Analyser",
|
||||||
|
.vendor = "Signalsmith Audio",
|
||||||
|
.url = "",
|
||||||
|
.manual_url = "",
|
||||||
|
.support_url = "",
|
||||||
|
.version = "1.0.0"
|
||||||
|
}, {
|
||||||
|
CLAP_PLUGIN_FEATURE_AUDIO_EFFECT,
|
||||||
|
CLAP_PLUGIN_FEATURE_DISTORTION,
|
||||||
|
});
|
||||||
|
|
||||||
return plugins.clap_init(path);
|
return plugins.clap_init(path);
|
||||||
}
|
}
|
||||||
void clap_deinit() {
|
void clap_deinit() {
|
||||||
|
|||||||
@ -1,8 +1,34 @@
|
|||||||
#include "clap/entry.h"
|
#include "clap/entry.h"
|
||||||
|
/*
|
||||||
|
#include "../../stfx/clap/stfx-clap.h"
|
||||||
|
|
||||||
extern bool clap_init(const char *);
|
stfx::clap::Plugins stfxPlugins;
|
||||||
|
extern void addAnalyser();
|
||||||
|
extern void addCrunch();
|
||||||
|
extern void addLimiter();
|
||||||
|
extern void addReverb();
|
||||||
|
|
||||||
|
bool clap_init(const char *path) {
|
||||||
|
static bool added = false;
|
||||||
|
if (!added) {
|
||||||
|
addAnalyser();
|
||||||
|
addCrunch();
|
||||||
|
addLimiter();
|
||||||
|
addReverb();
|
||||||
|
}
|
||||||
|
return added = stfxPlugins.clap_init(path);
|
||||||
|
}
|
||||||
|
void clap_deinit() {
|
||||||
|
stfxPlugins.clap_deinit();
|
||||||
|
}
|
||||||
|
const void * clap_get_factory(const char *id) {
|
||||||
|
return stfxPlugins.clap_get_factory(id);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern bool clap_init(const char *path);
|
||||||
extern void clap_deinit();
|
extern void clap_deinit();
|
||||||
extern const void * clap_get_factory(const char *);
|
extern const void * clap_get_factory(const char *id);
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
const CLAP_EXPORT clap_plugin_entry clap_entry{
|
const CLAP_EXPORT clap_plugin_entry clap_entry{
|
||||||
|
|||||||
1
include/signalsmith-basics/analyser.h
Normal file
1
include/signalsmith-basics/analyser.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../../analyser.h"
|
||||||
1
modules/linear
Submodule
1
modules/linear
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 157b448e390663e78d845ca9f8dad65140f686ad
|
||||||
@ -20,7 +20,7 @@ struct Plugin;
|
|||||||
// A helper to make a CLAP plugin factory from STFX templates
|
// A helper to make a CLAP plugin factory from STFX templates
|
||||||
struct Plugins {
|
struct Plugins {
|
||||||
template<template<class> class EffectSTFX, class ...Args>
|
template<template<class> class EffectSTFX, class ...Args>
|
||||||
void add(clap_plugin_descriptor desc, std::initializer_list<const char *> features, Args ...args) {
|
size_t add(clap_plugin_descriptor desc, std::initializer_list<const char *> features, Args ...args) {
|
||||||
size_t index = featureLists.size();
|
size_t index = featureLists.size();
|
||||||
|
|
||||||
featureLists.emplace_back(features);
|
featureLists.emplace_back(features);
|
||||||
@ -31,6 +31,7 @@ struct Plugins {
|
|||||||
creates.push_back([=](const clap_host *host){
|
creates.push_back([=](const clap_host *host){
|
||||||
return new Plugin<EffectSTFX>(*this, &descriptors[index], host, args...);
|
return new Plugin<EffectSTFX>(*this, &descriptors[index], host, args...);
|
||||||
});
|
});
|
||||||
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool clap_init(const char *path) {
|
bool clap_init(const char *path) {
|
||||||
@ -651,3 +652,5 @@ struct Plugin : public clap_plugin {
|
|||||||
};
|
};
|
||||||
|
|
||||||
}} // namespace
|
}} // namespace
|
||||||
|
|
||||||
|
extern stfx::clap::Plugins stfxPlugins;
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "./storage.h"
|
#include "./storage.h"
|
||||||
|
#include "../stfx-library.h" // for the ...ParamIgnore classes
|
||||||
|
|
||||||
namespace stfx { namespace storage {
|
namespace stfx { namespace storage {
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <iostream> // we log to stderr if our queue gets full
|
||||||
|
|
||||||
namespace stfx { namespace web {
|
namespace stfx { namespace web {
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user