Discussion:
[Linuxsampler-devel] [OT?] Linuxsampler DSSI setup
Andrew C
2017-05-16 10:17:07 UTC
Permalink
Not sure if I should post this here or to LAU, but here goes.

Finally I've decided to step into the modern age of plugins running in
hosts as opposed to having everything standalone and hooking up endless
midi channels in qjackctl.

I'm kind of having difficulty wrapping my head around how it all works, so
I'll try and simplify my question to a one-liner:

Can I assign multiple midi channels to a single linuxsampler plugin
instance? Or does DSSI work with one plugin per channel?

My host (Rosegarden) has a seemingly hard-coded 24 available slots to put
dssi plugins into, so having access to all 16 channels from one plugin
instance would be great, but maybe this entirely outside the scope of how
dssi works?

Andrew.
Christian Schoenebeck
2017-05-17 16:14:13 UTC
Permalink
Post by Andrew C
Not sure if I should post this here or to LAU, but here goes.
Don't worry, there is not much traffic around here.
Post by Andrew C
Finally I've decided to step into the modern age of plugins running in
hosts as opposed to having everything standalone and hooking up endless
midi channels in qjackctl.
I'm kind of having difficulty wrapping my head around how it all works, so
Can I assign multiple midi channels to a single linuxsampler plugin
instance? Or does DSSI work with one plugin per channel?
The usual work flow with any plugin standard I know of, is usually one
(instrument) plugin instance per DAW track.

DSSI is actually the predecessor of LV2. So most people use LV2 or VST on
Linux. Does Rosegarden not support LV2?
Post by Andrew C
My host (Rosegarden) has a seemingly hard-coded 24 available slots to put
dssi plugins into, so having access to all 16 channels from one plugin
instance would be great, but maybe this entirely outside the scope of how
dssi works?
All plugin standards are sending their MIDI data with a MIDI channel,
including DSSI. So after you created your DSSI plugin instances you can adjust
your overall setup i.e. with QSampler for your needs. So yes, you can do that.

CU
Christian
Andrew C
2017-05-17 18:53:03 UTC
Permalink
Rosegarden does not support LV2, sadly. I think it is on the developers'
'to do' list Soon(tm).
Post by Christian Schoenebeck
The usual work flow with any plugin standard I know of, is usually one
(instrument) plugin instance per DAW track.
Yes, I seem to be barking up the wrong tree at the wrong people.
AFAICS, LinuxSampler creates a new midi port and instrument for each plugin
instance with the midi channel set to (all), as opposed to simply using the
same midi port and using the next available channel for the new instrument.

I was expecting the latter functionality, but I suspect this is an "issue"
with Rosegarden, as opposed to LinuxSampler.*

*Not really an issue, but as mentioned, with RG's 24 hardcoded plugin
instance limit with no "true"(?) multi-timbral support, it seems that using
LS/FluidSynth as standalone instruments is the way to go for multi-channel
goodness.

This post is rambling a bit... :P


On Wed, May 17, 2017 at 5:14 PM, Christian Schoenebeck <
Post by Christian Schoenebeck
Post by Andrew C
Not sure if I should post this here or to LAU, but here goes.
Don't worry, there is not much traffic around here.
Post by Andrew C
Finally I've decided to step into the modern age of plugins running in
hosts as opposed to having everything standalone and hooking up endless
midi channels in qjackctl.
I'm kind of having difficulty wrapping my head around how it all works,
so
Post by Andrew C
Can I assign multiple midi channels to a single linuxsampler plugin
instance? Or does DSSI work with one plugin per channel?
The usual work flow with any plugin standard I know of, is usually one
(instrument) plugin instance per DAW track.
DSSI is actually the predecessor of LV2. So most people use LV2 or VST on
Linux. Does Rosegarden not support LV2?
Post by Andrew C
My host (Rosegarden) has a seemingly hard-coded 24 available slots to put
dssi plugins into, so having access to all 16 channels from one plugin
instance would be great, but maybe this entirely outside the scope of how
dssi works?
All plugin standards are sending their MIDI data with a MIDI channel,
including DSSI. So after you created your DSSI plugin instances you can adjust
your overall setup i.e. with QSampler for your needs. So yes, you can do that.
CU
Christian
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxsampler-devel mailing list
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel
Christian Schoenebeck
2017-05-17 19:28:09 UTC
Permalink
Post by Andrew C
Rosegarden does not support LV2, sadly. I think it is on the developers'
'to do' list Soon(tm).
Post by Christian Schoenebeck
The usual work flow with any plugin standard I know of, is usually one
(instrument) plugin instance per DAW track.
Yes, I seem to be barking up the wrong tree at the wrong people.
AFAICS, LinuxSampler creates a new midi port and instrument for each plugin
instance with the midi channel set to (all), as opposed to simply using the
same midi port and using the next available channel for the new instrument.
Yes, because that's the desired (default) behavior for the majority of all DAW
plugin users. Like I said, no matter which DAW and plugin standard you are
using, nowadays you create a separate DAW track for each sound. Which has the
advantage that you don't have to worry about MIDI channels at all, which would
be error prone.

And in fact, I realized that more and more younger people are not even aware
about what a "MIDI channel" is, due to that circumstance.
Post by Andrew C
I was expecting the latter functionality, but I suspect this is an "issue"
with Rosegarden, as opposed to LinuxSampler.*
Which is not a problem. What I described is the default behavior for
LinuxSampler. When you launch plugin instances, they appear to the sampler as
separate MIDI ports. But nobody forces you to use them.

For the small minority of users [ you ;-) ] who want a different plugin
behavior: Like I said, simply launch your plugin instances, then open QSampler
and modify the sampler internal MIDI routing as desired. So you can also hook
up several sampler parts (a.k.a. channel strips in QSampler) to one MIDI input
port of your plugin instances, and also the other way around, one sampler part
(channel strip) to several MIDI input ports. And then select for each sampler
part a specific MIDI channel and that's it.

Then when you save your song, the entire sampler setup will automatically be
stored with your DAW song file and vice versa; the entire sampler setup will
automatically be restored when you load your song in your DAW again
[ok, at least if Rosegarden supports state saving of plugins].

CU
Christian
Christian Schoenebeck
2017-05-17 19:49:04 UTC
Permalink
Post by Christian Schoenebeck
For the small minority of users [ you ;-) ] who want a different plugin
behavior: Like I said, simply launch your plugin instances, then open
QSampler and modify the sampler internal MIDI routing as desired. So you
can also hook up several sampler parts (a.k.a. channel strips in QSampler)
to one MIDI input port of your plugin instances, and also the other way
around, one sampler part (channel strip) to several MIDI input ports. And
then select for each sampler part a specific MIDI channel and that's it.
What I must add here, and maybe that's the missing brick for you to solve that
issue: Even when using the plugin version of the sampler you can still add as
many sampler parts (channel strips) as you want on their own i.e. with
QSampler. So you don't need to add a new plugin instance just to add a new
sampler part.

Does this make it more clear?

CU
Christian
Andrew C
2017-05-17 20:30:09 UTC
Permalink
Thank you so much for the indepth response, Christian! I was a bit slow on
the uptake of the design workflow here with plugins...
Did some more RTFMing and googling to make sense of it.
Post by Christian Schoenebeck
What I must add here, and maybe that's the missing brick for you to solve that
issue: Even when using the plugin version of the sampler you can still add as
many sampler parts (channel strips) as you want on their own i.e. with
QSampler. So you don't need to add a new plugin instance just to add a new
sampler part.
Yes, this makes it crystal clear.

So if I have one midi input port for the linuxsampler instance, I can,
using qsampler, simply add extra channel strips and create 'layered' sounds
for that particular port.

Midi Port 0: Violins, Cellos, Violas, Basses sustain patches loaded up (In
Linuxsampler) -> Linuxsampler.so instance #1(in Rosegarden) - > "Full
Strings" sequencer track

Midi Port 1: Maestro Grand v2 patch loaded up (In Linuxsampler) ->
Linuxsampler.so instance #2(in Rosegarden) - > "Piano" sequencer track

... and so on?

After that, I'm just limited by the number of plugins my sequencer can let
me load and don't even need to care about what midi channel goes where?


On Wed, May 17, 2017 at 8:49 PM, Christian Schoenebeck <
Post by Christian Schoenebeck
Post by Christian Schoenebeck
For the small minority of users [ you ;-) ] who want a different plugin
behavior: Like I said, simply launch your plugin instances, then open
QSampler and modify the sampler internal MIDI routing as desired. So you
can also hook up several sampler parts (a.k.a. channel strips in
QSampler)
Post by Christian Schoenebeck
to one MIDI input port of your plugin instances, and also the other way
around, one sampler part (channel strip) to several MIDI input ports. And
then select for each sampler part a specific MIDI channel and that's it.
What I must add here, and maybe that's the missing brick for you to solve that
issue: Even when using the plugin version of the sampler you can still add as
many sampler parts (channel strips) as you want on their own i.e. with
QSampler. So you don't need to add a new plugin instance just to add a new
sampler part.
Does this make it more clear?
CU
Christian
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxsampler-devel mailing list
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel
Christian Schoenebeck
2017-05-17 20:53:07 UTC
Permalink
Post by Andrew C
So if I have one midi input port for the linuxsampler instance, I can,
using qsampler, simply add extra channel strips and create 'layered' sounds
for that particular port.
Midi Port 0: Violins, Cellos, Violas, Basses sustain patches loaded up (In
Linuxsampler) -> Linuxsampler.so instance #1(in Rosegarden) - > "Full
Strings" sequencer track
Midi Port 1: Maestro Grand v2 patch loaded up (In Linuxsampler) ->
Linuxsampler.so instance #2(in Rosegarden) - > "Piano" sequencer track
... and so on?
Correct.
Post by Andrew C
After that, I'm just limited by the number of plugins my sequencer can let
me load and don't even need to care about what midi channel goes where?
Well, for the "layered sounds" scenario you don't need to care about MIDI
channels. Just make sure the manually created sampler parts (i.e. the ones
added with QSampler) are set to listen to "all" MIDI channels.

For the 2nd scenario with only one sound (piano) you don't have to take care
about MIDI channels either.

But since your problem is the limited amount of tracks in Rosegarden, I guess
you might also have a different scenario one day where you have a Rosegarden
track which contains MIDI data for multiple different target sounds, so that
track would have MIDI data for multiple different MIDI channels. And in that
particular scenario you would of course need to take care about the MIDI
channel setup inside the sampler.

CU
Christian
Luis Garrido
2017-05-18 09:20:44 UTC
Permalink
Post by Christian Schoenebeck
The usual work flow with any plugin standard I know of, is usually one
(instrument) plugin instance per DAW track.
You might want to give a try to ls16, an alternate DSSI LinuxSampler
adapter. Perhaps it will suit your workflow better:

https://sourceforge.net/p/ls16/wiki/Home/

However, there is no workaround for Rosegarden's omni MIDI routing
model. Perhaps have a look at QTractor or MusE?


Regards,

L
Andrew C
2017-05-18 19:10:13 UTC
Permalink
Thanks for the heads up guys!

Rosegarden's omni midi routing for dssi was one of my biggest issues with
it. :P

Tried Muse and it gets two points in favour of switching: one being the
same name as one of my favourite bands and the other that it can do
"multi-channel" for one instance. Neat stuff and I'm sold on Muse now.

--

On a LinuxSampler-related note, I need some advice WRT Jsampler and
stability.

If I open JSampler after playing a bunch of notes, or at the same time as
I'm playing notes, Linuxsampler crashes after JSampler opens up or LS
crashes with the JSampler box displaying 'Applying global voice limits' or
some such.

LSCPServer: Client connection terminated on socket:9.
LSCPServer: Client connection terminated on socket:4.
LSCPServer: Client connection established on socket:4.
LSCPServer: Client connection established on socket:9.
Pool::resizePool() ERROR: elements still in use!
Segmentation fault (core dumped)

This happens to LS both standalone and running as a DSSI inside of RG/Muse.

Andrew.

On Thu, May 18, 2017 at 10:20 AM, Luis Garrido <
Post by Luis Garrido
Post by Christian Schoenebeck
The usual work flow with any plugin standard I know of, is usually one
(instrument) plugin instance per DAW track.
You might want to give a try to ls16, an alternate DSSI LinuxSampler
https://sourceforge.net/p/ls16/wiki/Home/
However, there is no workaround for Rosegarden's omni MIDI routing
model. Perhaps have a look at QTractor or MusE?
Regards,
L
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxsampler-devel mailing list
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel
Loading...