[yoshimi] Re: Instances

  • From: Will Godfrey <willgodfrey@xxxxxxxxxxxxxxx>
  • To: yoshimi@xxxxxxxxxxxxx
  • Date: Thu, 19 Apr 2018 18:47:37 +0100

Hi David,

To make things a bit clearer think in terms of internal instances and external
ones.

Internal instances are created from the Yoshimi drop-down menu, and Yoshimi can
keep track of them, also numbering the title bars so you know which one you are
dealing with (applies to all their sub-windows too).

Exernal instances are where you restart Yoshimi from the desktop or some other
system such as a session manager. Although jack/alsa will give them
independent IDs the yoshim versions themselves don't know about these, which
can cause a lot of confusion when saving/loading and especially when changing
config settings or root/bank/instrument.

So, two external instances will save *default* state files to the same
location, so the actual saved default will be the one last saved.

Two internal ones will save to their own numberered defaults. Previously states
were not being re-loaded (everything esle was). Under the new system they will
be.

Currently internal instance *bank* saves can get out of step. This is something
I've wanted to put right for a long time, and will be done... eventually.

This kind of synchronisation would be impossible with external instances as they
can't directly communicate with each other.

The beauty of having per-instance independent, re-loadable default states is
that they can have quite different setups, audio destinations, learned MIDI, and
patch sets.

eg.
Simple user:
Only the main instance, and sets the default state to always set Ch10 as
separate parts only for mixing with other percussion stuff. It also does a
master keyshift so that C sounds as Bb, as it's used mostly working with brass
players.

Power user:
The main instance (0) gets MIDI via ALSA from an external keyboard that it
specifically looks for at startup. It has learned MIDI for controls this
keyboard can send. It also gets other channels from Rosegarden. It sends it's
audio to Jack.

Instance 1 is all Jack and has a sequencer and arpegiator connected. It is also
configured for separate part outputs only for further processing.

Instance 2 is all ALSA and has it's MIDI from a different keyboard (which it
is set to recognise) and a pattern generator and it's audio connected to a
second sound card, which is then mixed in the analog domain.

Finally, internal instances have a slightly smaller memory footprint, and
marginally lighter processor loading.


I don't think we can do anything about LV2. Things like states are saved
within the host anyway (although config isn't). Also LV2 is very wasteful it
will allow you to create a new complete multi-part instance for every track...
and then only address part one of each instance!

Is that any clearer?

-- 
Will J Godfrey
http://www.musically.me.uk
Say you have a poem and I have a tune.
Exchange them and we can both have a poem, a tune, and a song.
Yoshimi source code is available from either: 
https://sourceforge.net/projects/yoshimi
Or: https://github.com/Yoshimi/yoshimi
Our list archive is at: https://www.freelists.org/archive/yoshimi
To post, email to yoshimi@xxxxxxxxxxxxx

Other related posts: