-
Notifications
You must be signed in to change notification settings - Fork 1
/
history.html
231 lines (215 loc) · 12.8 KB
/
history.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Yoshimi - History</title>
<link rel=stylesheet type="text/css" href="style.css" />
<link rel="icon" href="img/favicon.png" type="image/x-icon" />
</head>
<body>
<header>
<div id="logo-wrapper">
<a href="./"><img id="logo" src="img/logo.png" alt="Yoshimi"/></a>
<a href="./"><img id="robot" src="img/robot_head.png" alt="Pink robot"/></a>
</div>
<div id="subtitle">
Software synthesizer for Linux
</div>
</header>
<div class="nav-wrapper">
<nav>
<span class="nav-row"><a href="./" >Home</a><a href="downloads.html" >Downloads</a></span><span class="nav-row"><a href="screenshots.html" >Screenshots</a></span><span class="nav-row"><a href="demos.html" >Demos</a><a href="help.html" >Help</a></span>
</nav>
</div>
<div id="main-wrapper">
<main>
<h1 style="padding-bottom:0.5em;">The History of Yoshimi</h1>
<p style="text-align:center; margin-top: 0em; margin-bottom:1em;">
by <span class="person">Will Godfrey</span>
</p>
<div class="history">
<blockquote cite="Jonathan E. Brickman">
Once upon a time, there was just
<a href="https://en.wikipedia.org/wiki/Moog_synthesizer" target="_blank">
<span class="person">Moog</span>.
</a>
Then there were many.
<div class="attribution">
–
<a href="https://ponderworthy.com/">
Jonathan E. Brickman
</a>
</div>
</blockquote>
<p>
<span class="yoshimi">Yoshimi</span> is not
<a href="http://zynaddsubfx.sourceforge.net/">
<span class="zyn">ZynAddSubFX</span>
</a>,
but we have not forgotten from whence we hath come, and we salute thee!
</p>
<p>
ZynAddSubFX was founded by <a href="http://www.paulnasca.com/">
<span class="person">Paul Nasca</span></a> and continued by many
others. Several years later, Yoshimi was founded by our dear friend,
the late <span class="person">Alan Calvert (Cal)</span>, at a time when
ZynAddSubFX showed amazing promise, but did not satisfy his needs and ours.
</p>
<p>
<span class="person">Jeremy Jongepier</span> was instrumental in
obtaining access to the SourceForge repository after we lost Cal,
and maintained it until early 2014, accepting small improvements
from a number of people. Then, with a young family and other interests,
he felt he could no longer do so. At that time, I had become well known
as a Yoshimi instrument designer and a sort-of general bug finder,
and, with considerable prompting from others, agreed to take over as
a caretaker. I had limited C coding experience, no C++ knowledge,
and never been involved in version control.
</p>
<p>
The early work was mainly minor corrections and improvements.
Many people gave support, in particular <span class="person">Rob Couto</span>,
who has been a mentor and contributor throughout this time.
<span class="person">Harry Nakos</span> helped me with the first GUI change
- enabling a single row mixer panel. Later, <span class="person">Andrew
Deryabin</span> coded the LV2 and multi-instance extensions.
</p>
<p>
Meanwhile, <span class="person">Harry</span> supplied the preliminary
example code that was to become the basis of the much improved instrument
bank structure. <span class="person">Andrew</span> then ran with this and
coded the full structure, which over time has been developed further.
Andrew also continued to provide help from time to time.
</p>
<p>
By early 2015, I had gained enough experience to implement vector control,
and later most of the NRPN code. The end of that year saw the first
development of CLI (command line) access, aimed at making Yoshimi
accessible to blind and disabled musicians. Since that time,
<span class="person">Jeanette C.</span> has frequently given her
invaluable advice as a blind user, as well as a segment of code to
implement proper readline features.
</p>
<p>
The channel switching feature (Solo) was implemented in the middle of 2016,
and crossfade control arrived later in the year. A major feature, MIDI‑learn,
was added at the end of that year.
</p>
<p>
Towards the end of 2016 <span class="person">Jörn Eichler</span> identified a
problem with filter tracking whereby it was impossible to track pitch 100% -
then produced the code to do so. Later he added the first improved tooltips
that gave real values on some controls.
</p>
<p>
Throughout 2017, <span class="person">Jesper Lloyd</span> provided additional
enhanced tooltips, along with a number of other GUI improvements and bug fixes.
</p>
<p>
At the beginning of 2018, <span class="person">Kristian Amlie</span> devised
interpolation for Yoshimi’s effects to enable smooth transition when changing
controls in real time.
</p>
<p>
At the end of that year, <span class="person">Hermann Voßeler</span> did
considerable work improving and tidying up the random number generator, and
correcting some mistakes I had made, so it is now thread-safe and
future-proof. He continues to provide assistance.
</p>
<p>
In early 2019, it became possible to <em>compile</em> a <em>headless version</em>
of Yoshimi, and in the middle of the year, <span class="person">Kristian</span>
implemented a major improvement to the AddSynth modulators - officially released
with Yoshimi version 1.6.0. The copy/paste storage was also greatly improved,
as it implemented a pattern similar to that of banks.
<span class="person">Hermann</span> also did considerable work refactoring
code, making it more readable and easier to maintain, especially regarding the
command interface.
</p>
<p>
During the late summer of 2019 an instrument search feature was added.
The new feature made it possible to find and load instruments from across
all available banks, through lists of instruments with the same type.
</p>
<p>
The minor version release 1.6.1, in December of 2019 brought corrections to the notes
and allocation terminology of the microtonal scales, additional improvements to the CLI,
improved configuration management, and also some performance improvements in the GUI.
</p>
<p>
The 1.7.0 release, in January 2020, featured the efforts of <span class="person">Kristian</span>
to provide live feedback to almost every parameter in the synth engines! It also included a number
of bug fixes.
</p>
<p>
In April 2020, 1.7.1 was released, with Pan Law settings, experimental support for aftertouch input,
a new waveform shape (hyperbolic secant) and a powerful new way of controlling Solo mode by using
channel controls.
In addition, the handling of banks was made more consistent with normal standards, making them easier
to use and more predictable when controlled with bank select signals.
The release also featured a large number of code improvements from various
contributors. Most prominently <span class="person">Iain King-Speir</span> who both cleaned
up a lot of code and provided fixes and improvements to the legato implementation.
</p>
<p>
August 17th of 2020 saw the release of 1.7.2. The most important change was the addition of width and center
controls for random panning, allowing greater control of the panning range. Additionally, the FM modulation algorithm was improved (by <span class="person">Kristian Amlie</span>, who also provided some additional fixes and optimizations), instrument file compatibility issues were addressed, numerous gui bugs were fixed and some new dynamic tooltips were added.
</p>
<p>
The major release of 2.0 was made in early 2021 and a saw number of major improvements, with the most notable one being the ability to resize all windows - allowing a much better experience on larger, and high-dpi monitors. Other improvements included LFO Sync, improved LV2 performance and general performance improvements on some RISC-architecture CPUs, extra instrument types (with instrument bank revisions to include said types).
</p>
<p>
The 2.0 release also saw improvements to the instrument bank and instrument type systems, and MIDI-learn.
It added persistent aftertouch and pan law settings (the latter also being a new feature).
A new file browser was implemented, replacing the stock fltk browser to provide more control and some quality-of-life features.
</p>
<p>
The 2.1 release, in late August of 2021, expanded the BPM sync to both LFO's and relevant effect parameters.
There were also more improvements to the UI, notably the file manager. A large portion of the development
cycle was dedicated to the creation of a <a href="docs/user-guide">revised and improved user guide</a>, available in lightweight HTML.
</p>
<p>
In October of 2021, the patch release 2.1.1 brought substantial improvements to the performance and functionality of the instrument banks -
improving load times and disambiguation of bank/instrument names from merges. It also included a new dedicated button for opening the MIDI CC
controls window. These controls were often overlooked, as they were previously only accessible by right-clicking the Controllers button.
After general agreement, triggering a program change for a part will now always enable that part - controls that disabled that behaviour were
removed (the behaviour can still be achieved via NRPN, if desired).
Other changes included easier navigation to favourites in the file browser, and fixing an issue where the user guide did not open instantly.
</p>
<p>November 29th of 2021 saw the release of 2.1.2, where development was mostly focussed on the gui - fixing positioning issues and making most controls of the resonance window MIDI-learnable.</p>
<p>
Yoshimi 2.2.0 was released in May 2022, and saw some major features and improvements.
<span class="person">Hermann</span> implemented threaded recalculation and live transitions between wave tables for the padsynth engine.
When coupled with midi learnable recalculation (as well as the ability to self-trigger recalculation with random walk)
it greatly increased the power and flexibility of that engine. Hermann also made many improvements to the internals, particularly in the area of filters (reverb and analog).
The first version of a long awaited undo/redo feature was added, allowing for a much nicer experience when developing and tweaking instruments.
The undo/redo supports the vast majority of actions that can be performed in the gui (or cli).
Support for setting a default BPM was provided by <span class="person">Kristian</span>.
In addition, a lot of bugs were fixed and a great deal of work went into adapting the gui for the new features.
</p>
<p>
Versions 2.2.1 and 2.2.2 brought a number of bugfixes, a few new instruments, and a reset button for the part editor.
</p>
<P>
In 2.2.3, more bugs were fixed, and a couple of instruments were added. Eq bands and formant filters had their counters changed to start from 1 instead of 0. The formant filter editor was also changed to mark unused vowels, and a long-lived text resize issue was fixed.
</p>
<p>
At the end of May in 2023, after a gruelling development cycle, version 2.3.0 was released. It included new instruments from Art and Lorenzo, numerous improvements to the gui, code improvements, bug fixes, and engine improvements. The most prominent of the new features was making the gui themeable, with both bundled and customizable themes. The knobs and sliders were also changed to mark when they deviate from their default values. On the engine side of things, certain envelopes and sliders that were previously limited to integer increments were changed to support floating point values, lending more control over sound design in some areas.
</p>
<p>
In mid-October of 2023, 2.3.1 was released. It added the ability to export Scala tunings and keymaps, and improved keymap handling among other smaller fixes.
In the meantime a lot of work was put in to improve the user guide and reference manual, primarily by <span class="person">Art Horan</span>
</p>
<p>
2.3.2 was released about four months later, introducing independently controllable left/right delay for the echo effect and a couple of new instruments. Behind the scenes, there were also considerable work on code consistency and documentation, as well as numerous small gui improvements and bug fixes.
</p>
<p>And the story continues...</p>
</div>
</main>
</div>
<footer>
<a href="about.html" >About</a><a href="history.html" style="font-weight:bold">History</a><a href="people.html" >People</a><a href="contact.html" >Contact</a>
</footer>
</body>
</html>