Quantcast

New plugin for newer zyn-versions

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

New plugin for newer zyn-versions

Johannes Lorenz-2
Hello,


I'd like to write a plugin which will start a remote zynaddsubfx. However,
this zynaddsubfx will not be compiled into the LMMS sources, but instead just
run zynaddsubfx from your "$PATH" variable and connect to LMMS via the OSC
protocol.

The reason for this is that I try to program new features in zyn, but can not
make songs with them, since the zyn version is fix in LMMS. (And no, I don't
want to go the LV2 way and install Carla. A direct plugin will be much more
handy).

Connecting a plugin via inter-process communication (IPC) can be done in
multiple ways. My idea was to, by now, restrict the plugin to jack
connections: If the user/distribution did not compile with jack support, the
plugin is not available. Otherwise, when instantiating the new plugin, a jack
server will be started if it has not already been (autostart works the same
way in zynaddsubfx), and then lmms will be connected to the zynaddsubfx
plugin.

A downside of using jack is that if I'll give the song to someone else who has
no jack support on his PC, that person can not play the song (it's a bit like
the issue of artists uploading windows-VST songs to the sharing platform). On
the other hand, jack should have the best latency behaviour and is imo the
cleanest approach (it's *the* audio connection toolkit for Linux).

The alternative is to use something else than jack, like raw UDP or shared
memory (the latter is being used by the current implementation of remote
zynaddsubfx).

What should I do?


Thanks + regards,
Johannes


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
LMMS-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/lmms-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New plugin for newer zyn-versions

Tres Finocchiaro
Johannes,

Here's a nice writeup by Lukas-W concerning this problem... 

 
this zynaddsubfx will not be compiled into the LMMS sources, but instead just run zynaddsubfx from your "$PATH" variable and connect to LMMS via the OSC protocol.

Arguably, that's how we should be doing it today.  Our 3rd party plugin code is mostly a snapshot of the upstream sources and in most cases, we could (and should) directly replace the libraries and/or executable binary files with prebuilt binaries without issue.  We should only care about plugins at packaging time and have a continuous integration script test the bundling of these for the various OSs.

My understanding is that Zyn and VSTs are special cases as they must run in a separate process, so LMMS uses some IPC (with some cross-platform logic) to attach to the process.  This means that changes to Zyn can require a lot of changes to the wrappers we've written.  Here's an example:


An important note of the above pull request is that when we include the upstream code changes in our pull request, it makes for a very ugly code review!
 
it's a bit like the issue of artists uploading windows-VST songs to the sharing platform

Perhaps although I know of many Linux users which have installed Wine for VST support.  I don't know of any Windows users which have installed JACK.


In regards to using OSC messaging... LMMS was ready to adopt it internally at one point ... Wallacoloo attempted this https://github.com/LMMS/lmms/pull/2311.  Mark McCurry, the author of Zyn was very receptive to this.

Also related:




 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
LMMS-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/lmms-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New plugin for newer zyn-versions

Johannes Lorenz-2
> Here's a nice writeup by Lukas-W concerning this problem...
>
> https://github.com/LMMS/lmms/issues/296

he mentions it, but unfortunately he says that this won't be done. Anyways, I
currently require such a plugin.

> Arguably, that's how we should be doing it today.  Our 3rd party plugin
> code is mostly a snapshot of the upstream sources and in most cases, we
> could (and should) directly replace the libraries and/or executable binary
> files with prebuilt binaries without issue.  We should only care about
> plugins at packaging time and have a continuous integration script test the
> bundling of these for the various OSs.

I'd agree here.

> My understanding is that Zyn and VSTs are special cases as they must run in
> a separate process, so LMMS uses some IPC (with some cross-platform logic)
> to attach to the process.  This means that changes to Zyn can require a lot
> of changes to the wrappers we've written.  Here's an example:
>
> https://github.com/LMMS/lmms/pull/1991
>
> An important note of the above pull request is that when we include the
> upstream code changes in our pull request, it makes for a very ugly code
> review!

Not sure what you mean by code review. Anyways, the problem with zyn seems
mostly that the LMMS team has always been cutting support for newer
compilers...

Btw, the mailing list does not seem very active... Does this even read any of
the devs? Should such things better be discussed as feature-requests on
github?



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
LMMS-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/lmms-devel
Loading...