zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 6447bafaae3cb1043513421eef552152decccb31
parent cdec549cd7caffe5305358bf64a43a5f4728759d
Author: Johannes Lorenz <johannes89@ist-einmalig.de>
Date:   Sun, 12 Nov 2017 01:27:51 +0100

Merge branch 'master' into default_values

Diffstat:
MCMakeLists.txt | 2+-
MHISTORY.txt | 10++++++++++
Msrc/CMakeLists.txt | 5+++++
Msrc/Misc/MiddleWare.cpp | 17++++++++++++++---
Msrc/Params/PADnoteParameters.cpp | 6++++++
Msrc/Tests/guitar-adnote.xmz | 2+-
Mzynaddsubfx-alsa.desktop | 1+
Mzynaddsubfx-jack.desktop | 1+
Mzynaddsubfx-oss.desktop | 1+
9 files changed, 40 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -3,7 +3,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") project(zynaddsubfx) set(VERSION_MAJOR "3") set(VERSION_MINOR "0") -set(VERSION_REVISION "2") +set(VERSION_REVISION "3") #Set data directory, if any if(DEFINED ZYN_DATADIR) diff --git a/HISTORY.txt b/HISTORY.txt @@ -1,3 +1,13 @@ +3.0.3 (Mid October 2017) + - Add bank search to FLTK/NTK GUI + - Add parallel padsynth sample generation + - Remove X11 dependency for non-GUI builds + - Fix crash when changing modulation types in running notes + - Fix NullEngine usleep() on windows + - Fix loading filter parameters with older xml + - Fix effect saving when updating with zyn-fusion interface + - Fix minor bugs + 3.0.2 (21 July 2017) - Upgrade MIDI learn system to include host automations and macro learned controls diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt @@ -147,6 +147,11 @@ elseif (OssEnable) "Default Output module: [null, alsa, oss, jack, portaudio]") SET (DefaultInput oss CACHE STRING "Default Input module: [null, alsa, oss, jack]") +elseif (PaEnable) + SET (DefaultOutput pa CACHE STRING + "Default Output module: [null, alsa, oss, jack, portaudio]") + SET (DefaultInput null CACHE STRING + "Default Input module: [null, alsa, oss, jack]") else() SET (DefaultOutput null CACHE STRING "Default Output module: [null, alsa, oss, jack, portaudio]") diff --git a/src/Misc/MiddleWare.cpp b/src/Misc/MiddleWare.cpp @@ -60,7 +60,6 @@ namespace zyn { using std::string; -using std::mutex; int Pexitprogram = 0; /****************************************************************************** @@ -209,8 +208,18 @@ void preparePadSynth(string path, PADnoteParameters *p, rtosc::RtData &d) assert(!path.empty()); path += "sample"; - mutex rtdata_mutex; - unsigned num = p->sampleGenerator([&rtdata_mutex,&path,&d] +#ifdef WIN32 + unsigned num = p->sampleGenerator([&path,&d] + (unsigned N, PADnoteParameters::Sample &s) + { + //printf("sending info to '%s'\n", + // (path+to_s(N)).c_str()); + d.chain((path+to_s(N)).c_str(), "ifb", + s.size, s.basefreq, sizeof(float*), &s.smp); + }, []{return false;}, 1); +#else + std::mutex rtdata_mutex; + unsigned num = p->sampleGenerator([&rtdata_mutex, &path,&d] (unsigned N, PADnoteParameters::Sample &s) { //printf("sending info to '%s'\n", @@ -220,6 +229,8 @@ void preparePadSynth(string path, PADnoteParameters *p, rtosc::RtData &d) s.size, s.basefreq, sizeof(float*), &s.smp); rtdata_mutex.unlock(); }, []{return false;}); +#endif + //clear out unused samples for(unsigned i = num; i < PAD_MAX_SAMPLES; ++i) { d.chain((path+to_s(i)).c_str(), "ifb", diff --git a/src/Params/PADnoteParameters.cpp b/src/Params/PADnoteParameters.cpp @@ -965,6 +965,11 @@ int PADnoteParameters::sampleGenerator(PADnoteParameters::callback cb, delete[] spectrum; }; +#ifdef WIN32 + //Temporarily disable multi-threading here as C++11 threads are broken on + //mingw cross compilation + thread_cb(1,0); +#else unsigned nthreads = std::min(max_threads, std::thread::hardware_concurrency()); std::vector<std::thread> threads(nthreads); @@ -972,6 +977,7 @@ int PADnoteParameters::sampleGenerator(PADnoteParameters::callback cb, threads[i] = std::thread(thread_cb, nthreads, i); for(unsigned i = 0; i < nthreads; ++i) threads[i].join(); +#endif return samplemax; } diff --git a/src/Tests/guitar-adnote.xmz b/src/Tests/guitar-adnote.xmz @@ -2,7 +2,7 @@ <?xml version="1.0f" encoding="UTF-8"?> <!DOCTYPE ZynAddSubFX-data> <ZynAddSubFX-data version-major="3" version-minor="0" -version-revision="2" ZynAddSubFX-author="Nasca Octavian Paul"> +version-revision="3" ZynAddSubFX-author="Nasca Octavian Paul"> <INFORMATION> <par_bool name="PADsynth_used" value="yes" /> </INFORMATION> diff --git a/zynaddsubfx-alsa.desktop b/zynaddsubfx-alsa.desktop @@ -2,6 +2,7 @@ Name=ZynAddSubFX - Alsa Comment=A powerful realtime software synthesizer Comment[fr]=Un synthétiseur logiciel temps-réel puissant +Comment[pl]=Funkcjonalny syntezator wirtualny czasu rzeczywistego Keywords=audio;sound;alsa;midi;synth;synthesizer; Exec=zynaddsubfx -I alsa -O alsa Icon=zynaddsubfx diff --git a/zynaddsubfx-jack.desktop b/zynaddsubfx-jack.desktop @@ -2,6 +2,7 @@ Name=ZynAddSubFX - Jack Comment=A powerful realtime software synthesizer Comment[fr]=Un synthétiseur logiciel temps-réel puissant +Comment[pl]=Funkcjonalny syntezator wirtualny czasu rzeczywistego Keywords=audio;sound;jack;midi;synth;synthesizer; Exec=zynaddsubfx -I jack -O jack Icon=zynaddsubfx diff --git a/zynaddsubfx-oss.desktop b/zynaddsubfx-oss.desktop @@ -2,6 +2,7 @@ Name=ZynAddSubFX - OSS Comment=A powerful realtime software synthesizer Comment[fr]=Un synthétiseur logiciel temps-réel puissant +Comment[pl]=Funkcjonalny syntezator wirtualny czasu rzeczywistego Keywords=audio;sound;alsa;midi;synth;synthesizer; Exec=zynaddsubfx -I OSS -O OSS Icon=zynaddsubfx