-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changelog.txt
459 lines (358 loc) · 16.9 KB
/
Changelog.txt
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
Tale's JSFX Pack
v20230711 (11 July 2023)
+ lfo/four/poly: Added BP filtered square approximation.
+ waveform_generator: Added BP filtered square approximation.
v20230527 (27 May 2023)
+ music_box: Added toy music box synth plug-in.
+ pc_speaker: Added PC speaker square wave synth plug-in.
v20230212 (12 February 2023)
+ mono_synth/drum_synth: Added instrument tag.
v20221124 (24 November 2022)
+ midiq: Added SysEx support to simple interface.
+ midiq: Minor nitpicks/optimizations.
+ lcg: Optimized random generators for speed.
+ Updated system requirements to REAPER v4.60+.
v20220621 (21 June 2022)
+ drum_synth: Fixed Bass Drum 2 filter reset.
+ rbj: Optimized filter setting functions.
+ rbj: Deprecated scale coefficient function.
+ lfo: Added rounded square/rectangle, tanh approximation.
+ poly: Added stepped sine.
+ waveform_generator: Added polyBLEP stepped sine.
v20211224 (24 December 2021)
+ four/lfo/poly: Added alternating/bipolar camel sine.
+ poly: Added (incorrect) cycloid.
+ waveform_generator: Added alternating/bipolar camel sine,
polyBLEP cycloid.
+ waveform_generator: Tweaked draw waveform offset.
+ zdf: Added specialized set LP/HP/BP.
+ zdf/rbj: Nitpicked/optimized bandwidth to Q.
+ Documentation: Minor ZDF SVF improvements, recalculated LFO RMS values
with zero DC.
+ Happy holidays!
v20210110 (10 January 2021)
+ waveform_generator: Added polyBLEP LP/HP filtered square/saw.
+ waveform_generator: Fixed naive LP/HP filtered square gain.
+ waveform_generator: Added Retina support.
+ poly: Optimized hard sync saw.
v20210103 (3 January 2021)
+ insert_to_bus: Added insert to bus convertor plug-in.
+ four/lfo/poly: Added hyper triangular wave.
+ poly: Added hard sync saw.
+ lfo: Optimized modified triangle, LPF square order 2 approximation.
+ lfo: Deprecated "fast" exp(x) approximation.
+ 2021: Happy New Year!
v20200730 (30 July 2020)
+ four/lfo/poly: Added square/saw minus fundamental, integrated LPF square
approximations.
+ poly: Added stepped triangle/saw, fixed parabola.
+ os: Normalized/fixed up/downsample gain.
+ examples: Added waveform generator/viewer.
+ covid-19: Stay safe!
v20191125 (25 November 2019)
+ midi_vibrato: Fixed Poly to Channel Aftertouch conversion.
v20191124 (24 November 2019)
+ midi_vibrato: Added MIDI vibrato via Pitch Bend plug-in.
+ colored_noise: Improved stereo width.
+ drum_synth: Fixed GUI pad trigger, optimizations.
+ four/lfo/poly: Added cubic saw, saw pulse, sine saw waveforms.
+ lfo/poly: Many (minor) optimizations.
+ uint: Added 32/64-bit absolute value, signed/unsigned/float convertors.
+ Documentation nitpicks.
v20190122 (22 January 2019)
+ zdf_filter: Added multimode zero-delay feedback (ZDF) filter effect.
+ tube_amp: Corrected PDC delay at 8x oversampling.
+ rc_filter: Minor optimizations/nitpicks.
+ array: Optimized find while loop, return value.
+ array: Fixed single column init typo.
+ array: Fixed find searching past end of buffer.
+ four: Added hard sync saw.
+ lfo: Minor optimizations, added precise sin/cos.
+ midiq: Added alternate rewind/collect functions.
+ poly: Added parabola, bipolar squared sine waveforms.
+ poly: Added band-limited curve polynomial.
+ rbj: Added set gain, dry/wet modifiers.
+ rbj: Added Transposed Direct Form 2.
+ rbj: Renamed reset Direct Form 1, 2.
+ zdf: Added set gain modifier.
+ zdf/rbj: Added optional input value to reset.
+ zdf/rbj: Removed set bypass/mute.
+ Has it really been 464 days, WTH?!
v20171015 (15 October 2017)
+ drum_synth: Added GUI.
+ drum_synth: Added bass drum 2, shaker, sticks.
+ colored_noise: Added notch filter.
+ Changed license of plug-ins to LGPL.
+ Changed license of libraries/examples to WTFPL.
+ Renamed fft_synth[esis], noise[_generator], oversample[r],
sine[_oscillator], wavetable[_oscillator], window[_functions] .jsfx-inc
libraries; added legacy versions for backward compatibility.
+ cplx: Added complex.jsfx-inc complex math library.
+ uint: Added uint.jsfx-inc 32/64-bit unsigned integer operations library.
+ four: Added fft_real_synth.jsfx-inc real FFT version of Fourier synthesis
library.
+ four: Added alternating sine, bipolar squared sine, camel sine,
HP filtered saw approximation, HP filtered square, integrated saw,
logit approximation, LP filtered square approximations, pulse sine,
uneven staircase, variable pulse width staircase waveforms.
+ four: Added four_setf(note, tuning) to set MIDI note frequency.
+ four: Added get RMS from Fourier coefficients.
+ lfo: Added alternating sine, bipolar squared sine, camel sine,
HP filtered saw approximation, HP filtered square, integrated saw,
logit approximation, LP filtered square approximations, pulse sine,
uneven staircase, variable pulse width staircase waveforms.
+ lfo: Improved fast sine/cosine approximations.
+ lfo: Added lfo_setf(note, tuning) to set MIDI note frequency.
+ poly: Added alternating sine, camel sine, half-wave rectified saw,
HP filtered saw approximation, integrated saw, logit approximation,
LP filtered square approximations, pulse sine, uneven staircase,
variable pulse width half-wave rectified sine, variable pulse width
staircase waveforms.
+ poly: Added poly_setf(note, tuning) to set MIDI note frequency.
+ sin: Added sin_setf(note, tuning) to set MIDI note frequency.
+ wave: Added wave_setf(note, tuning) to set MIDI note frequency.
+ midiq: Added simple ("queueless") interface.
+ midiq: Validate incoming MIDI messages.
+ wnd: Added confined Gaussian, Dolph-Chebyshev, Planck-Bessel,
Planck-taper, Rife-Vincent class II/III window functions.
+ wnd: Deprecated average functions.
+ zdf: Added multi-mode filter function.
+ Improved/updated examples, documentation.
+ Many (minor) optimizations.
+ mono_synthGUI/wavetable_synth: No longer supported, but still included
for legacy's sake.
+ Happy birthday, Martin! :-)
v20160802 (2 August 2016)
+ array: Added get last row pointer.
+ lfo/poly: Optimized x^2 as sqr(x).
+ zdf: Fixed/simplified peaking EQ/low/high-shelf.
+ Added mono/poly synth array example.
+ Americanized documentation.
v20160228 (28 February 2016)
+ wnd: Added Rife-Vincent class I.
+ wnd: Added average functions.
+ wnd: Updated/improved examples.
+ wnd: Improved documentation.
v20160222 (22 February 2016)
+ wnd: Added window_functions.jsfx-inc window function library.
+ Added window function viewer example.
+ Added Low-pass windowed FIR/FFT filter examples.
v20151121 (21 November 2015)
+ mono_synthGUI: Added GUI version of mono_synth (thanks argee!).
+ four: Limited harmonic count to half FFT size.
v20151107 (7 November 2015)
+ wave: Optimized Catmull-Rom spline interpolation.
+ wave: Added Hermite, B-spline, 2nd-order-osculating interpolation.
+ wave: Fixed Lagrange interpolation.
v20151101 (1 November 2015)
+ wavetable_synth: Added cycloid wavetable.
+ wavetable_synth: Adjusted modified square wavetable pulse width.
+ Added icon to Windows installer.
+ Fixed compatibility warning after closing installer on Windows 10.
+ four: Added naive Fourier series summation.
+ Minor library documentation improvements.
v20151025 (25 October 2015)
+ poly: Optimized half-wave rectified sine, triangular pulse, trapezoid.
+ lfo/four: Added parabola, cycloid.
v20151024 (24 October 2015)
+ rc_filter/tube_amp: Improved RC filter precision.
+ four: Added fft_synthesis.jsfx-inc FFT bandlimited synthesis library.
+ four: Added fourier_series.jsfx-inc Fourier series waveforms library.
+ wave: Added wavetable_oscillator.jsfx-inc wavetable oscillator library.
+ lfo: Reimplemented sine as Maclaurin series.
+ lfo: Added (Maclaurin series) cosine, ramp, variable pulse width
half-wave rectified sine, half-wave rectified saw, LP filtered square,
HP filtered saw, stepped sine, stepped triangle, stepped saw,
hard sync saw.
+ lfo: Optimized modified triangle, full-wave rectified sine, circle.
+ lfo: Corrected phase of full-wave rectified sine, triangular pulse.
+ lfo: Fixed sample and hold skipping first sample.
+ poly: Added cosine, ramp.
+ poly: Optimized triangle, rectangle, modified triangle, modified square,
half-wave rectified sine, triangular pulse.
+ poly: Corrected phase of full-wave rectified sine, triangular pulse.
+ poly: Fixed triangular pulse global instead of local variable typo.
+ sin: Optimized sync phase.
+ rc: Added high precision setting/filter functions.
+ rc: Optimized setting/filter functions.
+ rbj: Reimplemented peaking EQ and low/high shelf.
+ rbj: Added bypass/mute filters.
+ rbj: Added bandwidth/Q convertor functions.
+ rbj: Optimized set frequency, coefficient scaling.
+ zdf: Reimplemented filter setting functions (could break existing code,
see documentation).
+ zdf: Fixed constant peak gain band-pass filter.
+ zdf: Added bypass/mute filters.
+ zdf: Added bandwidth/Q convertor functions.
+ zdf: Optimized set frequency, set feedback precomputation factor, filter
processing.
+ malloc: Added 65,536 item boundary alignment.
+ malloc: Fixed free() being lazy.
+ malloc: Reduced realloc() code size.
+ midiq: Added msg2/3 support to midiq_add().
+ midiq: Changed queue size to number of messages.
+ midiq: Added free MIDI queue buffer.
+ array: Swapped size/num, changed init behavior (could break existing
code, sorry!).
+ array: Added get first/next row pointer.
+ array: Added optional starting point to find.
+ array: Added free buffer.
+ Added tags/author to effects.
+ Improved library documentation.
+ Extracted examples from libraries.
v20150607 (7 June 2015)
+ wavetable_synth: Implemented pan.
+ mono_synth: Fixed initial volume/pan gain.
+ array: Added array.jsfx-inc simple two-dimensional array library.
+ midiq: Added midiq_alloc().
v20150527 (27 May 2015)
+ mono_synth: Added last-note priority to mono mode.
+ mono_synth: Fixed hold pedal releasing replaying notes.
+ os: Added os_os2() for 2x downsampling only.
+ os: Simplified existing example, added second example.
v20150415 (15 April 2015)
+ poly_mono_midi_router: Fixed hanging duplicate notes in round-robin mode.
+ poly_mono_midi_router: Safer MIDI status byte parsing.
v20150414 (14 April 2015)
+ poly_mono_midi_router: Added round-robin.
v20150408 (8 April 2015)
+ drum_synth: Added tambourine, cowbell.
+ drum_synth: Moved/interleaved volume/pan sliders.
+ drum_synth: Tweaked drive.
+ tube_amp: Added tube amp effect.
+ os: Added oversampler.jsfx-inc 2x oversampler library.
v20150405 (5 April 2015)
+ lcg: Reimplemented using Lehmer random number generator (MINSTD).
+ lcg: Optimized random/white noise generators.
+ lcg: Added unit testing.
+ colored_noise/drum_synth/mono_synth: Fixed noise gain depending on sample
rate.
+ poly: Optimized waveform generators.
+ poly: Restored REAPER v4.25..v4.591 support.
v20150322 (22 March 2015)
+ rc_filter: Added multimode RC filter effect.
+ malloc: Added malloc.jsfx-inc dynamic memory management library.
+ wavetable_synth: Added velocity control, phase lock.
+ wavetable_synth: Added combo organ, full organ wavetables.
+ colored_noise/mono_synth/wavetable_synth: Nitpicked gain calculation.
+ rbj: Removed Direct Form I/II instance variables.
+ zdf: Nitpicked gain over Q in documentation.
v20150215 (15 February 2015)
+ drum_synth: Improved low/mid/high tom sound.
+ drum_synth: Optimized drive algorithm, non-multichannel output.
+ wavetable_synth: Extended filter Q range.
+ wavetable_synth: Implemented tuning.
v20150208 (8 February 2015)
+ drum_synth: Added simple drum synth (GM compatible, although incomplete).
+ wavetable_synth: Added paraphonic wavetable synth (work in progress).
+ Improved NSIS installer (added sections, formatted license/changelog).
v20150118 (18 January 2015)
+ colored_noise: Added LP/BP/HP filter.
v20141223 (23 December 2014)
+ mono_synth: Workaround for last touched parameter bug.
v20141220 (20 December 2014)
+ adsr: Fixed instant (0 ms) attack.
+ adsr: Removed sustain -120 dB lower limit.
+ adsr: Don't revert to decay when updating sustain.
+ Added destination folder already exists warning to installer.
v20141212 (12 December 2014)
+ mono_synth: Added mono/poly mode (16 notes max).
+ mono_synth: Added LFO (PWM on PW waveforms, FM otherwise).
+ mono_synth: Added modified square, pulse-width trapezoid/triangular pulse
waveforms.
+ mono_synth: Added velocity control.
+ mono_synth: Fixed instant (0 ms) attack.
+ poly_mono_midi_router: Added MIDI note router.
+ midi_sustain: Added MIDI sustain emulator.
+ colored_noise: Added colored noise generator.
+ sin: Added sine_oscillator.jsfx-inc efficient sine/cosine wave oscillator
library.
+ midiq: Split up msg23 into msg2 and msg3.
+ midiq: Added channel and status byte filters to midiq_collect().
+ midiq: Made midiq_init() buffer size optional.
+ poly: Replaced leaky integrator with polyBLAMP.
+ poly: Optimized high-frequency fade out.
+ poly/lfo: Added variable pulse width trapezoid, modified square.
+ poly/lfo: Removed automatic set default pulse width (fixes/adds zero
pulse width support).
+ lfo: Added sample and hold waveform.
+ lcg: Added grey, black noise.
+ adsr: Improved accuracy when scale != 1.0.
+ adsr: Added reset to off state.
+ zdf/rbj: Added reset filter states.
+ Removed legacy (unsupported) mono_synth.jsfx-inc, poly_blep2x.jsfx-inc,
tone_generator.jsfx-inc libraries.
+ Renewed various library examples.
+ Minor library documentation additions/improvements.
+ Minor fixes/optimisations/nitpicks.
v20130405 (5 April 2013)
+ mono_synth: Added MIDI channel slider.
+ synth: Added synth_all_notes_off() function.
v20130404 (4 April 2013)
+ mono_synth: Added pan slider (0 dB pan law, thanks Justin Frankel!).
v20130401a (1 April 2013)
+ random_midi_notes: Added random MIDI note generator plug-in.
+ lcg: Added rng.lcg_rand2(x) that uses rng.seed.
+ Windows NSIS installer.
v20130401 (1 April 2013)
+ synth: Added mono_synth.jsfx-inc mono synth library.
+ adsr: Added adsr.jsfx-inc ADSR envelope library.
+ mono_synth: Fixed sample drift in ADSR.
+ mono_synth: Fixed retriggering filter decay.
+ tg: Added cacheless rectangle and circle (slow!).
+ tg: Fixed rectangle init not clearing cache.
+ Documentation nitpicks.
v20130323 (23 March 2013)
+ lfo/poly/poly2: Added variable pulse width to tripulse.
+ lfo/poly/poly2/tg: Automatically set default pulse width.
+ poly/poly2: Merged trapezoid and tripulse integrators.
v20130322 (22 March 2013)
+ zdf: Prevent denormals, part deux.
v20130321 (21 March 2013)
+ lcg: Added noise_generator.jsfx-inc noise generator.
+ mono_synth: Implemented new noise generator.
+ zdf: Prevent denormals.
v20130317 (St. Paddy's Day 2013)
+ Added documentation to .jsfx-inc libraries.
+ lfo/poly/tg: Changed phase and pulse width range to 0..1.
+ lfo/poly/tg: Rewrote waveform functions.
+ poly: Rewritten waveform functions are ~30% faster on average.
+ lfo: Added DC offset functions.
+ poly2: Added 2x oversampled polyBLEP tone generator.
+ ab_mono: Added A/B mono plug-in.
+ mono_synth: Fixed waveform when changing to half-wave rectified sine,
Hammond, or staircase.
+ poly: Fixed triangle leaky integrator not initialising to current phase.
+ poly: Fixed initializers resetting leaky integrator feedback coefficient.
v20130214 (14 February 2013)
+ zdf: Added zdf_filter.jsfx-inc zero-delay feedback state variable filter.
+ mono_synth: Replaced RBJ with ZDF filter.
+ mono_synth: Added filter Q slider.
+ lfo: Fixed rectangular wave, oops!
+ rbj: Automatically limit corner frequency.
v20130210 (10 February 2013)
+ mono_synth: Replaced Fourier series with faster polyBLEP tone generator
(poly_blep.jsfx-inc).
+ mono_synth: Added new waveforms (modified triangle, triangular pulse,
Hammond, staircase).
+ mono_synth: Added white noise mix.
+ mono_synth: Added low-pass filter with decay.
+ lfo/tg: Added new waveforms.
+ lfo/tg: Minor changes (added lfo_setdt/tg_setdt).
+ rc: Slightly more efficient frequency setting.
v20120829 (24 January 2013)
+ tg/lfo: Fixed overflow on very high frequencies, part deux.
v20120828 (28 August 2012)
+ mono_synth: Added Pitch Wheel range slider.
+ tg/lfo: Fixed overflow on very high frequencies.
+ tg/lfo: Added sync to negative time values.
v20120817 (17 August 2012)
+ midiq: Fixed offset/timing bug (thanks Fabrizio Benedetti).
+ mono_synth: Optimized 50% pulse as square wave.
v20120810 (10 August 2012)
+ tg: Reduced aliasing.
v20120809a (9 August 2012)
+ Removed denormalization functions.
v20120809 (9 August 2012)
+ Initial release.
Copyright (C) 2012-2023 Theo Niessink