Yoshimi (synthesizer)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Developer(s)Will J. Godfrey, Jeremy Jongpier, Alan Calvert, Mark McCurry, Harald Hvaal, Nasca Octavian Paul
Initial releaseOctober 8, 2009 (2009-10-08)
Stable release
1.7.2 / August 17, 2020; 2 months ago (2020-08-17)
Repository Edit this at Wikidata
Written inC++
Operating systemLinux
Available inEnglish

Yoshimi is a free and open-source software synthesizer for Linux.

It contains three separate synthesis engines, AddSynth, SubSynth, and PADSynth; any single patch can use one or all. Furthermore, there is a kit mode where the patch can have up to 16 of these engine sets for making multi-layered sounds or drum kits. A complete setup or instance can contain anywhere from one to sixty-four possible patches.

All signal generation is done by synthesis, not using import of 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 has the ability for custom scales to be defined.

Originally based on the 2.4.0 version of ZynAddSubFX (Copyright 2002-2009 Nasca Octavian Paul), development of Yoshimi has continued in its own direction. While full compatibility with ZynAddSubFX voice patches has been maintained, control and user interface have diverged considerably. This is intended. A purpose of the Yoshimi project has always been to optimize in parallel with ongoing development of ALSA and JACK under Linux. It is therefore highly optimized for these on Linux, and is not available for other operating systems.

Sound generation[edit]

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.[1] PADsynth wavetables can also be exported for use in sample players.

MIDI control[edit]

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[edit]

If starting from a terminal window, as of version 1.3.6 it has been possible to actively control many features here. System settings, Bank lists, Program Changes and many others are already accessible. Since version 1.5.9 it has been possible to edit deep into the instrument patches themselves. With version 1.5.10 there is almost complete access.

Audio Out[edit]

When using ALSA for Audio, one stereo pair is available, but when using JACK, one can have this plus one pair per active patch, up to 64. As with MIDI, Yoshimi can be instructed to choose between JACK and ALSA. Also, when running with ALSA it is possible for it to look for a specific sound card.


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 recent development is the ability to swap active channels in order to get an instant sound change while retaining the fading notes of the previous sound. This has been developed further in the latest release 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 V 1.5.1 this includes learning aftertouch and NRPNs

There is a Yoshimi-only format (.xiy) that is a super-set of the standard type (.xiz). Users can save either or both formats. When loading, Yoshimi will look for the new format first, and if not found will then look for the standard one. 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.


V1.7.1 sees the implementation of both channel and key aftertouch. This is completely new work and may change dependent on user feedback.

We also now support three different 'laws' for stereo panning which are subtly different with moving sounds..


As well as a dedicated yoshimi directory in 'doc' with much background information and The Short Yoshimi Guide as ODF, there is a Yoshimi Advanced User Manual directly accessible from the 'Yoshimi' drop-down menu. This is a PDF and should launch into whatever PDF reader you have. It is extremely comprehensive and currently runs to approximately 290 pages.


Support is available from developers and users on the new Yoshimi email list,[2]

See also[edit]


External links[edit]