12004-06-15 :    Release 0.2.8
2
32004-06-15 :    src/Makefile.am:
4                    Removed loopotron for now.
5                src/quantiser.so.c,
6                src/sequencer.so.c:
7                    Use macros for 'f' math functions (sinf and friends).
82004-06-13 :    Makefile.am,
9                configure.in:
10                    Now using installed gettext.
11                ABOUT-NLS
12                config.rpath,
13                config.sub,
14                m4/codeset.m4,
15                m4/gettext.m4,
16                m4/glibc21.m4,
17                m4/iconv.m4,
18                m4/intdiv0.m4,
19                m4/inttypes-pri.m4,
20                m4/inttypes.m4,
21                m4/inttypes_h.m4,
22                m4/isc-posix.m4,
23                m4/lcmessage.m4,
24                m4/lib-ld.m4,
25                m4/lib-link.m4,
26                m4/lib-prefix.m4,
27                m4/nls.m4,
28                m4/po.m4,
29                m4/progtest.m4,
30                m4/stdint_h.m4,
31                m4/uintmax_t.m4,
32                m4/ulonglong.m4,
33                po/Makefile.in.in
34                po/Makevars.template
35                po/Rules-quot
36                po/boldquot.sed
37                po/en@boldquot.header
38                po/en@quot.header
39                po/insert-header.sin
40                po/quot.sed
41                po/remove-potcdate.sin:
42                    All of these are now symlinks to installed gettext,
43                    and have been removed from the repository.
442004-05-02 :    src/include/math_func.h:
45                    Moved #include <math.h> below float_cast.h
46                    float_cast.h may define ISO C99, which needs
47                    to be defined prior to math.h so that the C99
48                    lrint and lrintf functions are used
49                src/include/float_cast.h:
50                    #define's to avoid including multiple times
51                src/include/common.h:
52                    Removed redundant f_trunc_i
532004-04-30 :    configure.in:
54                    Oops. Check for sinf, not sinff
55                src/quantiser.so.c,
56                src/sequencer.so.c:
57                    No need to free port names - static data
582004-04-15 :    doc/blop.rdf:
59                    Fixed Quantiser tags
602004-04-11 :    doc/plugins_list.txt,
61                src/dahdsr_2021.so.c:
62                    Added control-rate gate and trigger variant
63                src/tracker_2025.so.c,
64                    Changed copyright year to year written
65                src/difference_2030.so.c,
66                src/ratio_2034.so.c:
67                    Renamed labels to reflect port names
68                    Changed copyright year to year written
69                po/blop.pot,
70                po/de.po,
71                po/en_GB.po:
72                    Regenerated translations
73                doc/blop.rdf:
74                    Added DAHDSR, Ratio and Difference plugins
752004-03-17 :    src/include/math_func.h:
76                    New file
77                    Hide math functions behind defines to allow
78                    substitution of sin for sinf etc where needed
79                configure.in:
80                    Changes for sinf detection - now sets HAVE_SINF
81                src/include/common.h,
82                src/include/interpolate.h,
83                src/include/wavedata.h,
84                src/amp_1654.so.c,
85                src/fmod_1656.so.c,
86                src/random_1661.so.c,
87                src/tracker_2025.so.c:
88                    Replaced sinf, expf etc with defined equivalent
89                doc/plugins_list.txt,
90                src/Makefile.am
91                src/difference_2030.so.c,
92                src/ratio_2034.so.c:
93                    New plugins
94                src/product_1668.so.c,
95                src/sum_1665.so.c,
96                src/triangle_1649.so.c:
97                    Minor comment corrections
98                src/sync_square_1678.so.c:
99                    No need for math.h
100                intl/plural.c,
101                po/blop.pot,
102                po/de.po,
103                po/en_GB.po:
104                    Updated message positions and for new plugins
1052004-01-20 :    src/include/wavedata.h,
106                src/wdatutil.c:
107                    Fixed phase offset bug
1082004-01-11 :    src/triangle_1649.so.c:
109                    Fixed silly mistake in applying scale factor
1102003-12-25 :    src/include/wavedata.h,
111                src/include/wdatutil.h,
112                src/wavedata.c,
113                src/wavegen.c,
114                src/wdatutil.c:
115                    Changes to wavedata generation - now all static
116                    data in separate dll. No SHM anymore...
117                src/pulse_1645.so.c,
118                src/sawtooth_1641.so.c,
119                src/square_1643.so.c,
120                src/triangle_1649.so.c:
121                    Changes to use new wavedata.
122                configure.in:
123                    Removed check for POSIX SHM
124                src/include/common.h,
125                src/include/float_cast.h,
126                src/include/interpolate.h,
127                src/include/lp4pole_filter.h,
128                src/Makefile.am,
129                src/adsr_1653.so.c,
130                src/adsr_1680.so.c,
131                src/amp_1654.so.c,
132                src/branch_1673.so.c,
133                src/dahdsr_2021.so.c,
134                src/fmod_1656.so.c,
135                src/interpolator_1660.so.c,
136                src/lp4pole_1671.so.c,
137                src/lp4pole_filter.c,
138                src/product_1668.so.c,
139                src/quantiser.so.c,
140                src/random_1661.so.c,
141                src/sequencer.so.c,
142                src/sum_1665.so.c,
143                src/sync_pulse_2023.so.c,
144                src/sync_square_1678.so.c,
145                src/tracker_2025.so.c:
146                    Silly code cleaning. I started, so I finished...
147                po/blop.pot,
148                po/de.po,
149                po/en_GB.po:
150                    Updated for changes in code.
1512003-12-01 :    src/fmod_1656.so.c,
152                src/lp4pole_1671.so.c,
153                src/pulse_1645.so.c,
154                src/random_1661.so.c,
155                src/sawtooth_1641.so.c,
156                src/square_1643.so.c,
157                src/tracker_2025.so.c,
158                src/triangle_1649.so.c:
159                    Logarithmic minima changed to +ve value
160                    for lazy hosts that do a simple log(val).
161                    Assumes 48000 Hz sample rate.
1622003-11-15 :    src/include/wavedata.h,
163                src/wavedata.c:
164                    Added SHM for wavedata.
165                src/Makefile.am,
166                configure.in:
167                    Added shm as option.
1682003-11-09 :    src/amp_1654.so.c,
169                src/fmod_1656.so.c:
170                    Replaced powf with expf (more efficient)
171                src/quantiser.so.c:
172                    Fixed bug in wrapped mode quantiser - subtract, not
173                    assign excess range from input
174                src/sync_pulse_2023.so.c:
175                    Fixed audio rate variant - pulsewidth should be multiple of
176                    sample rate for comparison with phase
177                src/include/wavedata.h,
178                src/wavedata.c,
179                src/wdatutil.c:
180                    Changed to generate a separate data .so which is dlopen()ed
181                    so that the data can be shared between multiple instances.
182                src/pulse_1645.so.c,
183                src/sawtooth_1641.so.c,
184                src/square_1643.so.c,
185                src/triangle_1649.so.c:
186                    Modified to use new .so data instead of #included headers.
187                src/Makefile.am:
188                    Build rules changed to build data as .so, and install
189                    in subdir
190                configure.in:
191                    Added wavedata subdir variable
192                po/blop.pot,
193                po/de.po,
194                po/en_GB.po:
195                    Updated to reflect changed positions of strings in
196                    oscillator plugins
1972003-09-28 :    src/adsr_1653.so.c,
198                src/adsr_1680.so.c,
199                src/amp_1654.so.c,
200                src/branch_1673.so.c,
201                src/dahdsr_2021.so.c,
202                src/fmod_1656.so.c,
203                src/interpolator_1660.so.c,
204                src/lp4pole_1671.so.c,
205                src/product_1668.so.c,
206                src/pulse_1645.so.c,
207                src/quantiser.so.c,
208                src/random_1661.so.c,
209                src/sawtooth_1641.so.c,
210                src/sequencer.so.c,
211                src/square_1643.so.c,
212                src/sum_1665.so.c,
213                src/sync_pulse_2023.so.c,
214                src/sync_square_1678.so.c,
215                src/tracker_2025.so.c,
216                src/triangle_1649.so.c:
217                    Added #include <locale.h> as compiler was complaining about
218                    setlocale(). Strange. It Worked Yesterday (tm).
219                src/quantiser.so.c:
220                    Some fine-tuning and fixed change-trigger.
221                src/Makefile.am:
222                    Removed (added -O0) optimisations for building quantiser, as
223                    -O1 and up break it.
224                configure.in:
225                    Removed redundant -f options from CFLAGS (covered by -O3)
226                po/blop.pot,
227                po/de.po,
228                po/en_GB.po:
229                    Updated since changes to sources
2302003-09-23 :    po/de.po:
231                    German translations from Mario Lang
232                po/blop.pot,
233                po/en_GB.po:
234                    Recreated, omitting plugin labels
235                src/adsr_1653.so.c,
236                src/adsr_1680.so.c,
237                src/amp_1654.so.c,
238                src/branch_1673.so.c,
239                src/dahdsr_2021.so.c,
240                src/fmod_1656.so.c,
241                src/interpolator_1660.so.c,
242                src/lp4pole_1671.so.c,
243                src/product_1668.so.c,
244                src/pulse_1645.so.c,
245                src/quantiser.so.c,
246                src/random_1661.so.c,
247                src/sawtooth_1641.so.c,
248                src/sequencer.so.c,
249                src/square_1643.so.c,
250                src/sum_1665.so.c,
251                src/sync_pulse_2023.so.c,
252                src/sync_square_1678.so.c,
253                src/tracker_2025.so.c,
254                src/triangle_1649.so.c:
255                    Removed gettext marks from plugin labels, as they
256                    mostly won't translate well.
257                Makefile.am:
258                    Cleaned up EXTRA_DIST madness
2592003-09-12 :    src/include/wdatutil.h:
260                    Fixed macro that accidentally worked anyway
261                src/wavedata.c:
262                    No need for stdio.h
2632003-09-09 :    ABOUT-NLS,
264                config.rpath,
265                intl/*
266                m4/*
267                po/ChangeLog,
268                po/Makefile.in.in,
269                po/Makevars.template,
270                po/Rules-quot,
271                po/boldquot.sed,
272                po/en@boldquot.header,
273                po/en@quot.header,
274                po/insert-header.sin,
275                po/quot.sed,
276                po/remove-potdate.sin:
277                    Gettext boilerplate added
278                po/LINGUAS,
279                po/Makevars,
280                po/POTFILES.in,
281                po/blop.pot,
282                po/en_GB.po:
283                    BLOP-specific gettext files added.
284                src/Makefile.am:
285                    For automake 1.5 (needed for gettext)
286                src/include/Makefile.am:
287                    Add gettext.h to dist target
2882003-09-05 :    Makefile.am,
289                configure.in:
290                    gettextize
291                src/include/gettext.h:
292                    Added for gettext use in sources
293                src/adsr_1653.so.c,
294                src/adsr_1680.so.c,
295                src/amp_1654.so.c,
296                src/branch_1673.so.c,
297                src/dahdsr_2021.so.c,
298                src/fmod_1656.so.c,
299                src/interpolator_1660.so.c,
300                src/lp4pole_1671.so.c,
301                src/product_1668.so.c,
302                src/pulse_1645.so.c,
303                src/quantiser.so.c,
304                src/random_1661.so.c,
305                src/sawtooth_1641.so.c,
306                src/sequencer.so.c,
307                src/square_1643.so.c,
308                src/sum_1665.so.c,
309                src/sync_pulse_2023.so.c,
310                src/sync_square_1678.so.c,
311                src/tracker_2025.so.c,
312                src/triangle_1649.so.c:
313                    Added missing semicolon
314                TODO,
315                ChangeLog:
316                    'Proper' dates.
3172003-08-30 :    src/adsr_1653.so.c,
318                src/adsr_1680.so.c,
319                src/amp_1654.so.c,
320                src/branch_1673.so.c,
321                src/dahdsr_2021.so.c,
322                src/fmod_1656.so.c,
323                src/interpolator_1660.so.c,
324                src/lp4pole_1671.so.c,
325                src/product_1668.so.c,
326                src/pulse_1645.so.c,
327                src/quantiser.so.c,
328                src/random_1661.so.c,
329                src/sawtooth_1641.so.c,
330                src/sequencer.so.c,
331                src/square_1643.so.c,
332                src/sum_1665.so.c,
333                src/sync_pulse_2023.so.c,
334                src/sync_square_1678.so.c,
335                src/tracker_2025.so.c,
336                src/triangle_1649.so.c:
337                    Prepared for gettext (marked translatable strings)
3382003-08-27 :    src/include/lp4pole_filter.h,
339                src/adsr_1653.so.c,
340                src/adsr_1680.so.c,
341                src/dahdsr_2021.so.c,
342                src/interpolator_1660.so.c,
343                src/lp4pole_1671.so.c,
344                src/lp4pole_filter.c,
345                src/pulse_1645.so.c,
346                src/quantiser.so.c,
347                src/random_1661.so.c,
348                src/sawtooth_1641.so.c,
349                src/sequencer.so.c,
350                src/square_1643.so.c,
351                src/tracker_2025.so.c,
352                src/triangle_1649.so.c:
353                    Moved initialisation of instance data to activate()
354                    function in each plugin.
355                src/sync_pulse_2023.so.c,
356                src/sync_square_1678.so.c:
357                    As above, plus added TOGGLED hint for gate port.
358                TODO:
359                    Added stuff that needs to be done :)
3602003-08-23 :    src/adsr_1653.so.c,
361                src/adsr_1680.so.c,
362                src/dahdsr_2021.so.c,
363                src/sequencer.so.c:
364                    Set TOGGLED hint for gates and triggers.
3652003-07-02 :    doc/blop.rdf,
366                doc/plugins_list.txt,
367                src/quantiser.so.c,
368                src/Makefile.am:
369                    Added quantiser plugin
3702003-06-30 :    doc/blop.rdf:
371                    Added new plugin info
372                src/adsr_1653.so.c,
373                src/adsr_1680.so.c,
374                src/dahdsr_2021.so.c:
375                    Fixed some (minor) bugs in envelope generation
3762003-06-26 :    src/sync_pulse_2023.so.c,
377                src/tracker_2025.so.c:
378                src/Makefile.am:
379                    Added new signal tracker and pulse clock plugins
3802003-06-15 :    doc/plugin_list.txt,
381                src/dahdsr_2021.so.c,
382                src/Makefile.am:
383                    Added new dahdsr plugin
3842003-06-11 :    configure.in:
385                    Changed displayed default LADSPA path in help
386                    Removed extraneous cpu-type hack
387                src/adsr_1653.so.c,
388                src/adsr_1680.so.c:
389                    Sustain level clipping (result of excessive values too
390                    nasty to let go.
3912003-02-18 :    src/Makefile.am:
392                    Removed $BUILT_SOURCES things and replaced with some
393                    new rules for building oscillators with the generated
394                    headers. This was to get rid of annoying side-effects
395                    of the BUILT_SOURCES and dependencies.
396                Makefile.am:
397                    Removed dist-hook rule - above changes sorted this
398                    problem out.
399                    Added extraneous files to maintainer-clean
4002003-02-18 :    src/include/float_cast.h,
401                acinclude.m4:
402                    Files added - Erik de Castro Lopo's float cast
403                    code for C99 lrintf detection and use
404                src/include/common.h,
405                src/include/interpolate.h,
406                src/include/lp4pole_filter.h,
407                src/include/wavedata.h,
408                src/include/wdatutil.h,
409                src/pulse_1645.so.c,
410                src/sawtooth_1641.so.c,
411                src/square_1643.so.c,
412                src/triangle_1649.so.c,
413                src/wavedata.c:
414                    Some header shuffling to get float cast stuff
415                    to work right.
4162003-02-05 :    src/sequencer16_1677.so.c,
417                src/sequencer32_1676.so.c,
418                src/sequencer64_1675.so.c:
419                    Files replaced by single common source file compiled
420                    with different defines to make maintenance easier
421                src/sequencer.so.c:
422                    New common source file for sequencers
423                src/Makefile.am:
424                    Fiddling to get three sequencers built from single source
4252003-02-04 :    src/sequencer16_1677.so.c,
426                src/sequencer32_1676.so.c,
427                src/sequencer64_1675.so.c:
428                    Fixed declarations-after-statements bug that
429                    broke build on older compilers.
4302003-02-02 :   doc/blop.rdf:
431                    Output port info added
4322003-02-01 :    src/fmod_1656.so.c,
433                src/pulse_1645.so.c,
434                src/random_1661.so.c,
435                src/sequencer16_1677.so.c,
436                src/sequencer32_1676.so.c,
437                src/sequencer64_1675.so.c,
438                src/sync_square_1678.so.c,
439                src/triangle_1649.so.c:
440                    Names changed in source
441                doc/plugins_list.txt:
442                    Updated to reflect name changes
443                doc/blop.rdf:
444                    Added title, creator and rights information
4452003-01-29 :    Fixed sequencer plugins - now have option of resetting
446                 to fixed value or keeping the last value output when
447                 the gate is closed.
448                Added blop.rdf
449                Made --enable-small-wavedata create smaller tables. Still
450                 good quality output...
4512003-01-26 :    Added defaults for some of the plugins
4522003-01-25 :    configure.in
453                    Added option to generate smaller wavetable data
454                    [--enable-small-wavedata]
455                src/include/lp4pole_filter.h
456                    Made lp4pole tuning independent of sample rate
457                src/include/lut_144log2.h,
458                src/include/lut_tanh.h,
459                src/tuned_lp4pole_1679.so.c
460                    Removed this filter - it's actually worse tuning
461                    wise than the regular one!
4622003-01-24 :    Slight performance increase for lp4pole filter by
463                 storing state in a struct.
464                src/include/lp4pole_filter.h,
465                src/lp4pole_filter.c
466                    Contains code to setup and run filter instance
467                src/lp4pole_1671.so.c
468                    Plugin instance data removed - now in above filter
469                    code. Calls added to run filter using new code.
4702003-01-23 :    Improved performance of oscillators (16-89% faster!)
471                src/include/interpolate.h
472                    Moved wavetable stuff to src/include/wavedata.h
473                src/include/wavedata.h,
474                src/wavedata.c
475                    Extra member data to hold playback state of
476                    oscillator.
477                src/pulse_1645.so.c,
478                src/sawtooth_1641.so.c,
479                src/square_1643.so.c,
480                src/triangle_1649.so.c
481                    Removed instance data, now held in wavedata
482                    instance. Simplified running of oscillator.
483                src/Makefile.am
484                    Some minor dependency changes.
4852003-01-15 :    Argh! Just about to release 0.2.6, and I find nasty bugs,
486                 and slowness...
487                Restored original (0.2.5) low pass filter, and created new
488                 pair of plugins for the tuned one, as it is much more
489                 cpu-intensive (about 4x!)
4902002-12-23 :    Some further modifications to wavetable business for the
491                 oscillators. With the exception of the (very short)
492                 one for phase wrapping, all code runs without any
493                 branches.
494                src/include/wavedata.h,
495                src/include/interpolate.h,
496                src/pulse_1645.so.c,
497                src/sawtooth_1641.so.c,
498                src/square_1643.so.c,
499                src/triangle_1649.so.c,
500                src/wavedata.c:
501                    Reworked code to remove branches.
502                src/include/wdatutil.h,
503                src/wavedata.c,
504                src/wavegen.c,
505                src/wdatutil.c
506                    Removed lowest_harmonic things - not needed.
5072002-12-19 :    Major changes to the oscillators' wavetable playback
508                 as I clearly hadn't thought it through - the cross-fade
509                 of extra harmonics was causing discontinuities due
510                 to the gibbs compensation not matching. This has
511                 now been fixed, and the output is much improved.
512                src/include/wavedata.h,
513                src/include/wdatutil.h,
514                src/wavedata.h,
515                src/wavegen.c,
516                src/wdatutil.c:
517                    Changes to wavetable pair data to allow for
518                    differing gibbs compensation. Some other minor
519                    bug fixes.
520                src/include/interpolate.h:
521                    Changes to getSamples to cross fade pairs of
522                     tables instead of simply fading in extra harmonics.
523                    Also removed some branching from the table lookup.
524                src/pulse_1645.so.c,
525                src/sawtooth_1641.so.c,
526                src/square_1643.so.c,
527                src/triangle_1649.so.c:
528                    Removed some branching from code.
5292002-12-17 :    Further work on lowpass filter to eliminate some
530                 instabilities (runaway values resulting in
531                 noise/NaN).
532                src/include/l2table.h:
533                    renamed to lut_144log2.h
534                src/include/lut_tanh.h:
535                    added
536                src/Makefile.am:
537                    modified dependencies
538                src/lp4pole.so.c:
539                    tuned and smooth clipped
540
541                Dist rule: make dist was keeping the CVS directory
542                 under src/include in the dist. Now fixed:
543                src/include/Makefile.am:
544                    Added and specified headers etc.
545                src/Makefile.am:
546                    Adjusted to make include a subdir
547                configure.in:
548                    Added src/include/Makefile create
5492002-12-10 :    Tuned lowpass filter
550                Added log 2 based table lookup
551                src/include/l2table.h
552                src/Makefile.am
553                src/lp4pole_1671.so.c
5542002-11-24 :    Added analogue sequencer and sync oscillator
555                Modified wavegen to allow note skip (allows smaller
556                  wavedata - e.g. to fit in cpu cache)
557                Some minor bugfixes and updates
5582002-11-09 :    configure.in:
559                    Removed -march flags from CFLAGS, as was causing
560                    problems on some architectures
5612002-11-02 :    (After a looooooonnnnnnggg period of inactivity)
562                  I added a branch plugin. Woohoo...
5632002-09-24 :    configure.in:
564                    Added check for getopts
5652002-08-12 :    Changed plugin names to show port types.
566                 <grr>
567                   Much that I am loathe to duplicate information,
568                   most modular synths don't show other info, and
569                   rely on names being unique
570                 </grr>
5712002-07-15 :    Fixed NaN output bug in lowpass filter - clamped
572                 resonance to [0.0, 4.0]. I know it's in the range
573                 hints, but plugging an LFO into it (for example)
574                 *can* cause the bounds to be exceeded.
5752002-07-14 :    Added low pass resonant filter plugin
5762002-07-10 :    blop_ prefix removed from plugins - this can be done
577                 at configure time using --program-prefix=FOO
5782002-07-10 :    Okay. Some compromises made so automake will be nice
579                 to me...
580                src/wavegen.c,
581                src/wdatutil.c:
582                    Moved to parent
583                src/wavegen:
584                    Removed
585                Makefile.am,
586                configure.in,
587                src/Makefile.am:
588                    Some finagling to differentiate a plugin build
589                    from a regular program build.
590                    More fudgin to get 'make dist' to work.
5912002-07-09 :    Argh - except the result of make dist just plain
592                 does not work (seems to ignore building of
593                 data headers first.)
5942002-07-08 :    Tested all new plugins and new build system
595                 - all A-OK!
5962002-07-06 :    Complete revision of directory structure:
597
598                doc/Makefile.am
599                doc/about.txt
600                doc/plugins_list.txt
601                src/include/common.h
602                src/include/interpolate.h
603                src/include/wavedata.h
604                src/include/wdatutil.h
605                src/wavegen/Makefile.am
606                src/wavegen/wavegen.c
607                src/wavegen/wdatutil.c
608                src/Makefile.am
609                src/blop_adsr.so.c
610                src/blop_amp.so.c
611                src/blop_fmod.so.c
612                src/blop_interpolator.so.c
613                src/blop_product.so.c
614                src/blop_pulse.so.c
615                src/blop_random.so.c
616                src/blop_sawtooth.so.c
617                src/blop_square.so.c
618                src/blop_sum.so.c
619                src/blop_triangle.so.c
620                src/wavedata.c
621                AUTHORS
622                COPYING
623                ChangeLog
624                INSTALL
625                Makefile.am
626                NEWS
627                README
628                THANKS
629                TODO
630                config.h.in
631                configure.in
632                stamp-h.in
633-------------------------------------------------------------------------------
6342002-06-19 :    adsr.so.c:
635                    New files - an adsr envelope generator and a
636                    control-to-audio interpolator.
6372002-06-18 :    random.so.c:
638                    New file - generates a random wave of varying
639                    smoothness - sorta like random noise thru a
640                    filter.
6412002-06-17 :    amp.so.c,
642                fmod.so.c,
643                lmod.so.c:
644                    New files added - these are additional plugins to
645                    complement the oscillators. They are not released
646                    yet. Also planning to add an ADSR, a Control-to-Audio
647                    interpolator and a Randomizer (sort of sample-and-hold,
648                    but not). All these scheduled for release 0.3.
6492002-06-16 :    pulse.so.c,
650                sawtooth.so.c,
651                square.so.c,
652                triangle.so.c:
653                    Modified my email address, replaced '@' with '[at]',
654                    cos I've been getting spam! (ARGH!)
6552002-06-14 :    pulse.so.c,
656                sawtooth.so.c,
657                square.so.c,
658                triangle.so.c:
659                    Modified to only advance the phase (position) for
660                    frequencies below Nyquist (this is to prevent the phase
661                    from drifting too high - this can happen for very large
662                    frequencies, and causes instability)
6632002-06-09 :    Makefile:
664                    Added GIBBS variable to allow setting of Gibbs
665                    compnesation argument to wavegen.
666                include/wdatutil.h,
667                wavegen.c,
668                wdatutil.h:
669                    Improved Gibbs compensation - can now set degree of
670                    compensation, from none to maximum. Maximum will now
671                    almost completely eliminate overshoot, and the resulting
672                    waveform is pretty much normalised to [-1,1] as a result!
6732002-06-08 :    wdatutil.h:
674                    Gibbs compensated parabola generation was skipping the
675                    even harmonics - fixed.
676                Makefile:
677                    Modified wavedata header rules to use prefix, following
678                    addition of prefix option to wavegen.
679                wavedata.h:
680                    Moved the extraction of wavedata header data to top of
681                    function for clarity.
682                wavegen.c,
683                wdatutil.c:
684                    Some other changes to the format of the wavedata header
685                    file output by wavegen - now allows specification of
686                    unique prefix for declarations - this is so more than
687                    one such header may be included in code.
688                include/wdatutil.h,
689                wavegen.c,
690                wdatutil.c:
691                    Alterations to fix wave generation for square and
692                    parabola waves - base and extra harmonics now
693                    generated with respect to actual harmonic content
694                    (both square and parabola only contain odd harmonics).
695                    Previously, some of the extra samples were ending up
696                    zeroed because they were just a single even harmonic.
6972002-06-07 :    README:
698                    A bit more text about bandlimiting methods.
699                include/interpolate.h,
700                include/wavedata.h,
701                wavedata.c:
702                    Revised to work with the new wavedata file contents.
703                include/wdatutil.h,
704                wavegen.c,
705                wdatutil.c:
706                    Finalised changes to wavedata file format and content.
707                    Now each wavetable has two sets of data as before, but
708                    one set contains harmonics that would be played at
709                    all pitches in range, and the other contains the 'extra'
710                    higher harmonics that are faded in as pitch decreases.
7112002-06-06 :    include/wdatutil.h,
712                wavegen.c,
713                wdatutil.c:
714                    Change to the format of the intermediate data before
715                    it is written to the header file. More structured
716                    representation, instead of lots of huge allocated
717                    memory (which would not necessarily be contiguous,
718                    and if not, the code would fail).
719                    Work on new method for cross fading wavetables of
720                    differing harmonics.
7212002-06-05 :    include/interpolate.h:
722                    Further investigation into the abberation in the
723                    triangle wave. The likely cause was the two parabola
724                    waves were not being queried in sync - resulting in
725                    the wrong sample being retrieved in some cases.
7262002-06-04 :    include/interpolate.h:
727                    The triangle plugin was putting out NaNs for very
728                    small slopes (where the output approaches a sawtooth
729                    wave) - further investigation revealed that there
730                    was an aberration at the cross-over point (where
731                    the amplitude crosses zero).
732                    Some work on the getSamples function seemed to
733                    remove the problem.
7342002-06-02 :    TODO:
735                    Removed notes about optimisation: avltree lookup
736                    is only faster because special cases were not
737                    being handled - these must stay.
738                    Restraints on pulsewidth/slope settings caused
739                    quite nasty artifacts, so the double interpolation
740                    in pulse and traingle plugins has to stay.
741                include/interpolate.h,
742                wavedata.c,
743                wavegen.c,
744                wdatutil.c:
745                    Minor changes and some more comments
746                pulse.so.c:
747                    Pulsewidth now clamped to [0.0,1.0]
748                triangle.so.c:
749                    Slope clamped to [min, max] (dependent on
750                    sample rate)
7512002-06-01 :    include/interpolate.h,
752                wdatutil.c,
753                wavegen.c,
754                wavedata.c:
755                    Modified wavetables to have an extra 3 samples
756                    per table - this allows interpolation to be done
757                    without too much bounds checking on sample index.
758                    A small speed increase results!
759                wdatutil.c:
760                    Parabola wave generation was using the wrong
761                    scale factor, resulting in the triangle plugin
762                    having huge amplitudes compared to the rest.
763                    This has been fixed.
7642002-05-31 :    include/wdatutil.h,
765                wavegen.c,
766                wdatutil.c:
767                    More farting about with the format. Now only
768                    generates wavetables that will be cross faded
769                    upon playback (rather than filling the last
770                    one with zeroes)
771                include/wavedata.h,
772                wavedata.c:
773                    Some slight changes to add the three 'special
774                    case' wavetables that are played at the extreme
775                    frequencies
776                include/interpolate.h:
777                    Finalised getTable - now it *does* return, and
778                    it returns that wavetable to play. Some changes
779                    to accommodate the special case wavetables.
780                    getSamples now incorporates the new special cases,
781                    and the cross fade. But it could do with improvement.
782                    getXFadeScale is no more.
783                pulse.so.c,
784                sawtooth.so.c,
785                square.so.c,
786                triangle.so.c:
787                    Updated to use new interpolate.h functions. Some
788                    declarations added for getSamples (rather than
789                    having these variables declared every sample, which
790                    consumes a measurable amount of CPU)
7912002-05-30 :    include/interpolate.h
792                    Changed getTable from returning true/false to
793                    void - no need for this anymore, as cross fade
794                    testing will be done in getSamples.
795                pulse.so.c,
796                sawtooth.so.c,
797                square.so.c,
798                triangle.so.c:
799                    Removed table_found check - getTable no longer
800                    returns.
8012002-05-29 :    include/interpolate.h,
802                include/wavedata.h,
803                pulse.so.c,
804                sawtooth.so.c,
805                square.so.c,
806                triangle.so.c,
807                wavedata.c:
808                    Modified to use new wavetable pairs for cross fading.
809                    Most of the crap is now in interpolate.h::getSamples.
8102002-05-28 :    include/wdatutil.h,
811                wavegen.c,
812                wdatutil.c:
813                    Modified to generate wavetable 'pairs' for cross
814                    fading between successive wavetables. This will
815                    allow sample retrieval for cross-faded wavetables
816                    to use only one interpolation op (as opposed to two)
8172002-05-26 :    TODO
818                    Notes about optimisation - namely, too many interpolates!
819                include/interpolate.h,
820                pulse.so.c,
821                sawtooth.so.c,
822                square.so.c,
823                triangle.so.c
824                    Separated out sample extraction from interpolation
825                    code. getSamples get's four samples and returns
826                    the interval. INTERPOLATE function (now a #define)
827                    actually does the interpolation.
8282002-05-24 :    include/interpolate.h
829                    Experiments with cubic vs. 5th order spline resulted in
830                    the cubic spline being the winner (as it's faster, and
831                    is a fly's hair's whisker away from the 5th order...)
8322002-05-23 :    include/avltree.h,
833                avltree.c:
834                    Removed these two files following confirmation
835                    that new lookup vector works properly.
836                Makefile:
837                    Removed avltree dependencies.
8382002-05-22 :    pulse.so.c,
839                sawtooth.so.c,
840                square.so.c,
841                triangle.so.c:
842                    Implemented new table lookup based on simple vector
843                    instead of binary tree.
844                include/wavedata.h,
845                include/wdatutil.h,
846                wavedata.c,
847                wdatutil.c,
848                wavegen.c:
849                    Modifications to replace tree lookup with new vector
850                    lookup (indexed on max harmonic number)
8512002-05-20 :    pulse.so.c,
852                sawtooth.so.c,
853                square.so.c,
854                triangle.so.c:
855                    Moved table lookup to separate (inlined) function
8562002-05-15 :    pulse.so.c,
857                sawtooth.so.c,
858                square.so.c,
859                triangle.so.c:
860                    Cubic spline interpolation (no, it's a 5th order. Silly
861                    old me didn't have a clue...)
862
8632002-05-14 :    INSTALL:
864                    Minor clarifications.
865                AUTHORS:
866                    Added some acknowledgements :)
867                include/wavedata.h,
868                include/wdatutil.h,
869                wavedata.c,
870                wavegen.c,
871                wdatutil.c:
872                    Changed wavedata file to pass maximum harmonics instead
873                    of min and max frequencies. Wavedata sample rate is now
874                    independent of sample rate used in plugins (as it should
875                    be).
876                include/avltree.h,
877                include/wavedata.h,
878                include/wdatutil.h,
879                pulse.so.c,
880                sawtooth.so.c,
881                square.so.c,
882                triangle.so.c,
883                wavedata.c,
884                wavegen.c,
885                wdatutil.c:
886                    Changed data types from float to LADSPA_Data for consistency
887                    Some tidying up.
888
8892002-05-12 :    Initial code put together
890