commit 8c8d9876e3666a817d624804df566b1d6b121055
parent cab6d60d31f85d8529fbf7465cb5f4edb073160a
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Tue, 15 Nov 2016 20:01:47 -0500
Merge remote-tracking branch 'github/master'
Diffstat:
6 files changed, 42 insertions(+), 24 deletions(-)
diff --git a/src/Effects/Distorsion.cpp b/src/Effects/Distorsion.cpp
@@ -50,6 +50,25 @@ rtosc::Ports Distorsion::ports = {
rEffParTF(Pstereo, 9, rShort("stereo"), "Stereo"),
rEffParTF(Pprefiltering, 10, rShort("p.filt"),
"Filtering before/after non-linearity"),
+ {"waveform:", 0, 0, [](const char *, rtosc::RtData &d)
+ {
+ Distorsion &dd = *(Distorsion*)d.obj;
+ float buffer[128];
+ rtosc_arg_t args[128];
+ char arg_str[128+1] = {0};
+
+ for(int i=0; i<128; ++i)
+ buffer[i] = 2*(i/128.0)-1;
+
+ waveShapeSmps(sizeof(buffer), buffer, dd.Ptype + 1, dd.Pdrive);
+
+ for(int i=0; i<128; ++i) {
+ arg_str[i] = 'f';
+ args[i].f = buffer[i];
+ }
+
+ d.replyArray(d.loc, arg_str, args);
+ }},
};
#undef rBegin
#undef rEnd
diff --git a/src/Plugin/ZynAddSubFX/CMakeLists.txt b/src/Plugin/ZynAddSubFX/CMakeLists.txt
@@ -115,6 +115,9 @@ target_link_libraries(ZynAddSubFX_lv2 zynaddsubfx_core ${OS_LIBRARIES} ${LIBLO_L
${PLATFORM_LIBRARIES})
target_link_libraries(ZynAddSubFX_vst zynaddsubfx_core ${OS_LIBRARIES} ${LIBLO_LIBRARIES}
${PLATFORM_LIBRARIES})
+if(ZestGui)
+ target_link_libraries(ZynAddSubFX_lv2_ui X11 GL)
+endif()
install(TARGETS ZynAddSubFX_lv2 LIBRARY DESTINATION ${PluginLibDir}/lv2/ZynAddSubFX.lv2/)
install(TARGETS ZynAddSubFX_vst LIBRARY DESTINATION ${PluginLibDir}/vst/)
diff --git a/src/Tests/SubNoteTest.h b/src/Tests/SubNoteTest.h
@@ -33,6 +33,7 @@ class SubNoteTest:public CxxTest::TestSuite
{
public:
+ SUBnoteParameters *pars;
SUBnote *note;
Master *master;
AbsTime *time;
@@ -77,7 +78,7 @@ class SubNoteTest:public CxxTest::TestSuite
SynthParams pars{memory, *controller, *synth, *time, freq, 120, 0, testnote, false};
note = new SUBnote(defaultPreset, pars);
- delete defaultPreset;
+ this->pars = defaultPreset;
}
void tearDown() {
@@ -87,6 +88,7 @@ class SubNoteTest:public CxxTest::TestSuite
delete [] outR;
delete time;
delete synth;
+ delete pars;
}
void testDefaults() {
diff --git a/src/UI/NSM.C b/src/UI/NSM.C
@@ -22,7 +22,7 @@
#include "../Nio/Nio.h"
-#ifndef NO_UI
+#if defined(FLTK_UI) || defined(NTK_UI)
#include <FL/Fl.H>
#endif
#include <cstdio>
@@ -33,7 +33,7 @@
#include <stdlib.h>
extern int Pexitprogram;
-#ifndef NO_UI
+#if defined(FLTK_UI) || defined(NTK_UI)
#include "MasterUI.h"
extern MasterUI *ui;
#endif
@@ -41,10 +41,11 @@ extern MasterUI *ui;
extern NSM_Client *nsm;
extern char *instance_name;
-NSM_Client::NSM_Client()
+NSM_Client::NSM_Client(MiddleWare *m)
+ :project_filename(0),
+ display_name(0),
+ middleware(m)
{
- project_filename = 0;
- display_name = 0;
}
int command_open(const char *name,
@@ -59,9 +60,7 @@ NSM_Client::command_save(char **out_msg)
(void) out_msg;
int r = ERR_OK;
-#ifndef NO_UI
- ui->do_save_master(project_filename);
-#endif
+ middleware->transmitMsg("/save_xmz", "s", project_filename);
return r;
}
@@ -92,18 +91,10 @@ NSM_Client::command_open(const char *name,
int r = ERR_OK;
-#ifndef NO_UI
- if(0 == stat(new_filename, &st)) {
- if(ui->do_load_master_unconditional(new_filename, display_name) < 0) {
- *out_msg = strdup("Failed to load for unknown reason");
- r = ERR_GENERAL;
-
- return r;
- }
- }
+ if(0 == stat(new_filename, &st))
+ middleware->transmitMsg("/load_xmz", "s", new_filename);
else
- ui->do_new_master_unconditional();
-#endif
+ middleware->transmitMsg("/reset_master", "");
if(project_filename)
free(project_filename);
@@ -118,7 +109,7 @@ NSM_Client::command_open(const char *name,
return r;
}
-#ifndef NO_UI
+#if defined(FLTK_UI) || defined(NTK_UI)
static void save_callback(Fl_Widget *, void *v)
{
MasterUI *ui = static_cast<MasterUI*>(v);
@@ -129,7 +120,7 @@ static void save_callback(Fl_Widget *, void *v)
void
NSM_Client::command_active(bool active)
{
-#ifndef NO_UI
+#if defined(FLTK_UI) || defined(NTK_UI)
if(active) {
Fl_Menu_Item *m;
//TODO see if there is a cleaner way of doing this without voiding
diff --git a/src/UI/NSM.H b/src/UI/NSM.H
@@ -21,6 +21,7 @@
#if USE_NSM
#include "NSM/Client.H"
+#include "../Misc/MiddleWare.h"
class NSM_Client:public NSM::Client
{
@@ -28,8 +29,9 @@ class NSM_Client:public NSM::Client
char *project_filename;
char *display_name;
+ MiddleWare *middleware;
- NSM_Client();
+ NSM_Client(MiddleWare *m);
~NSM_Client() { }
protected:
diff --git a/src/main.cpp b/src/main.cpp
@@ -609,7 +609,7 @@ int wmidi = -1;
char *nsm_url = getenv("NSM_URL");
if(nsm_url) {
- nsm = new NSM_Client;
+ nsm = new NSM_Client(middleware);
if(!nsm->init(nsm_url))
nsm->announce("ZynAddSubFX", ":switch:", argv[0]);
@@ -637,6 +637,7 @@ int wmidi = -1;
const char *addr = middleware->getServerAddress();
if(fork() == 0) {
execlp("zyn-fusion", "zyn-fusion", addr, "--builtin", "--no-hotload", 0);
+ execlp("./zyn-fusion", "zyn-fusion", addr, "--builtin", "--no-hotload", 0);
err(1,"Failed to launch Zyn-Fusion");
}