V 1.7.1

One instantly noticeable feature is a new 'Pan Law' entry in the main window. There are three settings. 'Cut' is what Zyn 2.2.1 used, 'Default' is what Yoshi has used from very early days, and 'Boost' is a sort of average of what a number of commercial and hardware synths use. The setting is stored in Patch Sets, and older projects will automatically get 'Default', so sound unchanged. This control doesn't alter the internal panning of Effects which retain the 'Default' type they have always had.

The different behaviours are most noticable with a changing stereo position.


Another quite new development is both Channel and Key aftertouch. This is still a moving target, but we are releasing it now in order to get feedback from users, which will help shape the way it develops.

The controls are found in a new Aftertouch window, which is reached from the Controllers one. Currently, you can have any combination of Filter Cutoff, Filter Q, Pitch Bend, Modulation and (for Channel) Volume, but Key and Channel can't have the same ones. The controls are per part/per channel - a rather curious combination. Two parts can be on the same channel getting the same incoming MIDI but having different effects.

Both Key and Channel aftertouch can also be overridden by MIDI-learn.


There is a new waveform shape available to AddSynth and PadSynth - Hyperbolic Secant. This is similar to Gauss but has a subtly different harmonic distribution.


There is a new channel based setting for Solo. In this case you can mute all parts except the ones receiving the channel sending the command. This requires a toggle type switch operation. i.e. CC value greater than 63 to solo, and less than 64 to return to normal. If the 'on' message comes though on a different channel then this 'takes over' the solo state, but any channel sending the 'off' state will return Yoshimi to normal.


Another significant but less obvious development is a complete revision of how we handle Legato. The code is slimmer and gives far smoother performance.


Instrument banks have also had a workover. One somewhat obscure issue used to be that if a 'foreign' bank was inserted into a root directory externally by some means, next time Yoshimi was run there was a good chance the others would be shuffled about for it to fit. This would then mess up any projects using bank changes.

What happens now is that it installs the already known ones first in their original locations, then if there are more entries it scans the bank for spaces. A further refinement is that it always steps in fives. This means entries are spread as evenly as possible, but still evntually reach every possible location.

A further refinement is that '/usr' directories are scanned for banks, and if found, they're copied into '/home/{user}/.local/yoshimi/found' this provides an editable form while preseving the originals. The final detail is that if no banks can be found at all, Yoshimi will create one bank root, with one bank, with one SubSynth instrument!

A similar action is performed for presets directories, and although existing users will still see ones in '/home/{user}/.config/yoshimi' they won't be put there for new users.


Storing and recovery of GUI window positioning has been improved so it is more reliable, has better defaults, and allows the user to fix the position of more of them.


There has been significant refactoring of critical areas of the code, resulting in improved performance, reduced redundancy, and greater clarity.


As you can see, Yoshimi's little band of helpers have been very busy and apart from all the above, general code cleanups and improvements are continuing.
