A software synthesizer for Linux, originally forked from ZynAddSubFX (Copyright 2002-2009 Nasca Octavian Paul) in 2009 by Alan Calvert. Initially, Yoshimi delivered the same synthesizer capabilities. After early improvement of Jack and Alsa midi/audio performance, now many new features have been added, and we are concentrating on accessibility.

Tags audio synthesizer
License GNU GPL
State stable

Recent Releases Nov 2023 03:25 minor bugfix: rc1 2023-11-24 Will. bn 2287 AddSynth Tabs not updating on 'Paste' action - never did!. Small Control Data updates and clarifications. 2023-11-17 Will. bn 2286 Numerous PadSynth controls not updating on preset Paste. AddSynth slider not updating on preset Paste. speeling Eras in guides :p 2023-11-17 Will. bn 2285 Properly CLI AddSynth voice number affecting PadSynth controls Paste clipboard button disabled if no entry for that section Small style cleanups in copy/paste Updated Yoshimi Control Data/toplevel.html Updated HTML guide for preset 2023-11-15 Will. bn 2284 Changed Presets internal name "presets" to "params" Changed "PresetsUpdate" to "ParamsUpdate" Changed "changePresets" to "changeParams" Changed "presetsUpdated" to "paramsChanged" Changed source file Presets.h to ParamCheck.h Changed source file Presets.cpp to ParamCheck.cpp Some small GUI cleanups Completed changes. Presets is now ParamBase 2023-11-14 Will. bn 2283 copy/paste not recognising effect numbers. Title of copy/paste now indicates section Some GUI display cleanups 2023-11-13 Will. bn 2282 copy/paste GUI 'Type' field only correct on first call. Removed all of old presets code except PresetsUpdate( Some cleanups and extra comments in UnifiedPresets 2023-11-11 Will. bn 2281 Added 'design Notes' file to Yoshimi Control Data also a few more clarifications. 2023-11-10 Will. bn 2280 copy/paste assuming text returned in text message 0. Resolved ambiguities in Yoshimi Control Data Added copy/paste details 2023-11-09 Will. bn 2279 HTML "Yoshimi Control Data" now complete to replace.ods file. Removed ambiguity in CBtest default is to *not display text from miscMsg. Forgot to disable effects patch in Interchange :( 2023-11-07 Will. bn 2278 Wrong spelling in lists for amplitude LFO. Buf: Ucopy/Upaste type text not updating GUI unified presets done for LFOs GUI unified presets done for Envelopes GUI unified presets done for Filters GUI unified presets done for Effects Some UI cle Jul 2023 19:50 minor feature: https://github.com/Yoshimi/yoshimi/releases/tag/ Dec 2021 14:05 minor feature: Includes compatibility for Clang compiler. Set minimum C++ version to 14. Set version
1.7.218 Aug 2020 06:05 minor feature: Remove dead code . Cleanup: avoid unnecessary string copies. . New algorithm for FM modulation in sub voices with parent modulation. . . . Merge branch 'master' into small_cleanups. . Confirmed Modulator improvements from Kristian. . . . Further work on incompatible file recognition. . Further work on incompatible file recognition. . Initialisation and memory leak found by Stefaan. . Reverted hidden buttons in instance 0 bank windows. . Added bold highlight for last instrument load from bank. . Latest instrument now recognised by CLI. . : new highlight not recognised for higher numbers. . Added switch in config to enable/disable highlighting. . Added waveform to remembered window positions. . : CLI not responding to engine on/off. . : Disabled oscillator window saving caused segfaults. . Reorganised several enable control values for consistency. . Don't treat failure to write to GUI thread as an error. . . . Merged GUI from Kristian. . compatibility with lv2 1.18. . . . Reverted PART_POLIPHONY and POLIPHONY to single limit. . enforcenotelimit now loops to remove all older notes. . : GUI Part volume control not working. . : Reverb type to bandwidth not resetting BW control. . Moved '.config/yoshimi/yoshimi.history' to.share/yoshimi/recent'. . Separated out CLI engine level volume, pannning, velocity. . Separated out part, engine, kit enable controls. . Moved CLI part specific controls from Common to Part. . regression CLI not enabling PadSyth. . Separated out CLI SubSynth and PadSynth overtones. . Separated out CLI de-pop and punch. . Separated remaining CLI controls and deleted partCommon. . GUI and CLI fully in sync for Add, Sub, Pad enables. . CLI only shows GUI sys/ins effect changes when visible. . Unified random panning, with variable position and width. . First trial of AddSynth Gobal random width control. . Added line in AddNote.cpp ring mod code for amp mod. . General cleanups and removed reduntant code. . : Reques
1.7.121 Apr 2020 05:45 minor feature: Building bank root uses new listDir( . Revised simplified fresh population of banks. . Revised and sinplified loadbank(. . added /local/yoshimi/banks to defaults. . :rebank: basic structure now in place. . :rebank: basic structure mostly copmplete. . :rebank: Removed considerable redundant code. . Merge branch 'rebank'. . Completed merge of rebank. . .local/yoshimi now changed as /local/share/yoshimi. . Corrected CLI not setting bank from top level. . More revision of banks code. . Provisional for CLI part setting oddity. . Corrected MIDI-Learn save title bar. . : MIDI-learn crash if accessing non-exisitent effect. . Suppressed test message in filterUI. . If no banks are found at startup a new one is generated. . Implemented Hyperbolic Secant Waveform option. . race condition in legato with very quick Note Off - On sequence. . All Notes Off control message not clearing held legato notes. . legato notes not taking parent voice's detuning into account. . live feedback for detuning of imported voices. . : Return SUBSynth harmonic to zero when moving slider down. . . Improved code for spacing new bank IDs. . : LV2 not updating MIDI-learn GUI. . shift-by-negative in bitFindHigh(). . out-of-bounds array access in PADnoteUI.fl. . use-after-free during program exit. . /refactor unison vibrato. . Remove redundant !container.empty() checks. . Remove redundant clear()s. . . . . Merged in various from Iain. . Revised file/directory copying. . Revised Solo switch selection for performance and clarity. . Patched in additional Solo type 'Channel' from Matthew. . Applied some optimisations to Solo Channel mode. . Installed full placeholder for key pressure detection. . First trial of polyphonic aftertouch. . Merged in first trial of PolyAT. . PolyAT can do lowering as well as raising filter cutoff. . Small refinements to PolyAT. . Created GUI for PolyAT. . Temporarly hid PolyAT negative filter cutoff. . Implemented Modulation PolyAT. Feb 2020 06:45 minor feature: First trial of improved mute system . Further work on new mute system. . Completed new mute system. . Merge branch 'master' into newMute. . paste routine is now thread safe. . Merge branch 'master' into newMute. . Some small cleanups. . Merge branch 'master' into newMute. . Merge branch 'newMute'. . Exclude repository configuration from release tarballs. . New master mute system now in place. . . . : AddVoice GUI update not right from CLI/MIDI. . Combined definition of sizes in Bank.h with globals.h. . Unified xml pointer names. . volume knob on individual voices not working after being zero. . Revised essential config parameters. . . . : GUI 'Save External' using wrong name. . Created new presets dir in.local/yoshimi. . Started pulling direct file access out of Bank(. . Added std::list for directories in file manager. . Changed.bankdir references in Bank( to validBank label. . importbank, loadback use new listDir(. . importbank, loadbank use new listDir(. . : Segfault changing LFO type.
1.7.019 Jan 2020 11:45 minor feature: Small adjustment to User manual . license name of yoshimi.appdata.xml. . . . Resolved warnings given by GCC V8. . Removed modal from instrument search window. . Prepare for, and implement, live feedback for ADsynth controls. . Implement live feedback for SUBsynth. . Implement live feedback for PADsynth. . Enable live feedback also for SUBsynth harmonics that start at zero. . Implement live feedback for Formant Filter. . Implement live feedback for filter gain parameter. . Implement live feedback for Envelope and LFO parameters. . elusive in SUBnote filter creation, resulting in NaN. . Made slider knobs respond to mouse clicks. . extreme amplitude at the beginning of certain notes. . Doc updates. . . . Updated copyright notices. . notes always having zero filter gain until the knob is moved. . . . Merged in filter. : State load not updating MIDI_learn GUI. . : Editing MIDI-learn lost NRPN status. . More MIDI_learn refinements. . regression. Some startup arguments not seen. . Corrected jack autoconnect. . Final doc updates ready for release. . minor style cleanups. . GUI no longer changes part when changing bank. . Added explanatary comments to code.
1.6.117 Dec 2019 10:05 minor feature: Revised CLI part controllers code and messages . Applied experimental optinisations to OscilGenUI. . Further small adustment to OscilGenUI. . Revised CMakeLists.txt NEON changed to RasPi4. . Disabled all references to fl_line_style. . Corrected some minor errors in CLI lists. . Removed redundtant CLI command. . Revised text reporting of on/off values. . Further reporting improvements. . CLI code refinements. . Removed redundant code. . Implemented search feature for ALSA MIDI input. . Updated docs. . ALSA search connects to all ports, not just 0. . Performed major reoganisation of config files. . Removed extra redundant config code. . Further refinements to startup config. . Small code cleanups. . Updated local copy of User Guide. . Added version numbering to the banks file. . Added version numbering to the banks file. . Began state machine for all session managment. . Default state done with lockin prevention. . State fully integrated in session management. . Temporary for Jack session save. . Found way to defer UUid message after setup. . Some final? cleanups to session management. . yoshimi.state auto-moved to yoshimi-0.state. . Updated documentation. . Reinstated undocumented "zread" CLI time test. . Minor text/info corrections and updates. . corrected default state save. Nov 2019 06:25 minor feature: First trial of atomic bool for read/write control . Do not pass -lalsa and -ljack to compiler. . Remove dead code/duplicate logs in CMakeLists.txt. . Use CMake's FindZLIB instead of handrolled method. . Update if() formatting in CMakeLists.txt. . indents in CMakeLists.txt. . broken detection of -I flags for FFTW3F. . . . Revised CLI lists for consistency. . Forced CLI exit from Yoshimi returns 16 instead of 0. . Instant (forced) exit also available from GUI. . Further CLI test list revision. . Restored original ALSA audio thread. . Merge branch 'master' into locks. . NRPN can shutdown with exit value 16. . Finding bank name needs specific root ID. . Reverted 'A' note limits and corrected terminology. . Added more labels for new bank commands. . CLI reports Ref. note and numbers. . Merge branch 'locks'. . Code cleaups after merging in locks branch. . Proposed for mxml 3.1 failure with LV2. . Mixer Panel format can be changed from config. . GUI suppress change warning on force exit. . forced shudown failure from GUI in ALSA. . Confirmed mxml for LV2. Oct 2019 07:05 minor feature: CLI can now set instrument comments . ALSA can autoconnect to multiple MIDI inputs. . Moved Jack MIDI aoutconnect to correct place. . : Config.cpp orphaned cout, cerr, endl. . : Config.cpp orphaned to_string. . CLI can now set copyright field. . CLI can now load/save default copyright. . Forgot CLI 'return' for default copyright. . Started revision of bank controls. . CLI conversion done for select bank root. . Activated CLI bank lisiting for defined entries. . Implemented change root ID for CLI. . CLI can now set bank names. . Improved CLI bank controls and lists. . : CLI detune type inconsistencies. . CLI reports waveform text instead of number. . Further refinements to listing / text lists. . CLI reports LFO text instead of number. . : CLI alienwah missing random entry. . use-after-free in Presets::copy(). . preset clipboard not copying/pasting. . . . Merge branch 'master' of github.com:Yoshimi/yoshimi. . Most CLI effects switches reported as text. . mismatched new /delete. . boolean instead of bitwise OR. . !-then- precedence. ternary comparison with array. . formatting of some assignment operations. . . All CLI effects correctly reporting. . Corrected anomaly CLI with sys/ins send. . Do not pass -lalsa and -ljack to compiler. . Remove dead code/duplicate logs in CMakeLists.txt. . Use CMake's FindZLIB instead of handrolled method. . Use pkg-config to find readline. . out-of-bounds accesses in ADnote::initSubVoices(). . mismatched new /delete in ADnote.cpp. . Initialize onlyValue in DynTooltip constructor. . Initialize NoteVoicePar n .FMEnabled in ADnote ctor. . OOB access in Data2Text.cpp and MiscGui.cpp. . cast-to-unsigned overflow in Microtonal.cpp. . Better warning suppression for unused FLTK vars. . Silence "using implicit namespace" warning. . . . . . . Reverted cmake change from Iain. . Reverted change to 'data2Textfrom Iain. . Refined data2text to clarify structure. . : CLI not selecting which kit item Sep 2019 03:15 minor feature: Merged in for BSD . spelling error: "modifer" - "modifier". . . . A corrupted config file no longer aborts. . CLI can now set instrument type. . : Loading files failed with mxml V 3.1. . Set version as
1.6.007 Sep 2019 06:31 major feature: V1.6.0 Yoshimi is now 10 years old and (while fully respecting its origins) is forging it's own path into the future. Do come along for the ride. Our headline feature is extensions to AddSynth voices and modulators. There is a new AddSynth noise type. There are extra mute options. There is a global bank search entry in the main window's instrument menu, and a button in the instrument bank window. Also in the main window there is a button to temporarily disable an individual system effect. In the part editor window there is now a 'Humanise Velocity' slider. We've made an improvement to the way recent histories are managed. All the above features are, of course, also available to the command line interface. 'Reports' and 'Midi Learn' openers have been swapped. There is a new group of easy to use NRPNs. There have been improvements to Copy/Paste. There is tighter control of startup. Incidentally, whenever we add new features, the default is always to keep the existing behaviour. The Advanced User Manual has been considerably Expanded. Under the hood Ring buffers have now been changed to a bespoke type. Almost all file system operations have been moved to a single source file. As well as running headless, Yoshimi can now be built headless. The command line has additional protection against overlength lines, and corrupted data. More details in /doc/Yoshimi_1.6.0_features.txt