V 2.0 A happy Northern Cardinal

Yes really! A springtime version 2.0 is here.

The most noticable improvement is that all windows are now resizable...
Individually...
Up to whatever the window manager allows...
And their current sizes and positions are saved.

For most of these, the windows for each Yoshimi instance have their own settings. What is more, if you change screen resolutions such that one of them would then be outside the viewable area, there is code to automatically bring it back into view. In the process we have also tidied up some of the windows to make them clearer and more consistent.


To maintain style and resize consistency we have devised our own file browser - a sort of cross between GTK and KDE. This has the added beneft that *all* file handling now goes though a single header file. This is the most recent addition, and may change in future releases based on user feedback.


Another significant development is MIDI sync for all the engine LFOs. When the new BPM button is checked, the frequency control becomes a ratio setting between the time code and actual LFO freqency. The range is from 16:1 to 1:16, so should cover just about all the combinations you might want. All LFOs are independent, so you can have one set to (say) 3:2, while another is set to 1:4.


An interesting lesser development is the addition of a few more instrument types, to make it easier to find ones that you want to use. The new type names are:
    Bells and Chimes
    Single Voice
    Choir
    Wind (other)
    Warm Pad
These are backward compatible in that older Yoshimi versions will see them as 'undefined'. Also, if you save a newly created instrument you are asked to set the type if it has been left as 'undefined'. It is a request, not a demand - Yoshimi is your friend, not your boss!

Along with this there is a new way of managing the internal names and the file names. From now on, the internal name will be the one that the instrument was first saved as. Whereas all other references to the instrument will be via the filename (or a copy of it). If the filename is changed for any reason, the next time the instrument is loaded, the 'Edit' window will have a line: 'Derived from {original name}'. This ensures that with further development it will always be possible to tell where it originally came from, without interfering with bank positioning, instrument development etc.

All the Default instrument banks have been revised to remove inconsistencies between the internal name and the file leaf name. It was already impossible to tell how they were derived so the names have just been made the same. While doing this, where possible reasonable types have been set to many of those that were just marked as 'undefined' - also making use of the new type names. All the types that have been adjusted were previously undefined.

Most importantly, none of this affects the sound, nor the bank positions, so your existing projects will sound just the same. Also, this is just the defaults in /usr (or /usr/local) none of your copies will be touched (although you may want to re-copy or adjust them youself).


The recently introduced aftertouch feature can now be reached from the part edit window as well as the controllers one. Also both key and channel aftertouch are saved in patch sets, and in Yoshimi type (.xiy) instruments. You can sometimes get slightly odd results if enabling/disabling options while aftertouch is engaged (i.e. key pressed hard), but apparently this is quite common across other systems.


The currently set panning law is saved to patchsets, and by inference also to state files. Resets will always revert to the default law. It is always worth switching Yoshimi to mono from time to time to hear what effect this is actually having.


The maximum number of MIDI_learn control entries has been increased to 400. The estimated time to load a file with all 400 entries is still less than 1 second, and the time for an incoming CC to match the very last entry is estimated to be appoximately 160uS (based in tests with 65 unique entries). The number of entries is greater than the number of CCs available (disregarding NRPNs) but keep in mind you can have several entries receiving the same CC but performing different actions, and entries can be applied to all 16 channels.


CLI scripts can include a delay between commands. This so you can be sure things like PadSynth changes and instrument loads have fully initialised before being accessed by the next command. This used to be limited to 1 second, which is normally more than enough. However there are some exceptional situations that can take several seconds. Therefore we've increased the limit to 30 seconds. These are still entered as milliseconds, so to delay 15 seconds enter: wait 15000


NRPNs have been brushed up a bit. Some anomalies corrected and some bit-rot repaired.

The command line has not been forgotten, and includes access to all the non-GUI features above. Also, some of the wording has been adjusted to better reflect what is happening.

Much of the supplied documentation has been revised - including developer notes. There is also a new user guide being written that will include all these changes. In the meantime clicking on the manual entry in the dropdown menu will open the V 1.7.4 one (after a notification).

Under the hood:
Data storage has been brought into line with the XDG specification.
LV2 performance has been improved. Previously the DSP load was significantly higher than stand-alone.
Some x86/AMD64 specific calls (such as anti-denormals) have be replaced with platform agnostic ones.

Bugfixes!

As usual, we welcome all suggestions and assistance - especially regarding documentation!

Yoshimi source code is available from either:
    https://sourceforge.net/projects/yoshimi
Or:
    https://github.com/Yoshimi/yoshimi

Full build instructions are in 'INSTALL'.

Our list archive is at:
    https://www.freelists.org/archive/yoshimi
To post, email to:
    yoshimi@freelists.org
