[yoshimi] Re: Instances

  • From: Will Godfrey <willgodfrey@xxxxxxxxxxxxxxx>
  • To: yoshimi@xxxxxxxxxxxxx
  • Date: Fri, 26 Apr 2019 09:34:17 +0100

On Fri, 26 Apr 2019 08:24:02 +0300
redu <reino.urala@xxxxxxxxx> wrote:

Ref Instances

From Yoshimi manual:
Internal instances are created from the Yoshimi drop-down menu, and 
Yoshimi can keep track of them,also numbering the title bars so one 
knows which one is being dealt with (applies to all their sub-windows,too).
Two internal ones will save to their own numberered defaults
Instance 1 is all JACK and has a MIDI sequencer and arpeggiator 
connected. It is also configured for separate part outputs only.

In my “digi-Hammond” project, I would want to swap a state file on fly 
(instant sound swapping). In principle, using multiple instances for 
multiple state-sounds would do, but unfortunately, multiple instances 
would need multiple part’s outputs.

In my “digi-Hammond” 32 parts are already used for multiple organ stops 
(drawbars). That is: Can’t use instances for instant sound swapping?

What I use for swapping today,is multiple desktop icons on a touch 
sceen, each giving their own sounds (individual state files). Every new 
desktop icon script kills all the former Yoshmi instance, and starts a 
new one with a new state file.

Example desktop file:
#!/usr/bin/env xdg-open
# Start Zyn.dektop application
Exec=sh -c "killall yoshimi ; pgrep qjackctl || qjackctl & yoshimi 
–state=/home/redu/Zyn/state/6sineX.state"

The issue in this desktop icon approach is however an about one second 
switch-over-time = all sound are missing for one second at sound switch 
over instance.

The big question is: Is there in Yoshimi, some other instant way to 
switch over from one state file to another?

There is no way to make a fast state change, this is a lot of whork Yoshimi has
to do at that time.
However I can think of a couple of ways you may be able to get round this that
involve multiple instances all being run together (use the settings to enable
reopening instances on first start).

You can use one of the midi routing programs to direct incoming midi to
only a specific instance instances. This has the disadvantage that it could
leave you with stuck notes.


Alternatively have some software/script to send NRPNs that will tell all 32
channels of the unwanted instance to accept note-off only, and the wanted
instance to now accept note-ons.

The required NRPN control is in /doc/Direct_Part_Control. This requires more
effort to set up, but does allow a totally smooth, and pretty fast switchover.


I do have another thought that I'll mull over to see if it is practical.

That would be to set up a new NRPN to do an instance mute-unmute. This would
do a fast volume down, all sound off, then block all incoming MIDI except the
unmute command. It would also have the advantage of reducing loading as muted
instances would have virtually no DSP load.

-- 
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: