NTK + New Zyn Theme Support

Official support for: zynaddsubfx.sourceforge.net
RELATED
PRODUCTS

Post

Hi from the LMMS team :)

Image

We'll be updating to the latest version of Zyn for our next major release (Likely called "1.5") . We bundled Zyn with our software currently.

Since this new Zyn version offers new features and fixes, we are considering changing the theme.

What types of themes are supported? We ask because we noticed the propaganda on sourceforge (pictured below) which drastically changes the way Zyn looks!

We released a major update to our DAW (1.0.0) in March and have gained some significant traction in terms of platform support, updates and bug fixes. Zyn happens to be a very popular synth in the software and we really think it shines in LMMS!

Image

Here is a video of a new track we ship with called "Spoken" by "Unfa" which makes heavy use of the Zyn synth (running on OSX!)
http://www.youtube.com/watch?v=uWPfIIaAHQg
Last edited by tresf on Thu May 15, 2014 9:46 pm, edited 1 time in total.

Post

Hello LMMS team, current maintainer here.

So the skinning was added in at the same time as the optional NTK support was added (a replacement for fltk developed for the non toolset (see non.tuxfamily.org)).
The skin has since been changed to something less busy looking:

Image

This is all controlled by a few pixmaps and somewhat through the system colors which are exposed to ntk. These are all stored in the pixmaps folder within the git repo.

It's great that you're making good use out of zyn. Most of my recent work has been in the bowels of the code getting everything in place for proper undo support, midi mapping, and RT safe operations for virtually everything that the UI can touch, though there might be some other fixes which might be of interest since the 2.4.3 release, mainly small bug/regression fixes.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

Terrific. Let me forward this information along! That looks great.

-Tres

Post

Opened a bug report here so we can track this enhancement. Thank you again, this is terrific!

-Tres

Post

Ok, I've had some time to look at the Non project.

I have a few questions...

I see some repository links to git.tuxfamily.org and also some to github. Which ones are recommended?

Does the project provide basic build instructions for ZASF + NTK?

I'll take a few educated guesses in the mean time and post back any progress. :)

Post

So I've followed the ntk build instructions to what I believe to be successful.

In addition to my build environment (Ubuntu 12.04), I also had to install these:

Code: Select all

sudo apt-get install libcairo2-dev libjpeg-dev libmxml-dev
And then compiled and installed ntk

Code: Select all

cd
git clone git://git.tuxfamily.org/gitroot/non/fltk.git ntk
cd ntk
./waf configure
./waf
./waf install --destdir=$HOME/ntk
But no matter what I do with the CMakeLists.txt in Zyn, I can't get it to see the ntk install. NTK has headers all over the place as well as the "include" that gets created when installing so I'm quite perplexed as to what CMake options are needed. Any advise?

Code: Select all

-- checking for module 'ntk'
--   package 'ntk' not found
-- checking for module 'ntk_images'
--   package 'ntk_images' not found

Post

The cmake system assumes two things when searching for ntk.

pkg-config can find ntk and ntk_images
on my system these are in /usr/local/lib/pkgconfig
you can add search paths via the PKG_CONFIG_PATH if you install things to a non-standard path

ntk-fluid should be in the path, so if you want to install things to a non-standard path, use the PATH environmental variable.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

Ok, thanks. That got me further.

So I've compiled using your recommendations and now it says NTK IS found, but CMake tells me its going to build it with the FLTK GUI.

I did try adding NTK to my path however I'm not sure if it should be NTK lib, NTK bin or both (I've tried both BTW).

Also, unrelated, but is the QT support working? I see that in the CMakeLists.txt.

Back on topic... I'm sure I'm missing a step somewhere to get NTK working...
Here's the steps I'm using (minus the export PATH until I can get that working)
https://github.com/tresf/lmms/wiki/NTK-ZynAddSubFX
Image

Post

First you are failing to checkout the git submodule assuming you want the instruments instead of replacing them with empty folders.

Secondly for ntk you can either use ccmake or for a more automated build adding -DGuiModule=ntk
to cmake's arguments should be sufficient.

Per qt, there have been some experimental work in the past and there is some that is going on. None of these are complete by any means and I'm not heavily involved with these efforts at the current time.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

Thank you kindly. That worked well for both forcing NTK as well as satisfying the instruments directory.

I seem to be stuck at ADnoteUI.cxx. I don't seem to receive any error prior to receiving this message.

Code: Select all

[ 42%] Building CXX object src/UI/CMakeFiles/zynaddsubfx_gui.dir/ADnoteUI.cxx.o
cd /home/tres/zynaddsubfx/build/src/UI && /usr/bin/c++   -DVERSION=\"2.4.3\" -DHAVE_SCHEDULER=1 -DALSA=1 -DJACK=1 -DOSS=1 -DPORTAUDIO=1 -DASM_F2I_YES -DNTK_GUI -DPIXMAP_PATH=\"/home/tres/zynaddsubfx/target/share/zynaddsubfx/pixmaps/\" -DSOURCE_DIR=\"/home/tres/zynaddsubfx/src/UI\" -O3 -msse -msse2 -mfpmath=sse -ffast-math -fomit-frame-pointer -I/usr/local/include/ntk -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/home/tres/zynaddsubfx/src/UI -I/home/tres/zynaddsubfx/build/src/UI -I/home/tres/ntk/usr/local/lib -I/home/tres/ntk/usr/local/bin    -g -Wall -Wextra -fPIC -o CMakeFiles/zynaddsubfx_gui.dir/ADnoteUI.cxx.o -c /home/tres/zynaddsubfx/build/src/UI/ADnoteUI.cxx
c++: error: /home/tres/zynaddsubfx/build/src/UI/ADnoteUI.cxx: No such file or directory
c++: fatal error: no input files
compilation terminated.
make[2]: *** [src/UI/CMakeFiles/zynaddsubfx_gui.dir/ADnoteUI.cxx.o] Error 4
make[2]: Leaving directory `/home/tres/zynaddsubfx/build'
make[1]: *** [src/UI/CMakeFiles/zynaddsubfx_gui.dir/all] Error 2
make[1]: Leaving directory `/home/tres/zynaddsubfx/build'
make: *** [all] Error 2
Last edited by tresf on Thu May 15, 2014 3:57 am, edited 2 times in total.

Post

is ntk-fluid in the PATH ?
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

Yes, it is, but ntk-fluid won't launch from there. Seems to be missing a link to the shared object.

So instead I told ntk to install to /usr/local and ntk-fluid successfully launches now, but Zyn still errors on the same step (rm CMakeCache.txt, make clean, force NTK GUI).

On a side note, I looked at NTK's pkg-config ".pc" files in ${target}/usr/local/lib seems to use "/usr/local/lib" rather than ${target}/usr/local/lib which I believe puts the wrong "-I" when Zyn is building. Unfortunately, hard coding my custom build directory into these files didn't correct the error either.

Of course I still stand the chance of having a broken configuration after messing with so many items. I'm building on Ubuntu 12.04 x64.

Here's the updated error with NTK installed in /usr/local

Code: Select all

[ 41%] Generating ADnoteUI.cxx
/usr/bin/cmake -E cmake_progress_report /home/tres/zynaddsubfx/build/CMakeFiles 43
[ 42%] Building CXX object src/UI/CMakeFiles/zynaddsubfx_gui.dir/ADnoteUI.cxx.o
cd /home/tres/zynaddsubfx/build/src/UI && /usr/bin/c++   -DVERSION=\"2.4.3\" -DHAVE_SCHEDULER=1 -DALSA=1 -DJACK=1 -DOSS=1 -DPORTAUDIO=1 -DASM_F2I_YES -DNTK_GUI -DPIXMAP_PATH=\"/home/tres/zynaddsubfx/target/share/zynaddsubfx/pixmaps/\" -DSOURCE_DIR=\"/home/tres/zynaddsubfx/src/UI\" -O3 -msse -msse2 -mfpmath=sse -ffast-math -fomit-frame-pointer -I/usr/local/include/ntk -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/home/tres/zynaddsubfx/src/UI -I/home/tres/zynaddsubfx/build/src/UI    -g -Wall -Wextra -fPIC -o CMakeFiles/zynaddsubfx_gui.dir/ADnoteUI.cxx.o -c /home/tres/zynaddsubfx/build/src/UI/ADnoteUI.cxx
c++: error: /home/tres/zynaddsubfx/build/src/UI/ADnoteUI.cxx: No such file or directory
c++: fatal error: no input files
compilation terminated.
make[2]: *** [src/UI/CMakeFiles/zynaddsubfx_gui.dir/ADnoteUI.cxx.o] Error 4
make[2]: Leaving directory `/home/tres/zynaddsubfx/build'
make[1]: *** [src/UI/CMakeFiles/zynaddsubfx_gui.dir/all] Error 2
make[1]: Leaving directory `/home/tres/zynaddsubfx/build'
make: *** [all] Error 2

Post

I just tested it on a machine that I had yet to install ntk on.
You'll want to use --prefix instead of --destdir with ntk's waf system.
Assuming you specify the right PKG_CONFIG_PATH and PATH it works perfectly fine.
Your last post indicates that it is unable to run ntk-fluid .
That is indicative of an incorrect PATH.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

Thanks. Yes, path is fine from what I can see. (Especially in the tests that do a sudo ./waf install). ntk-fluid launches just fine (even from a new terminal, or ALT+F2).

I spent the last two hours working on this to no avail. Once NTK is enabled for GUI, it always errors there.

May I ask what OS you use to build? Can I assume you've taken similar steps?

P.S. From my experience --prefix still doesn't fix the incorrect pkgconfig files. Also, without --destdir, it doesn't install properly to a custom location for me.

-Tres

Post

Slackware.
Looking at what you're doing, you're putting the --prefix at the wrong step.
That should be a configure time option.

Rather than having a many day back and forth, if assuming you have a bit of time, just log onto ##zynaddsubfx on freenode.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post Reply

Return to “ZynAddSubFX”