Yoshimi (synthesizer)
Yoshimi is a free and open-source software synthesizer for Linux. It contains three separate synthesis engines, using additive, subtractive and wavetable synthesis (AddSynth, SubSynth, and PADSynth, respectively): 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, 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 has been maintained, control and the user interface have deliberately diverged considerably. The purpose of the Yoshimi project has been to optimize in parallel with ongoing development of ALSA and JACK under Linux. Therefore, it is highly optimized Linux, and is not available for other operating systems. 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 is almost complete access. Audio Out. When using ALSA for Audio, one stereo pair is available, but when using JACK, one can have one stereo pair 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. 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 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 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. 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.