Coder Social home page Coder Social logo

lmms-zyn-fusion-test's Introduction

LMMS-zyn-fusion test

See the CHANGELOG for current changes

What's this?

This is a test repository for testing LMMS together with the new zyn-fusion, using a new plugin technique. It's not official.

What does work, what doesn't?

What should work:

  • load and save files
  • preview XMZ files from 'My Presets' (left sidebar in LMMS)
  • drag-drop XMZ files from 'My Presets' over songs
  • drag-drop the zyn instrument on tracks from old zyn to convert them
  • drag-drop zyn widgets on automation patterns (you must keep the F1 key pressed, in contrast to LMMS, where it's the control key)
  • exporting songs, e.g. to WAV

What still needs to be done:

  • LMMS can crash if project loading time takes more than 10 seconds
  • make removing connections more easy
  • connect zyn widgets to LMMS controllers (not only automation patterns)
  • reviews for
    • the spa concept in general
    • the LMMS implementation
    • the zyn implementation

Requirements

  • Linux or similar (installer only)
  • C++11 compiler
  • usual zyn-fusion/lmms requirements
    • especially perl's "List::MoreUtils" (On Arch Linux: "perl-list-moreutils")
  • a stable internet connection
  • at least 1.5 GB of disk space

Precautions

  • As with every experimental audio projects, start with low volume to avoid damaging your ears/speakers
  • The saved files can currently not be loaded with LMMS' master and maybe they never will

How to get it running?

There are two ways. In both cases, you should not need any admin privileges. Your system root and your LMMS config will not be touched.

Automized install by making fresh clones

This is suited if you have enough bandwidth and disk space and don't plan to work on the sources.

Starting in this (the README's) directory, do

./build.sh
./lmms

Note: During the download, there is usually no progress displayed. Submodules like LMMS or CALF can take 10 minutes even with a good connection. Please be patient.

If build.sh fails, you can fix it in the script and usually re-run the script. Please make a PR if you have fixed something.

Install by re-using your current git-worktrees

If you have worktrees of e.g. LMMS or zyn and want to re-use them, this repo is purely informative. Don't use the submodules here. Instead, you should check out the following (use git clone -b <branchname>):

Make sure to run git submodule update --init --recursive in all four repos (not in this repo). The --depth option can speed things up if you don't need the submodule histories, but it may fail.

Then, go into this repo (the main repo) and type git submodule status. Go to each of the four repos and check out the corresponding commits.

Compile + Install

Please keep the order as below

  • spa
    • Follow README instructions for a normal install
    • Write down the PKG config file's directory for later. It's found in your install folder, subdirectories lib64/pkgconfig or lib/pkgconfig. The file contains a spa.c file. Example: ~/cprogs/spa/install/lib64/pkgconfig
  • mruby-zest-build
    • Compile like in the README
    • Run make pack
  • zynaddsubfx
    • Do a build like in the README, but prepend PKG_CONFIG_PATH=$PKG_CONFIG_PATH:<spa pkg config directory, see above> to the cmake command and add the following CMake variables:
      • -DZynFusionDir=<path to where fusion is>/package
      • -DGuiModule=zest
    • At that stage, starting zyn (./src/zynaddsfubx from the build dir) should already work and start up zyn-fusion.
    • Write down the path of the newly built spa plugin, which is usually ending on src/Output/libzynaddsubfx_spa.so
  • LMMS
    • Do a build like in the README, but prepend PKG_CONFIG_PATH=$PKG_CONFIG_PATH:<spa pkg config directory, see above> to the cmake command. An install should not be required.
    • To start LMMS, prepend SPA_PATH=<path to where zyn's spa lib is> before the lmms binary.
    • At that stage, LMMS should be startable, and on the plugins menu you should see a zyn plugin with the new zest logo

Reporting issues

  • Issues from LMMS, zyn and fusion can go to the issue tracker of this project, if they are plugin related.
  • Issues considering the spa library itself (e.g. design issues) should go preferably to the spa issue tracker or to the spa mirror's issue tracker.

lmms-zyn-fusion-test's People

Contributors

johanneslorenz avatar

Stargazers

 avatar  avatar Victor avatar Andreas Ecker avatar

Watchers

James Cloos avatar  avatar Andreas Ecker avatar  avatar

lmms-zyn-fusion-test's Issues

When will thie be merged into LMMS

I've been hunting for ways to use ZynFusion with automation ideally in LMMS.
I cloned this repository and I was extremely impressed that it works very well.
Will this ever be merged back into the mainline LMMS?
I think it would be a pity to abandon this.
Alternatively how easy would it be to merge this back into the latest stable LMMS 1.2.2.

Failed to get a commit

Hi, I tryed out the build script but it stopped at some point. Here are the last lines:

Submodul-Pfad: 'mruby-zest-build/deps/mruby-complex': '4f57a1ef9f968e9d5eef53667c7960a2e98c9750' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/mruby-dir-glob': '334c040a2e2c4c2689f8c3440168011f64d57ada' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/mruby-glew': '6849202f885516b381406e799dcdb430065e19cf' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/mruby-glfw3': '0eeee012fd4bbd6544dd34f17ce2b476ad71d86b' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/mruby-io': '1c4428880b2f0f0fcd81ea2debc5f4459a7ed53c' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/mruby-nanovg': 'd7d4e1ce434131babb5fd6026201011f5b0b50ea' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/mruby-regexp-pcre': 'cd13fb15fd6b813fc6c9bc2f17db20257f71bb0c' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/mruby-set': '68334311ac7386eef84f3034a256e7135a87625d' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/mruby-sleep': '263d70351a4f75a875f2a35ab9a9128d1ef5da90' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/nanovg': 'b83cf926525e7cea8d2483da2a75852b8c7b6d28' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/pugl': 'd87062625ed652df9455bd6f60ea89c53515c43a' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/deps/rtosc': '70307782622c668a325992f6887f354ca30d5e14' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/mruby': 'e5b61d34f65cabfbe88f3f1709a1f9cff86585de' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/src/mruby-qml-parse': 'e07aeacf71ce300ca1735ecd74409d5ca52b3080' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/src/mruby-qml-spawn': '77f782643c78a9cfe48e49f027d9978fb5e27d77' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/src/mruby-zest': 'ee93a06054e302a7046cf181e15f0dd342abd102' ausgecheckt
Submodul-Pfad: 'mruby-zest-build/src/osc-bridge': '40e510f94d380534a95c4b07e570481c9f559ab5' ausgecheckt
error: Der Server lehnt Anfrage nach nicht angebotenem Objekt 6ea397b91a029dc5320987b8f9e743c07b1509ad ab.
"fetch" in Submodul-Pfad 'spa' ausgeführt, aber 6ea397b91a029dc5320987b8f9e743c07b1509ad nicht
enthalten. Direktes Anfordern dieses Commits ist fehlgeschlagen.

My OS: Manjaro Linux

Command executed: ./build.sh gcc 8

Cannot compile successfully using automatic install and cannot manage manual installation (ZynAddSubFX)

Hi. i just want to be able to use LMMS with Zyn-Fusion natively, but I am not experienced with Linux and computers in general so i've encountered some issues with the compilation. Can anyone help me?

Running ./build.sh clang gives me:

Install the project...
-- Install configuration: "Release"
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/lib/cmake/SPA/spa-config.cmake
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/lib/pkgconfig/spa.pc
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/include/rtosc/pseudo-arg-val-math.h
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/include/rtosc/pseudo-rtosc.h
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/include/ringbuffer/ringbuffer.h
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/include/spa/spa_fwd.h
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/include/spa/spa.h
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/include/spa/audio_fwd.h
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/include/spa/audio.h
-- Up-to-date: /home/snail/lmms-zyn-fusion-test/spa/install-clang/lib/libspa.a
~/lmms-zyn-fusion-test/spa ~/lmms-zyn-fusion-test
Error: Could not find pkg config file in spa installation
Please fix the error and retry

and running ./build.sh gcc:

/tmp/ccZQk3Sz.ltrans0.ltrans.o: In function `spa::ringbuffer<char>::write_with_length(char const*, unsigned long)':
<artificial>:(.text+0x1b46): undefined reference to `ringbuffer_base::write_space() const'
/tmp/ccZQk3Sz.ltrans0.ltrans.o: In function `spa::audio::osc_ringbuffer::write(char const*, char const*, __va_list_tag*)':
<artificial>:(.text+0x1bf3): undefined reference to `pseudo_rtosc::rtosc_vmessage(char*, unsigned long, char const*, char const*, __va_list_tag*)'
/tmp/ccZQk3Sz.ltrans1.ltrans.o: In function `unsigned long ringbuffer_t<char>::write_func<ringbuffer_t<char>::std_copy>(ringbuffer_t<char>::std_copy&, unsigned long)':
<artificial>:(.text+0x296): undefined reference to `ringbuffer_base::init_variables_for_write(unsigned long, unsigned long&, unsigned long&, unsigned long&, unsigned long&)'
/tmp/ccZQk3Sz.ltrans1.ltrans.o: In function `ringbuffer_base::ringbuffer_base(unsigned long)':
<artificial>:(.text+0x469): undefined reference to `ringbuffer_common_t::ringbuffer_common_t(unsigned long)'
/tmp/ccZQk3Sz.ltrans1.ltrans.o: In function `ringbuffer_t<char>::ringbuffer_t(unsigned long)':
<artificial>:(.text+0x51e): undefined reference to `ringbuffer_base::init_atomic_variables()'
/tmp/ccZQk3Sz.ltrans1.ltrans.o: In function `ringbuffer_t<char>::~ringbuffer_t() [clone .lto_priv.30]':
<artificial>:(.text+0xcee): undefined reference to `ringbuffer_base::munlock(void const*, unsigned long)'
/tmp/ccZQk3Sz.ltrans2.ltrans.o: In function `spa::visitor::visitor()':
<artificial>:(.text+0x4b): undefined reference to `vtable for spa::visitor'
/tmp/ccZQk3Sz.ltrans3.ltrans.o: In function `host_visitor::~host_visitor() [clone .lto_priv.20]':
<artificial>:(.text+0x3a9): undefined reference to `spa::audio::visitor::~visitor()'
<artificial>:(.text+0x3be): undefined reference to `spa::visitor::~visitor()'
/tmp/ccZQk3Sz.ltrans3.ltrans.o:(.rodata+0x168): undefined reference to `typeinfo for spa::audio::visitor'
/tmp/ccZQk3Sz.ltrans3.ltrans.o:(.rodata+0x3f0): undefined reference to `typeinfo for spa::audio::visitor'
collect2: error: ld returned 1 exit status
examples / CMakeFiles / osc-host.dir / build.make: 95: error executing recipe for target "examples / osc-host"
make [2]: *** [examples / osc-host] Error 1
CMakeFiles / Makefile2: 215: error executing recipe for target "examples / CMakeFiles / osc-host.dir / all"
make [1]: *** [examples / CMakeFiles / osc-host.dir / all] Error 2
Makefile: 160: error executing recipe for target "all"
make: *** [all] Error 2
"$ git submodule status
 695c6a3a484ac14bda90c4f5108058183920a0f7 mruby-zest-build (v3.0.2-65-g695c6a3)
 61d0e199d1e0583442fd44fa90945f670cc0396c new-lmms (v1.1.90-1326-g61d0e19)
 c27bc1025d8e6ac1337d89a3a125a7b6168e614b spa (v0.0.2)
 8f9e52951a2b538eb6a2558f1d33b21c2e5afa21 zynaddsubfx (3.0.3-80-g8f9e529)

When i try the second method Compile + Install (where i need to compile each component individually):
I compiled zynaddsubfx but it wouldn't run because it couldn't find Zyn-Fusion or something.
Maybe I didn't properly specify -DZynFusionDir=<path to where fusion is>/package but i'm not sure where that is. I just put the path to mruby-zest-build because it had /package folder after i compiled it.

Automation fails in zyn-fusion ("Unknown special key 57344")

Reported in #1 by @Bleuzen:

Pressing F1 and left mouse button on a control, as soon as moving the mouse Zyn GUI crashes / closes. Console out:

z.zest_dnd_drop = (nil)
z.zest_dnd_pick = (nil)
z.zest_script = (nil)
z.zest_get_remote_url = (nil)
[INFO:Zyn] setup_pugl()
[INFO:Zyn] zest_tick()
[INFO:Zyn] zest_open()
[INFO:Zyn] Found Assets at /opt/zyn-fusion/
[INFO:Zyn] Starting Zyn-Fusion
[INFO:Zyn] Thanks for supporting the developement of this project
[INFO:Zyn] Creating MRuby Interpreter...
[debug] parsing json file
[debug] json parsed succesfully
Time for a fast load is 1.143ms load(0.004) class(0) spawn(1.139)...
making reverse graph[1089]<0.618 ms>
[INFO:Zyn] zest_setup()
[DEBUG:Zyn] setting up animation fps
[INFO] Unknown special key(57344)...

It looks like the zest app uses an old libzest, rather than the one this project delivers.
Does your LD_LIBRARY_PATH maybe contain directories where other versions of zest are (echo $LD_LIBRARY_PATH)? If yes, please don't change it, this is an interesting test which I could fix.

For the future, a compatibility check of the app and its library would be good to prevent mismatches.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.