Yoshimi (synthesizer)

Yoshimi is an open-source software synthesizer for Linux. It contains three synthesis engines, using additive, subtractive and wavetable synthesis (AddSynth, SubSynth, and PADSynth, respectively). Any single patch can use one or all. A kit mode allows a patch to have up to 16 of engine sets to support multi-layered sounds/drum kits. A complete setup or instance can contain anywhere from one to sixty-four patches.

All signal generation is done by synthesis, without importing external samples. Yoshimi also has extensive FX capabilities, which can be applied at all levels, ranging from one synth engine to an entire setup. It is also microtonal, and allows for custom scales to be defined.

It was originally based on the 2.4.0 version of ZynAddSubFX. While full compatibility with ZynAddSubFX voice patches (prior to Zyn 3.0) has been maintained, control and the user interface have deliberately diverged considerably.

Sound generation
Yoshimi combines several different methods of audio synthesis in order to create sounds: additive synthesis by the ADDsynth engine, subtractive synthesis by the SUBsynth engine, and an algorithm original to Nasca Octavian Paul used to generate wavetables in the PADsynth engine. PADsynth wavetables can also be exported for use in sample players.

MIDI control
For both JACK and ALSA there is a single input port (although several sources can attach to it at the same time). At startup, Yoshimi can be instructed to choose between the two, and automatically look for a specific source and connect to it. If for some reason JACK or ALSA is not available it will try to connect to the other source. If neither can be found it will still run, giving one the chance to investigate the problem.

There are three classes of multipatch configurations available, 16, 32, and 64 patches. When the 32-patch configuration is enabled one can choose pairs (between the two sets of 16) for realtime control changes (called vector control), and when 64-patch configuration is enabled one can do this in two dimensions, between four sets of patches.

Command Line
As of version 1.3.6, it has been possible to configure numerous features when launched from a terminal window, for example, system settings and bank lists, among others. Since version 1.5.9, it has been possible to edit the instrument patches themselves. With version 1.5.10, there was almost complete access. Since version 2.2.0 every graphical control has a direct command line equivalent. Controls set laid out in context levels than closely match the graphic windows with appropriate help lists.

Audio Out
For audio output, Yoshimi supports both ALSA and JACK back-ends. Similarly to MIDI, users can select one or the other as well as setting which is the default. When ALSA is selected, it is possible for the software to look for a specific sound card. When using ALSA a stereo out pair is available. When using JACK, a stereo out is available plus one pair per active patch, up to 64.

Functionality
Yoshimi can run as an LV2 plugin and is frequently tested on the most common hosts. In stand-alone mode it is also possible to run multiple instances, each with their independent sources and destinations, but sharing essential resources.

Yoshimi also supports vector control via a MIDI two axis joystick, allowing up to four parts to be sounded together with varying mixes, panning etc. all determined in real-time by the joystick position. This can be configured over MIDI, by the command line or (since version 1.4.0) via the graphical interface.

A useful development was the ability to swap active channels in order to get an instant sound change while retaining the fading notes of the previous sound. This was developed further in version 1.5.1 as 'Solo' accessed from the mixer panel.

A major development was the implementation of MIDI-learn whereby you can 'teach' Yoshimi to link specific actions to any valid continuous controller. As of version 1.5.1, this includes learning aftertouch and NRPNs.

There is a Yoshimi-only file format (.xiy) that is a super-set of the standard type (.xiz). Users can save to either or both formats. The new format includes all the standard settings, but also all elements of 'Controllers' as these have been found to make a dramatic difference to the final sound. Their settings can be quite critical.

Since version 2.0, all windows can be resized independently and their previous sizes and positions are stored. LFOs in the synth engines can now be in sync with the MIDI timecode. Version 2.1.0 expands on this with MIDI sync added to all effects where it is relevant, such as Echo delay time. Version 2.1.2 further refines the code, gives better relability for older MIDI- learn files and adds more details to the user guide.

Version 2.2.0 has a major revision of the PadSynth engine giving more control and far better responsiveness.

With version 2.3.0 there is extensive user modifiable GUI theming capability. Also, all sliders and rotary controls indicate whether they have been moved from their default position. Some significant settings have been changed to high resolution equivalents, while still maintaining backward compatibility.

Version 2.3.1 has some corrections to the microtonal section, and minor additions generally.

In version 2.3.2 there is the (user requested) ability to have separate Left and Right delay times in the Echo effect. There is also considerable code refactoring that improves efficiency without making any unintended changes to sound generation.

Information
As well as a dedicated Yoshimi directory in 'doc' with much background information and The Short Yoshimi Guide as ODF, there is a Yoshimi User Guide directly accessible from the 'Yoshimi' drop-down menu. This is a lightweight HTML document but retains a link to the Advanced Reference Manual PDF. The latter is extremely comprehensive and currently runs to approximately 290 pages.

Support
Support is available from developers and users on the new Yoshimi email list.