Yoshimi 1.4.1 Lyrebird

Art imitating nature, imitating ...

First of all, we have a new quick guide that's in Yoshimi's 'doc' directory. It's just something to help new users get started.

We've always logged warnings if it wasn't possible to run either audio or MIDI, but now we also give a GUI alert.

There are still a lot of instruments out there with no internal title. This applies to both external files and instruments in banks, and means once loaded you don't actually know what you've got. From now on, if the internal name is missing, Yoshimi will use the leafname of the file.

One of our users always likes a specific setup that is far from the default settings. This needed to be done manually. While you could then save this as a Yoshimi state file, to use it you had to set up a command line state startup. Well now there is a switch that allows you to autoload the complete default state.


Recent discoveries with very unusual instrument patches caused us to review the way we handle loading them. All input sources have been improved, but LV2 gained the most, and can now effortlessly load a huge patch that takes more than ten seconds on a fast machine.

While investigating this we temporarily installed a timing routine for root, bank and program changes. This turned out to be very revealing, so it is now an option in
Yoshimi->Settings->Switches.

The first thing you'll notice is the *very* different loading characteristics of the synth engines. You can now get a realistic idea of how far in advance you need to perform any particular in-line program change.


Following on from miniLAC2016 we developed a simpler way of of doing part channel switching to emulate a program change, but with instant switchover (and allowing note tails to continue and overlap). This now takes two forms and is accessible from the GUI, the CLI and NRPNs. These all provide a command that will set a designated incoming CC as the channel switcher.

The first is aimed at people wanting to switch sounds while playing live on a single channel. Once set up, your defined controller can be used to select just one of the row of 16 normal parts. These will be set to receive on channel 0 (counting from zero) while all the others will only see a note off. If vector control has been set up on any of these base channels, this will be recognised and fully operational (for that part only) when selected.

While using this, if you set 32 parts available, parts 17 - 31 can still be used as channels 2 - 15, so you can solo on the switchable one, while having accompaniment provided from a sequencer on these other channels.


The second form is column based and requires 64 parts to be set.
This time you select 1 of 4, but per channel. This is much more suited to post recording automation, and potentially gives you 16 switchable channels. In this case rather than channel numbers you issue actual part numbers and the sofware will recognise the base channel it is on,

If you want to use this to change parts on (say) actual channel 3 - (still counting from zero), send 3 with your defined CC to enable part 3 but disable parts 19, 35, 51. Similarly sending 35 enables that part to respond to channel 3 messages, disabling the others, which as above, will only then see note off.


To keep it all lightweight, you need to load and activate all the patches and parts you want, but that could be from a saved patch set. The channels are changed from the very first time you send the 'switch' CC.

If you want to look really clever the whole lot can be embedded in a MIDI file :)


Hmmm. I think I said I wouldn't go on about vector control, well...
Vector settings are now stored in patch sets and state files :)

Other stuff:

First time start up has been improved slightly, and you will definitely have 'Arpeggios' correctly identified as your current bank :)

Startup with GUI or CLI can now be set within the GUI whereas before it could only be done from the CLI. You are prevented from disabling them both! You are also warned that if you disable the GUI then next time you start you will have to do so from the CLI!

The 'master' and 'instance' configuration files have now been seperated out, and  the master settings are now 'invisible' in the later instance GUIs. This prevents possible ambiguity.




