Share

Bandlimited LADSPA Oscillator Plugins

File Release Notes and Changelog

Release Name: 0.2

Notes:
New plugins:
DAHDSR Envelope
Quantiser
Difference
Ratio
Signal Tracker
Clock Pulse Oscillator


Changes: 2004-06-15 : src/Makefile.am: Added missing source -> header dependencies. (Re)added loopotron plugin. src/loopotron_2039.so.c: Loopotron plugin. 2004-06-15 : Release 0.2.8 2004-06-15 : src/Makefile.am: Removed loopotron for now. src/quantiser.so.c, src/sequencer.so.c: Use macros for 'f' math functions (sinf and friends). 2004-06-13 : Makefile.am, configure.in: Now using installed gettext. ABOUT-NLS config.rpath, config.sub, m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, m4/iconv.m4, m4/intdiv0.m4, m4/inttypes-pri.m4, m4/inttypes.m4, m4/inttypes_h.m4, m4/isc-posix.m4, m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4, m4/nls.m4, m4/po.m4, m4/progtest.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4, po/Makefile.in.in po/Makevars.template po/Rules-quot po/boldquot.sed po/en@boldquot.header po/en@quot.header po/insert-header.sin po/quot.sed po/remove-potcdate.sin: All of these are now symlinks to installed gettext, and have been removed from the repository. 2004-05-02 : src/include/math_func.h: Moved #include <math.h> below float_cast.h float_cast.h may define ISO C99, which needs to be defined prior to math.h so that the C99 lrint and lrintf functions are used src/include/float_cast.h: #define's to avoid including multiple times src/include/common.h: Removed redundant f_trunc_i 2004-04-30 : configure.in: Oops. Check for sinf, not sinff src/quantiser.so.c, src/sequencer.so.c: No need to free port names - static data 2004-04-15 : doc/blop.rdf: Fixed Quantiser tags 2004-04-11 : doc/plugins_list.txt, src/dahdsr_2021.so.c: Added control-rate gate and trigger variant src/tracker_2025.so.c, Changed copyright year to year written src/difference_2030.so.c, src/ratio_2034.so.c: Renamed labels to reflect port names Changed copyright year to year written po/blop.pot, po/de.po, po/en_GB.po: Regenerated translations doc/blop.rdf: Added DAHDSR, Ratio and Difference plugins 2004-03-17 : src/include/math_func.h: New file Hide math functions behind defines to allow substitution of sin for sinf etc where needed configure.in: Changes for sinf detection - now sets HAVE_SINF src/include/common.h, src/include/interpolate.h, src/include/wavedata.h, src/amp_1654.so.c, src/fmod_1656.so.c, src/random_1661.so.c, src/tracker_2025.so.c: Replaced sinf, expf etc with defined equivalent doc/plugins_list.txt, src/Makefile.am src/difference_2030.so.c, src/ratio_2034.so.c: New plugins src/product_1668.so.c, src/sum_1665.so.c, src/triangle_1649.so.c: Minor comment corrections src/sync_square_1678.so.c: No need for math.h intl/plural.c, po/blop.pot, po/de.po, po/en_GB.po: Updated message positions and for new plugins 2004-01-20 : src/include/wavedata.h, src/wdatutil.c: Fixed phase offset bug 2004-01-11 : src/triangle_1649.so.c: Fixed silly mistake in applying scale factor 2003-12-25 : src/include/wavedata.h, src/include/wdatutil.h, src/wavedata.c, src/wavegen.c, src/wdatutil.c: Changes to wavedata generation - now all static data in separate dll. No SHM anymore... src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c: Changes to use new wavedata. configure.in: Removed check for POSIX SHM src/include/common.h, src/include/float_cast.h, src/include/interpolate.h, src/include/lp4pole_filter.h, src/Makefile.am, src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/lp4pole_filter.c, src/product_1668.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sequencer.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c: Silly code cleaning. I started, so I finished... po/blop.pot, po/de.po, po/en_GB.po: Updated for changes in code. 2003-12-01 : src/fmod_1656.so.c, src/lp4pole_1671.so.c, src/pulse_1645.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Logarithmic minima changed to +ve value for lazy hosts that do a simple log(val). Assumes 48000 Hz sample rate. 2003-11-15 : src/include/wavedata.h, src/wavedata.c: Added SHM for wavedata. src/Makefile.am, configure.in: Added shm as option. 2003-11-09 : src/amp_1654.so.c, src/fmod_1656.so.c: Replaced powf with expf (more efficient) src/quantiser.so.c: Fixed bug in wrapped mode quantiser - subtract, not assign excess range from input src/sync_pulse_2023.so.c: Fixed audio rate variant - pulsewidth should be multiple of sample rate for comparison with phase src/include/wavedata.h, src/wavedata.c, src/wdatutil.c: Changed to generate a separate data .so which is dlopen()ed so that the data can be shared between multiple instances. src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c: Modified to use new .so data instead of #included headers. src/Makefile.am: Build rules changed to build data as .so, and install in subdir configure.in: Added wavedata subdir variable po/blop.pot, po/de.po, po/en_GB.po: Updated to reflect changed positions of strings in oscillator plugins 2003-09-28 : src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/product_1668.so.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Added #include <locale.h> as compiler was complaining about setlocale(). Strange. It Worked Yesterday (tm). src/quantiser.so.c: Some fine-tuning and fixed change-trigger. src/Makefile.am: Removed (added -O0) optimisations for building quantiser, as -O1 and up break it. configure.in: Removed redundant -f options from CFLAGS (covered by -O3) po/blop.pot, po/de.po, po/en_GB.po: Updated since changes to sources 2003-09-23 : po/de.po: German translations from Mario Lang po/blop.pot, po/en_GB.po: Recreated, omitting plugin labels src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/product_1668.so.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Removed gettext marks from plugin labels, as they mostly won't translate well. Makefile.am: Cleaned up EXTRA_DIST madness 2003-09-12 : src/include/wdatutil.h: Fixed macro that accidentally worked anyway src/wavedata.c: No need for stdio.h 2003-09-09 : ABOUT-NLS, config.rpath, intl/* m4/* po/ChangeLog, po/Makefile.in.in, po/Makevars.template, po/Rules-quot, po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, po/insert-header.sin, po/quot.sed, po/remove-potdate.sin: Gettext boilerplate added po/LINGUAS, po/Makevars, po/POTFILES.in, po/blop.pot, po/en_GB.po: BLOP-specific gettext files added. src/Makefile.am: For automake 1.5 (needed for gettext) src/include/Makefile.am: Add gettext.h to dist target 2003-09-05 : Makefile.am, configure.in: gettextize src/include/gettext.h: Added for gettext use in sources src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/product_1668.so.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Added missing semicolon TODO, ChangeLog: 'Proper' dates. 2003-08-30 : src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/product_1668.so.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Prepared for gettext (marked translatable strings) 2003-08-27 : src/include/lp4pole_filter.h, src/adsr_1653.so.c, src/adsr_1680.so.c, src/dahdsr_2021.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/lp4pole_filter.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Moved initialisation of instance data to activate() function in each plugin. src/sync_pulse_2023.so.c, src/sync_square_1678.so.c: As above, plus added TOGGLED hint for gate port. TODO: Added stuff that needs to be done :) 2003-08-23 : src/adsr_1653.so.c, src/adsr_1680.so.c, src/dahdsr_2021.so.c, src/sequencer.so.c: Set TOGGLED hint for gates and triggers. 2003-07-02 : doc/blop.rdf, doc/plugins_list.txt, src/quantiser.so.c, src/Makefile.am: Added quantiser plugin 2003-06-30 : doc/blop.rdf: Added new plugin info src/adsr_1653.so.c, src/adsr_1680.so.c, src/dahdsr_2021.so.c: Fixed some (minor) bugs in envelope generation 2003-06-26 : src/sync_pulse_2023.so.c, src/tracker_2025.so.c: src/Makefile.am: Added new signal tracker and pulse clock plugins 2003-06-15 : doc/plugin_list.txt, src/dahdsr_2021.so.c, src/Makefile.am: Added new dahdsr plugin 2003-06-11 : configure.in: Changed displayed default LADSPA path in help Removed extraneous cpu-type hack src/adsr_1653.so.c, src/adsr_1680.so.c: Sustain level clipping (result of excessive values too nasty to let go. 2003-02-18 : src/Makefile.am: Removed $BUILT_SOURCES things and replaced with some new rules for building oscillators with the generated headers. This was to get rid of annoying side-effects of the BUILT_SOURCES and dependencies. Makefile.am: Removed dist-hook rule - above changes sorted this problem out. Added extraneous files to maintainer-clean 2003-02-18 : src/include/float_cast.h, acinclude.m4: Files added - Erik de Castro Lopo's float cast code for C99 lrintf detection and use src/include/common.h, src/include/interpolate.h, src/include/lp4pole_filter.h, src/include/wavedata.h, src/include/wdatutil.h, src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c, src/wavedata.c: Some header shuffling to get float cast stuff to work right. 2003-02-05 : src/sequencer16_1677.so.c, src/sequencer32_1676.so.c, src/sequencer64_1675.so.c: Files replaced by single common source file compiled with different defines to make maintenance easier src/sequencer.so.c: New common source file for sequencers src/Makefile.am: Fiddling to get three sequencers built from single source 2003-02-04 : src/sequencer16_1677.so.c, src/sequencer32_1676.so.c, src/sequencer64_1675.so.c: Fixed declarations-after-statements bug that broke build on older compilers. 2003-02-02 : doc/blop.rdf: Output port info added 2003-02-01 : src/fmod_1656.so.c, src/pulse_1645.so.c, src/random_1661.so.c, src/sequencer16_1677.so.c, src/sequencer32_1676.so.c, src/sequencer64_1675.so.c, src/sync_square_1678.so.c, src/triangle_1649.so.c: Names changed in source doc/plugins_list.txt: Updated to reflect name changes doc/blop.rdf: Added title, creator and rights information 2003-01-29 : Fixed sequencer plugins - now have option of resetting to fixed value or keeping the last value output when the gate is closed. Added blop.rdf Made --enable-small-wavedata create smaller tables. Still good quality output... 2003-01-26 : Added defaults for some of the plugins 2003-01-25 : configure.in Added option to generate smaller wavetable data [--enable-small-wavedata] src/include/lp4pole_filter.h Made lp4pole tuning independent of sample rate src/include/lut_144log2.h, src/include/lut_tanh.h, src/tuned_lp4pole_1679.so.c Removed this filter - it's actually worse tuning wise than the regular one! 2003-01-24 : Slight performance increase for lp4pole filter by storing state in a struct. src/include/lp4pole_filter.h, src/lp4pole_filter.c Contains code to setup and run filter instance src/lp4pole_1671.so.c Plugin instance data removed - now in above filter code. Calls added to run filter using new code. 2003-01-23 : Improved performance of oscillators (16-89% faster!) src/include/interpolate.h Moved wavetable stuff to src/include/wavedata.h src/include/wavedata.h, src/wavedata.c Extra member data to hold playback state of oscillator. src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c Removed instance data, now held in wavedata instance. Simplified running of oscillator. src/Makefile.am Some minor dependency changes. 2003-01-15 : Argh! Just about to release 0.2.6, and I find nasty bugs, and slowness... Restored original (0.2.5) low pass filter, and created new pair of plugins for the tuned one, as it is much more cpu-intensive (about 4x!) 2002-12-23 : Some further modifications to wavetable business for the oscillators. With the exception of the (very short) one for phase wrapping, all code runs without any branches. src/include/wavedata.h, src/include/interpolate.h, src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c, src/wavedata.c: Reworked code to remove branches. src/include/wdatutil.h, src/wavedata.c, src/wavegen.c, src/wdatutil.c Removed lowest_harmonic things - not needed. 2002-12-19 : Major changes to the oscillators' wavetable playback as I clearly hadn't thought it through - the cross-fade of extra harmonics was causing discontinuities due to the gibbs compensation not matching. This has now been fixed, and the output is much improved. src/include/wavedata.h, src/include/wdatutil.h, src/wavedata.h, src/wavegen.c, src/wdatutil.c: Changes to wavetable pair data to allow for differing gibbs compensation. Some other minor bug fixes. src/include/interpolate.h: Changes to getSamples to cross fade pairs of tables instead of simply fading in extra harmonics. Also removed some branching from the table lookup. src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c: Removed some branching from code. 2002-12-17 : Further work on lowpass filter to eliminate some instabilities (runaway values resulting in noise/NaN). src/include/l2table.h: renamed to lut_144log2.h src/include/lut_tanh.h: added src/Makefile.am: modified dependencies src/lp4pole.so.c: tuned and smooth clipped Dist rule: make dist was keeping the CVS directory under src/include in the dist. Now fixed: src/include/Makefile.am: Added and specified headers etc. src/Makefile.am: Adjusted to make include a subdir configure.in: Added src/include/Makefile create 2002-12-10 : Tuned lowpass filter Added log 2 based table lookup src/include/l2table.h src/Makefile.am src/lp4pole_1671.so.c 2002-11-24 : Added analogue sequencer and sync oscillator Modified wavegen to allow note skip (allows smaller wavedata - e.g. to fit in cpu cache) Some minor bugfixes and updates 2002-11-09 : configure.in: Removed -march flags from CFLAGS, as was causing problems on some architectures 2002-11-02 : (After a looooooonnnnnnggg period of inactivity) I added a branch plugin. Woohoo... 2002-09-24 : configure.in: Added check for getopts 2002-08-12 : Changed plugin names to show port types. <grr> Much that I am loathe to duplicate information, most modular synths don't show other info, and rely on names being unique </grr> 2002-07-15 : Fixed NaN output bug in lowpass filter - clamped resonance to [0.0, 4.0]. I know it's in the range hints, but plugging an LFO into it (for example) *can* cause the bounds to be exceeded. 2002-07-14 : Added low pass resonant filter plugin 2002-07-10 : blop_ prefix removed from plugins - this can be done at configure time using --program-prefix=FOO 2002-07-10 : Okay. Some compromises made so automake will be nice to me... src/wavegen.c, src/wdatutil.c: Moved to parent src/wavegen: Removed Makefile.am, configure.in, src/Makefile.am: Some finagling to differentiate a plugin build from a regular program build. More fudgin to get 'make dist' to work. 2002-07-09 : Argh - except the result of make dist just plain does not work (seems to ignore building of data headers first.) 2002-07-08 : Tested all new plugins and new build system - all A-OK! 2002-07-06 : Complete revision of directory structure: doc/Makefile.am doc/about.txt doc/plugins_list.txt src/include/common.h src/include/interpolate.h src/include/wavedata.h src/include/wdatutil.h src/wavegen/Makefile.am src/wavegen/wavegen.c src/wavegen/wdatutil.c src/Makefile.am src/blop_adsr.so.c src/blop_amp.so.c src/blop_fmod.so.c src/blop_interpolator.so.c src/blop_product.so.c src/blop_pulse.so.c src/blop_random.so.c src/blop_sawtooth.so.c src/blop_square.so.c src/blop_sum.so.c src/blop_triangle.so.c src/wavedata.c AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS README THANKS TODO config.h.in configure.in stamp-h.in ------------------------------------------------------------------------------- 2002-06-19 : adsr.so.c: New files - an adsr envelope generator and a control-to-audio interpolator. 2002-06-18 : random.so.c: New file - generates a random wave of varying smoothness - sorta like random noise thru a filter. 2002-06-17 : amp.so.c, fmod.so.c, lmod.so.c: New files added - these are additional plugins to complement the oscillators. They are not released yet. Also planning to add an ADSR, a Control-to-Audio interpolator and a Randomizer (sort of sample-and-hold, but not). All these scheduled for release 0.3. 2002-06-16 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Modified my email address, replaced '@' with '[at]', cos I've been getting spam! (ARGH!) 2002-06-14 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Modified to only advance the phase (position) for frequencies below Nyquist (this is to prevent the phase from drifting too high - this can happen for very large frequencies, and causes instability) 2002-06-09 : Makefile: Added GIBBS variable to allow setting of Gibbs compnesation argument to wavegen. include/wdatutil.h, wavegen.c, wdatutil.h: Improved Gibbs compensation - can now set degree of compensation, from none to maximum. Maximum will now almost completely eliminate overshoot, and the resulting waveform is pretty much normalised to [-1,1] as a result! 2002-06-08 : wdatutil.h: Gibbs compensated parabola generation was skipping the even harmonics - fixed. Makefile: Modified wavedata header rules to use prefix, following addition of prefix option to wavegen. wavedata.h: Moved the extraction of wavedata header data to top of function for clarity. wavegen.c, wdatutil.c: Some other changes to the format of the wavedata header file output by wavegen - now allows specification of unique prefix for declarations - this is so more than one such header may be included in code. include/wdatutil.h, wavegen.c, wdatutil.c: Alterations to fix wave generation for square and parabola waves - base and extra harmonics now generated with respect to actual harmonic content (both square and parabola only contain odd harmonics). Previously, some of the extra samples were ending up zeroed because they were just a single even harmonic. 2002-06-07 : README: A bit more text about bandlimiting methods. include/interpolate.h, include/wavedata.h, wavedata.c: Revised to work with the new wavedata file contents. include/wdatutil.h, wavegen.c, wdatutil.c: Finalised changes to wavedata file format and content. Now each wavetable has two sets of data as before, but one set contains harmonics that would be played at all pitches in range, and the other contains the 'extra' higher harmonics that are faded in as pitch decreases. 2002-06-06 : include/wdatutil.h, wavegen.c, wdatutil.c: Change to the format of the intermediate data before it is written to the header file. More structured representation, instead of lots of huge allocated memory (which would not necessarily be contiguous, and if not, the code would fail). Work on new method for cross fading wavetables of differing harmonics. 2002-06-05 : include/interpolate.h: Further investigation into the abberation in the triangle wave. The likely cause was the two parabola waves were not being queried in sync - resulting in the wrong sample being retrieved in some cases. 2002-06-04 : include/interpolate.h: The triangle plugin was putting out NaNs for very small slopes (where the output approaches a sawtooth wave) - further investigation revealed that there was an aberration at the cross-over point (where the amplitude crosses zero). Some work on the getSamples function seemed to remove the problem. 2002-06-02 : TODO: Removed notes about optimisation: avltree lookup is only faster because special cases were not being handled - these must stay. Restraints on pulsewidth/slope settings caused quite nasty artifacts, so the double interpolation in pulse and traingle plugins has to stay. include/interpolate.h, wavedata.c, wavegen.c, wdatutil.c: Minor changes and some more comments pulse.so.c: Pulsewidth now clamped to [0.0,1.0] triangle.so.c: Slope clamped to [min, max] (dependent on sample rate) 2002-06-01 : include/interpolate.h, wdatutil.c, wavegen.c, wavedata.c: Modified wavetables to have an extra 3 samples per table - this allows interpolation to be done without too much bounds checking on sample index. A small speed increase results! wdatutil.c: Parabola wave generation was using the wrong scale factor, resulting in the triangle plugin having huge amplitudes compared to the rest. This has been fixed. 2002-05-31 : include/wdatutil.h, wavegen.c, wdatutil.c: More farting about with the format. Now only generates wavetables that will be cross faded upon playback (rather than filling the last one with zeroes) include/wavedata.h, wavedata.c: Some slight changes to add the three 'special case' wavetables that are played at the extreme frequencies include/interpolate.h: Finalised getTable - now it *does* return, and it returns that wavetable to play. Some changes to accommodate the special case wavetables. getSamples now incorporates the new special cases, and the cross fade. But it could do with improvement. getXFadeScale is no more. pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Updated to use new interpolate.h functions. Some declarations added for getSamples (rather than having these variables declared every sample, which consumes a measurable amount of CPU) 2002-05-30 : include/interpolate.h Changed getTable from returning true/false to void - no need for this anymore, as cross fade testing will be done in getSamples. pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Removed table_found check - getTable no longer returns. 2002-05-29 : include/interpolate.h, include/wavedata.h, pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c, wavedata.c: Modified to use new wavetable pairs for cross fading. Most of the crap is now in interpolate.h::getSamples. 2002-05-28 : include/wdatutil.h, wavegen.c, wdatutil.c: Modified to generate wavetable 'pairs' for cross fading between successive wavetables. This will allow sample retrieval for cross-faded wavetables to use only one interpolation op (as opposed to two) 2002-05-26 : TODO Notes about optimisation - namely, too many interpolates! include/interpolate.h, pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c Separated out sample extraction from interpolation code. getSamples get's four samples and returns the interval. INTERPOLATE function (now a #define) actually does the interpolation. 2002-05-24 : include/interpolate.h Experiments with cubic vs. 5th order spline resulted in the cubic spline being the winner (as it's faster, and is a fly's hair's whisker away from the 5th order...) 2002-05-23 : include/avltree.h, avltree.c: Removed these two files following confirmation that new lookup vector works properly. Makefile: Removed avltree dependencies. 2002-05-22 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Implemented new table lookup based on simple vector instead of binary tree. include/wavedata.h, include/wdatutil.h, wavedata.c, wdatutil.c, wavegen.c: Modifications to replace tree lookup with new vector lookup (indexed on max harmonic number) 2002-05-20 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Moved table lookup to separate (inlined) function 2002-05-15 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Cubic spline interpolation (no, it's a 5th order. Silly old me didn't have a clue...) 2002-05-14 : INSTALL: Minor clarifications. AUTHORS: Added some acknowledgements :) include/wavedata.h, include/wdatutil.h, wavedata.c, wavegen.c, wdatutil.c: Changed wavedata file to pass maximum harmonics instead of min and max frequencies. Wavedata sample rate is now independent of sample rate used in plugins (as it should be). include/avltree.h, include/wavedata.h, include/wdatutil.h, pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c, wavedata.c, wavegen.c, wdatutil.c: Changed data types from float to LADSPA_Data for consistency Some tidying up. 2002-05-12 : Initial code put together