Non-Mixer and LV2 plugins

All your LV2 and LADSPA goodness and more.

Moderators: khz, MattKingUSA

User avatar
falkTX
Establlshed Member
Posts: 5917
Joined: Sat Jan 09, 2010 3:04 pm

Non-Mixer and LV2 plugins

Postby falkTX » Sun Nov 16, 2014 3:05 am

I recently saw this article:
http://libremusicproduction.com/tutoria ... on-manager
and though how nice it would be if Non-Mixer supported LV2 plugins (currently just LADSPA).

So I added LV2 support to non-mixer, currently waiting for upstream feedback. :D

The current code is at https://github.com/falkTX/non/.
Users of the kxstudio repos can just update "non-mixer", LV2 support is already there.

Some details:
There is no support for custom UIs, and not sure if it ever will.
LV2 already has a bunch of meta-data for good host bult-in UIs and more can be added.
Upstream never showed interest on custom UIs anyway.

Synths won't work of course, since Non-Mixer is effects only.

Supported features (besides lv2core):
- BufSize (bounded and fixed block length)
- Options
- Parameters (sample-rate only)
- URI Map
- URID Map
- URID Unmap

No atom/state/worker yet since that is usually only needed if using custom UIs.


Screenshot: https://i.imgur.com/jpZ8yzo.png

User avatar
DoosC
Establlshed Member
Posts: 263
Joined: Tue Apr 20, 2010 8:28 pm
Location: Hobscheid, Grand Duchy of Luxembourg
Contact:

Re: Non-Mixer and LV2 plugins

Postby DoosC » Sun Nov 16, 2014 1:07 pm

That is just awesome !
LADSPA-only was the main reason I stayed away from non-mixer but I was secretly wondering it would happen one day (because it seems very to be a very convenient mixer), and now it (almost) has.
I understand the aim for simplicity that drives the decision to not implement custom UI's. However I wonder how plugins like Klangflater can work in this context, having a simple versatile IR convolver with no custom UI but with still a simple way to browse IR file seems like a common but challenging use case.
Anyway, I hope this nice initiative will make its way upstream !
| DoosC |

Leatuspenguin
Establlshed Member
Posts: 16
Joined: Mon Aug 11, 2014 9:00 am
Location: Ireland
Contact:

Re: Non-Mixer and LV2 plugins

Postby Leatuspenguin » Sun Nov 16, 2014 7:03 pm

This is great! I hope it gets accepted upstream. I have added a note of this in the original tutorial. Thanks for the work! Non Mixer is a really useful program. LV2 support makes it even more useful :)

User avatar
sysrqer
Establlshed Member
Posts: 893
Joined: Thu Nov 14, 2013 11:47 pm
Contact:

Re: Non-Mixer and LV2 plugins

Postby sysrqer » Sun Nov 16, 2014 7:38 pm

This is fantastic, a wonderful addition to it.

ssj71
Establlshed Member
Posts: 998
Joined: Tue Sep 25, 2012 6:36 pm

Re: Non-Mixer and LV2 plugins

Postby ssj71 » Mon Nov 17, 2014 6:58 pm

Awesome!

It will be interesting to see if male will accept this. In any conversations I had with him he was fairly anti-LV2 for several reasons. Most significantly I think was he felt just the overhead of adding LV2 support went completely against his lean and light coding design goals. Perhaps he meant mostly the UI side, but IIUC even the ttl parsing stuff he thought was too bulky for the non suite.

Time will tell.
Perhaps this will fulfill our desires to add a mixer mode to Carla, (though without synths and GUIs I don't think it can completely).
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!

ssj71
Establlshed Member
Posts: 998
Joined: Tue Sep 25, 2012 6:36 pm

Re: Non-Mixer and LV2 plugins

Postby ssj71 » Mon Nov 17, 2014 7:01 pm

DoosC wrote:having a simple versatile IR convolver with no custom UI but with still a simple way to browse IR file seems like a common but challenging use case.

Seems like there really should be a file chooser extension to LV2. That is one of the major arguments for custom UIs. The port can just be a path atom and the host just provides a button to select the file or directory.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!

User avatar
falkTX
Establlshed Member
Posts: 5917
Joined: Sat Jan 09, 2010 3:04 pm

Re: Non-Mixer and LV2 plugins

Postby falkTX » Mon Nov 17, 2014 8:32 pm

ssj71 wrote:
DoosC wrote:having a simple versatile IR convolver with no custom UI but with still a simple way to browse IR file seems like a common but challenging use case.

Seems like there really should be a file chooser extension to LV2. That is one of the major arguments for custom UIs. The port can just be a path atom and the host just provides a button to select the file or directory.

And there is indeed just that: http://lv2plug.in/ns/ext/patch/

eg-sampler uses this to set its sample file.
convo.lv2 uses this to set the IR sample.

implementing this requires atom ports + state + worker, so it's not as easy as the rest of what I've done so far.
but doable, yes.

ssj71
Establlshed Member
Posts: 998
Joined: Tue Sep 25, 2012 6:36 pm

Re: Non-Mixer and LV2 plugins

Postby ssj71 » Mon Nov 17, 2014 10:49 pm

that is a little hairy. I wonder how hard it would be to untangle IR's dsp and implement this for a gui-less version.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!

User avatar
falkTX
Establlshed Member
Posts: 5917
Joined: Sat Jan 09, 2010 3:04 pm

Re: Non-Mixer and LV2 plugins

Postby falkTX » Tue Nov 18, 2014 1:25 am

ssj71 wrote:that is a little hairy. I wonder how hard it would be to untangle IR's dsp and implement this for a gui-less version.

someone already did that, kinda.
the convo.lv2 plugin provides IR-style reverb and doesn't need an UI to load files.
https://github.com/x42/convoLV2

User avatar
studio32
Establlshed Member
Posts: 2370
Joined: Mon Apr 07, 2008 5:09 pm

Re: Non-Mixer and LV2 plugins

Postby studio32 » Tue Nov 18, 2014 12:42 pm

Interesting interesting. Iirc male was against putting work in something which, in his views, was not worth the effort. I don't think he will reject the patch if it's clean and doesn't give him a lot of new trouble, code- and supportwise.

Now it would be nice if you could also automate LV2 synths in the NON workflow.

Thanks falktx

ssj71
Establlshed Member
Posts: 998
Joined: Tue Sep 25, 2012 6:36 pm

Re: Non-Mixer and LV2 plugins

Postby ssj71 » Tue Nov 18, 2014 7:10 pm

falkTX wrote:someone already did that, kinda.

Cool. Still alpha and not as feature complete as IR, but seems the hard part is done. I think it would be relatively simple to add the other features.

I'm a little confused though. Is the only missing link to host-generated file choosers the hosts need to support this extension?

studio32 wrote:Now it would be nice if you could also automate LV2 synths in the NON workflow.

Seems like thats where non-sequencer would come into play but I don't know if male intended it for such. Though maybe it makes more sense for the timeline to do automation. Kind of a blurry line.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!

User avatar
falkTX
Establlshed Member
Posts: 5917
Joined: Sat Jan 09, 2010 3:04 pm

Re: Non-Mixer and LV2 plugins

Postby falkTX » Tue Nov 18, 2014 11:47 pm

ssj71 wrote:
falkTX wrote:someone already did that, kinda.

Cool. Still alpha and not as feature complete as IR, but seems the hard part is done. I think it would be relatively simple to add the other features.

I'm a little confused though. Is the only missing link to host-generated file choosers the hosts need to support this extension?

The host reads the plugin ttl file and finds that its atom port accepts filenames (via patch:Message, of types described in patch:writable).

Code: Select all

clv2:impulse
        a lv2:Parameter ;
        rdfs:label "impulse" ;
        rdfs:range atom:Path .

clv2:Mono
        a lv2:Plugin ;
        patch:writable clv2:impulse ;
...
        lv2:port [
                a atom:AtomPort , lv2:InputPort ;
                atom:bufferType atom:Sequence ;
                atom:supports patch:Message ;
...


With this the host knows it can generate a file-browser (atom:Path) for type "impulse".
The current spec doesn't specify what this "impulse" type is, nor its file extensions yet.

When the user selects a file via host, it sends a patch:Message to the plugin in its process callback.
The plugin will use "worker" to load the file on non-rt thread.

studio32 wrote:Now it would be nice if you could also automate LV2 synths in the NON workflow.

It should be possible to add midi-strips to non-mixer, but I'm not sure that's a design male will be happy with.

tatch
Establlshed Member
Posts: 661
Joined: Fri Nov 16, 2012 3:18 pm

Re: Non-Mixer and LV2 plugins

Postby tatch » Wed Nov 19, 2014 7:33 am

ssj71 wrote:
falkTX wrote:someone already did that, kinda.

Cool. Still alpha and not as feature complete as IR, but seems the hard part is done. I think it would be relatively simple to add the other features.

I'm a little confused though. Is the only missing link to host-generated file choosers the hosts need to support this extension?

studio32 wrote:Now it would be nice if you could also automate LV2 synths in the NON workflow.

Seems like thats where non-sequencer would come into play but I don't know if male intended it for such. Though maybe it makes more sense for the timeline to do automation. Kind of a blurry line.


non-seq only sequences midi notes. automation is useful in both pattern-based contexts (non-seq) and on a timeline, but I sort of disagree with the way non-seq and non-timeline are separated to begin with. pattern-based sequencing makes sense but from my experience non-sequencer (even disregarding from its impossible ui) as a loop-based sequencer makes it difficult to detail patterns and create variations of a pattern, and it's particularly difficult to envision an entire song when it is abstracted to patterns that aren't really graphically illustrated. It's also desirable to sequence audio. It makes sense to use non-seq as the sequencer itself and say petri-foo as a sampler but when you want to sequence more intricately (eg multiple samples with variable lengths) this can quickly become cumbersome.

...I guess what I'm really getting at is that I don't like non-sequencer (nothing new here).


It should be possible to add midi-strips to non-mixer, but I'm not sure that's a design male will be happy with.

I don't want this either. We just need a wholesome jackmidi sequencer/envelope editor that is both pattern- and arrangement-friendly.

User avatar
studio32
Establlshed Member
Posts: 2370
Joined: Mon Apr 07, 2008 5:09 pm

Re: Non-Mixer and LV2 plugins

Postby studio32 » Fri Nov 21, 2014 9:29 pm

Male was thinking a lot about the combination of lineair (together with non-timeline) and pattern based sequencing, and a useful combination between the two. Afaik he didn't came up with a conclusion/solution yet. I'm sure he will be back when he figured that one out. :)

tatch
Establlshed Member
Posts: 661
Joined: Fri Nov 16, 2012 3:18 pm

Re: Non-Mixer and LV2 plugins

Postby tatch » Sat Nov 22, 2014 6:22 pm

studio32 wrote:Male was thinking a lot about the combination of lineair (together with non-timeline) and pattern based sequencing, and a useful combination between the two. Afaik he didn't came up with a conclusion/solution yet. I'm sure he will be back when he figured that one out. :)


I'm not sure about this. male's music is primarily singer-songwriter music so he doesn't necessarily have the familiarity with or interest in a synthesis-and-sequence-oriented environment to improve the workflow.


Return to “Plugins, Effects and Instruments”

Who is online

Users browsing this forum: finotti and 2 guests