beast r4479 - in trunk/bse: . tests



Author: stw
Date: Thu Jun 12 10:37:17 2008
New Revision: 4479
URL: http://svn.gnome.org/viewvc/beast?rev=4479&view=rev

Log:
Compile fixes for G++-4.3.

Wed Jun 11 14:04:31 2008  Stefan Westerfeld  <stefan space twc de>

	* bsesequencer.cc:
	* tests/firhandle.cc:
	* tests/resamplehandle.cc:
	* tests/filtertest.cc:
	* bseprocidl.cc:
	* bseloader-guspatch.cc:
	* bseresamplerimpl.hh: Compile fixes for G++-4.3: Added a few standard
	includes.

	* bsecxxplugin.hh: Compile fixes for G++-4.3: Template specializations
	can not have a storage class.

Thu Nov 15 23:44:54 2007  Stefan Westerfeld  <stefan space twc de>

	* zintern/Makefile.am:
	* zintern/wave-mono.bse: Remove obsolete wave-mono replay network.

Mon Nov  5 18:23:27 2007  Stefan Westerfeld  <stefan space twc de>

	Support various play-types in bse, bug #433431.

	* bsewaveosc.[hc]: Added done output (inverse gate), which makes it
	easy to use only the wave oscillator without adsr envelope in an
	instrument.

	* zintern/Makefile.am:
	* zintern/plain-wave-[12].bse:
	* zintern/adsr-wave-[12].bse: Add zintern mono/stereo version for
	replaying samples with adsr envelope, and zintern mono/stereo bse file
	for replaying waves without envelope (for drum samples). Pitch bend
	is +/- 200 cent exponential, replay volume compatible to beast-0.7.1.

	* bsetrack.c: Use plain-wave-[12] and adsr-wave-[12] depending on
	play-type xinfo of the bsewave file.

Mon Nov 12 21:00:10 2007  Stefan Westerfeld  <stefan space twc de>

	Fix module reset when user presses play again, bug #336766.

	* bseproject.c (bse_project_stop_playback): When this method is
	called, we need to dismiss the contexts of the BseSuper classes
	we previously created in bse_project_start_playback.

Mon Nov  5 18:54:39 2007  Stefan Westerfeld  <stefan space twc de>

	Added necessary code for "fine-tune" xinfo, bug #450490.

	* bsemathsignal.[hc]: Implemented bse_cent_tune(), which is similar to
	bse_cent_tune_fast(), but accepts arbitary doubles as input because it
	doesn't use a table internally.

	* tests/misctests.cc: Added test for bse_cent_tune().

	* gsldatahandle.[hc]: Implemented gsl_data_handle_fine_tune, which
	returns a fine tuning measured in cent ("fine-tune" xinfo).

	* gslwavechunk.[hc]: Cache the fine tune factor here, so that
	GslWaveOsc can access it quickly.

	* gslwaveosc.c (gsl_wave_osc_set_filter): Take fine tune factor of
	the chunk into account for step computation (and thus for filter
	computation).

Mon Nov  5 17:28:04 2007  Stefan Westerfeld  <stefan space twc de>

	Merge BSE_FINE_TUNE_FACTOR() and bse_cent_factor(), bug #450490.

	* bse/bseglobals.h:
	* bsemathsignal.[hc]: Merge BSE_FINE_TUNE_FACTOR() and
	bse_cent_factor() to bse_cent_tune_fast(). The resulting function
	automatically clamps its input and uses the cent table to compute its
	result.

	* bse/bseinfo.c:
	* bse/bsenote.cc:
	* bse/bsepart.h:
	* bse/bsesong.proc:
	* bse/gsloscillator-aux.c:
	* bse/tests/misctests.cc: Use bse_cent_tune_fast() where appropriate.

2007-09-20 20:41:30  Tim Janik  <timj gtk org>

	* bsebus.c:
	* bsestorage.c:
	* bseobject.h, bseobject.c: pass BseStorage version information on in
	restore_finish() methods.

	* bsecxxbase.hh, bsecxxbase.cc: introduced restore_finished() virtual
	method, so C++ modules can execute version specific compat code after
	after it has been restored from serialized object state.

2007-09-18 02:25:33  Tim Janik  <timj gtk org>

	* bse/bsecxxbase.hh:
	* bse/bseengine.h:
	* bse/bseitem.h: added G_GNUC_NULL_TERMINATED to function ellipsis,
	patch by Stefan Westerfeld from bug #344388.

2007-09-18 02:01:08  Tim Janik  <timj gtk org>

	* bseproject.[hc]: removed bogus function decl.
	bse_project_get_song(): new function to retrieve the first song of
	a project if any. at some point this should become the sole song.

	* bseproject.proc: reuse an existing song if possible when importing
	MIDI files, effectively merging the import into the existing song.

2007-09-18 01:30:51  Tim Janik  <timj gtk org>

	* bseproject.proc:
	* bsemidifile.c: removed/disabled debugging printouts.

Fri Sep  7 22:46:20 2007  Stefan Westerfeld  <stefan space twc de>

	* bsemidifile.c: Assign newly created tracks to the master bus. Fixes
	#441936.

Sat Aug 18 00:15:22 2007  Stefan Westerfeld  <stefan space twc de>

	* bsecore.idl: Include ~/beast/plugins in the default plugin search
	path, to make it easier for users and developers to install extra
	plugins from source.

Sun Jun 24 00:17:40 2007  Stefan Westerfeld  <stefan space twc de>

	* bsemath.h: Added ln (10)/20 constant for ArtsCompressor.

Wed Apr 11 15:46:31 2007  Stefan Westerfeld  <stefan space twc de>

	* bsedatahandle-fir.cc: Fix a bug in seek() spotted by Tim: invalidate
	m_input_data contents properly if a read error occurs during filling
	it.

Sat Mar 31 15:18:54 2007  Stefan Westerfeld  <stefan space twc de>

	* gsldatahandle.[hc]: Implemented gsl_data_handle_volume, which
	returns a volume adjustment factor ("volume" xinfo).

	* gslwavechunk.[hc]: Cache the volume adjustment factor here, so that
	GslWaveOsc can access it quickly.

	* gslwaveosc.c (gsl_wave_osc_set_filter): Adjust volume of the chunk
	according to its volume adjustment.

Tue Feb  6 23:16:15 2007  Tim Janik  <timj gtk org>

	* bseloader-wav.c (wav_read_fmt_header): fixed byte_per_sample check.

Tue Feb  6 02:27:05 2007  Tim Janik  <timj gtk org>

	* bse/gsldatahandle.[hc]: added scaling data handle, the scaling
	factor is provided at construction time.

	* bse/gsldatautils.[hc]: added gsl_data_find_min_max() to detect
	min and max signal range of a data handle.

Mon Feb  5 02:54:14 2007  Tim Janik  <timj gtk org>

        * bseloader-wav.c: support 32bit, 3byte 24bit and 4byte 24bit (with
        unused upper byte) PCM-format WAV files.

        * gsldatahandle.h: added GSL_WAVE_FORMAT_SIGNED_32, 
        GSL_WAVE_FORMAT_SIGNED_24_PAD4 and GSL_WAVE_FORMAT_SIGNED_24.

        * gsldatahandle.c: read 24, 24_pad4 and 32 bit files.

        * gsldatautils.h: extended to/from float/double with/without clip 
        conversion functions to also handle 24, 24_pad4 and 32bit data.

Mon Feb  5 01:22:24 2007  Stefan Westerfeld  <stefan space twc de>

	* bsecxxmodule.*: Added the necessary API to find out the maximum
	engine block size to Bse::Effect. The new function is called
	Effect::max_block_size().

Sun Feb  4 03:01:38 2007  Tim Janik  <timj gtk org>

	* updated all licenses to GNU Lesser General Public License version 2.1
	with permission from Stefan Westerfeld where required.

Sat Feb  3 04:26:38 2007  Tim Janik  <timj gtk org>

	* bsesequencer.cc (bse_sequencer_thread_main): properly take sequencer 
	forerun into account when starting a song so we won't delay song start
	until it's definitely too late.

Sat Feb  3 04:22:16 2007  Tim Janik  <timj gtk org>

	* bsesequencer.cc: refined tracing information. provide more timing details.

Fri Feb  2 00:16:39 2007  Tim Janik  <timj gtk org>

	* bsemain.h, bsemain.cc: added support for debugging channels.
	added --bse-trace-sequencer. 

	* bsesequencer.cc: added note on/off and control event tracing.

Thu Jan 25 01:23:08 2007  Stefan Westerfeld  <stefan space twc de>

	* bseresamplerimpl.hh: Adjusted error bounds for the filter test,
	because it failed sometimes although the implementation is ok. Be more
	verbose when using verbose mode.

Tue Jan 16 23:57:40 2007  Tim Janik  <timj gtk org>

	* bseenginemaster.c: commented caveats.

Mon Dec 25 16:43:46 2006  Tim Janik  <timj gtk org>

	* bsebus.c (bse_bus_ensure_summation): use symbolic i/o channel identifiers
	to avoid breakage in hardcoded channel numbers.

	* bsepcmwriter.c (bse_pcm_writer_write): fixed calculation to avoid overflow.

Sun Dec 24 15:20:51 2006  Stefan Westerfeld  <stefan space twc de>

	* bsebus.c: BseSummation was recently extended to have three output
	channels (a new one computing the difference), which broke make
	report. This change fixes it, by adapting the hardcoded channel number
	in this file to match the new summation plugin.

Sat Dec 23 20:49:22 2006  Tim Janik  <timj gtk org>

	* bseserver.[hcp]*: added bse_server_start_recording() and 
	bse_server_stop_recording() functions to schedule WAV file
	recording for a specific time intervall. 
	added bse-server-start-recording procedure.

	* bsepcmwriter.[hc]: implemented time intervall
	recording.

Tue Dec 19 14:18:53 2006  Stefan Westerfeld  <stefan space twc de>

	* gsloscillator.c: Take transpose factor into account for table
	lookups when the oscillator frequency is constant. Fixes #387364.

Tue Dec 19 02:10:33 2006  Tim Janik  <timj gtk org>

	* bsesong.[hc]: keep a flag around to detect the first sequencer underrun,
	reset the flag when prepared.

	* bsesequencer.cc (bse_sequencer_thread_main): always warn about 
	sequencer underruns, regardles of debugging state.

Mon Dec 18 20:14:34 2006  Stefan Westerfeld  <stefan space twc de>

	* bsebiquadfilter.c:
	* bseconstant.c:
	* bsestandardosc.c:
	* bseladspamodule.c: Spelling fix: the unit for frequencies is spelled
	"Hertz" (not "Herz").

Sun Dec 17 20:58:40 2006  Tim Janik  <timj gtk org>

	* bsestandardosc.c (bse_standard_osc_update_modules): added missing 
	update of the transpose factor to update_modules(), fixes #386862.

Thu Dec 14 23:07:16 2006  Tim Janik  <timj gtk org>

	* gslcommon.c (gsl_error_from_errno): special case ENODATA, which is not
	available on GNU/kFreeBSD, reported by Petr Salinger <Petr Salinger seznam cz>.

	* gsldatahandle-vorbis.c (gsl_vorbis1_handle_read): use EIO in unclear
	error cases, because GNU/kFreeBSD lacks ENODATA.

Mon Dec 11 01:13:00 2006  Tim Janik  <timj gtk org>

	* tests/filtertest.cc (generic_filter_tests): added missing stopband
	damping check for LOWPASS filters, caught by Stefan.

Wed Dec 13 23:55:15 2006  Tim Janik  <timj gtk org>

	* bseenginemaster.c (master_process_locked_node): set buffer start 
	fragments to zero for nodes that are partially suspended and have
	pending probe jobs, so probes don't contain outdated junk data.

Wed Dec 13 21:30:39 2006  Tim Janik  <timj gtk org>

	* bseenginemaster.c (master_take_probes): fixup ostreams[].value 
	pointers before returning a probe, since those may have been altered
	by process() routines.

	* bseprobe.cc: added debugging field and a few assertions.

Tue Dec 12 08:50:45 2006  Tim Janik  <timj gtk org>

	* bseundostack.c: fix possible flat copies of pointers to deeply
	nested object structures. in particular, this fixes potential GSList
	node corruptions.

Tue Dec 12 01:18:22 2006  Tim Janik  <timj gtk org>

	* bsecore.idl, bsemathsignal.c: added musical tuning system tables 
	submitted by Hanno Behrens <pebbles schattenlauf de>:
	12-TET, 7-TET, 5-TET, DIATONIC_SCALE, INDIAN_SCALE, PYTHAGOREAN_TUNING,
	PENTATONIC_5_LIMIT, PENTATONIC_BLUES, PENTATONIC_GOGO,
	QUARTER_COMMA_MEANTONE, SILBERMANN_SORGE, WERCKMEISTER_3,
	WERCKMEISTER_4, WERCKMEISTER_5, WERCKMEISTER_6, KIRNBERGER_3
	and YOUNG.

Mon Dec 11 00:51:36 2006  Tim Janik  <timj gtk org>

	* bsesong.[hc]: added musical_tuning property. 

	* bseutils.h, bseutils.c:
	* bsenote.h, bsenote.c, bsenote.cc: converted bsenote to C++. added musical
	tuning argument to all note/freq API functions and adapted internal logic
	to cope with different tunings. removed unused BSE_FREQ*() macros.

	* bsecore.idl: introduce Bse::MusicalTuningType. added musical_tuning 
	field to NoteDescription.

	* bseserver.proc:
	* bseprocedure.proc: added musical tuning arguments to various note 
	related procedures, moved note procedures from bseserver.proc to
	bseprocedure.proc and got rid of their BseServer argument.

	* bsemathsignal.h, bsemathsignal.c: made semitone and transpose tables
	musical tuning sensitive.

	* bsepart.[hc]: allow per-part semitone tables, and changed macros so that
	part notes are converted to frequencies according to the musical tuning
	specific to a part.

	* bseitem.[hc]: provide bse_item_current_musical_tuning() and document
	its caveats.

	* bsesource.[hc]: added bse_source_prepared_musical_tuning() which 
	provides musical tuning setting for a source if and only if the
	source is prepared. the tuning stays constant while the source is prepared.

	* bsesequencer.cc: perform part specific note->freq conversion.

	* bsemidifile.[hc]: added musical_tuning to use the new note API,
	defaulting to equal temperament.

	* bsemididecoder.c: hard code musical tuning to equal temperament,
	since we have to provide notes to frequencies for MIDI events up front.

	* bseconstant.c:
	* bsestandardosc.c:
	* bseladspamodule.c:
	* bsebiquadfilter.c: adapt to new tuning relative note API, add a
	warning to tooltips that informs about the musical tuning specific 
	interpretation of note properties.

	* gsloscillator*.[hc]: changed configuration to contain a transpose_factor
	and not a transpose index which needs to be looked up in conjunction with
	a specific musical tuning.

	* bseglobals.h: removed unused macros.

	* bseinfo.c: adapt to new note API by defaulting to to equal temperament.

	* tests/misctests.cc: test various musical tuning system properties and
	note<->freq conversions.

Sun Dec 10 14:15:18 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/firhandle.cc: Added seek test.

Mon Dec  4 12:03:19 2006  Stefan Westerfeld  <stefan space twc de>

	* gsldatahandle.h:
	* bsedatahandle-fir.cc: Added a function which computes the filter
	response in dB, given a FIR handle and a frequency.

	* tests/firhandle.cc: Test that theoretical filter response (computed
	by bse_data_handle_fir_response_db) and scanned response match.

Mon Dec  4 02:42:56 2006  Tim Janik  <timj gtk org>

	* gslvorbis-enc.h, gslvorbis-enc.c: added gsl_vorbis_encoder_version()
	which has to go through some hoops to query the library version (encode
	and decode a dummy file), but manages to return a version string.

	* bseserver.proc: provide bse_server_get_vorbis_version().

Sun Dec  3 19:13:17 2006  Tim Janik  <timj gtk org>

	* bseexports.h: changed plugin mechanism to skip per-plugin names and
	to provide feature flag masks to check plugin requirements (to check
	for MMX/SSE support).

	* bsecxxplugin.hh, bsecxxplugin.cc: changed symbol export mechanism to 
	use Bse::ExportTypeKeeper constructor and destructor instead of single
	symbols. use bse_exports__add_node() and bse_exports__del_node() to
	register/unregister the type nodes. this allows compilation of multiple
	C++ plugin types into the same .so binary.

	* bseplugin.h, bseplugin.c: rewrote plugin symbol lookup and type node 
	exports to support load time registration via bse_exports__add_node()
	and bse_exports__del_node().

Sun Dec  3 21:13:32 2006  Stefan Westerfeld  <stefan space twc de>

	* bsedatahandle-fir.cc: Made state size computation work correctly.
	Added lowpass handle.

	* tests/firhandle.cc: Extended tests to cover both, the highpass and
	the lowpass handle.

Sat Dec  2 23:55:44 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/Makefile.am:
	* tests/firhandle.cc: Added a test for the highpass performance.
	
	* bsedatahandle-fir.cc: Optimized performance of the highpass handle.
	It is plain FPU code (not SSE), though.

Sat Dec  2 22:03:57 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/firhandle.cc: Added a highpass test for multichannel signals.

	* bsedatahandle-fir.cc: Fixed the code for n_channels != 1. Minor
	code cleanups.

Tue Nov 28 21:05:16 2006  Stefan Westerfeld  <stefan space twc de>

	* bsedatahandle-fir.cc: Some optimizations, more to come.

Mon Nov 27 22:32:24 2006  Stefan Westerfeld  <stefan space twc de>

	* bsedatahandle-fir.cc:
	* gsldatahandle.h:
	* tests/firhandle.cc: Move highpass handle from gsl to bse namespace.

	* bsedatahandle-fir.cc: Implement a "real" data handle. It is not yet
	performance optimized, though.

Mon Nov 27 20:29:53 2006  Stefan Westerfeld  <stefan space twc de>

	* gsldatahandle.[hc]: Added new gsl_data_handle_get_state_length
	function for datahandles, with a corresponding vtable entry. For
	filtering datahandles (such as lowpass handles), which are usually
	stateful, it returns the filter state length.

	* gsldatahandle-vorbis.c:
	* gsldatahandle-mad.c:
	* bsedatahandle-resample.cc:
	* tests/loophandle.c: Implement the get_state_length datahandle
	method.

	* tests/resamplehandle.cc: Test the resampler get_state_length
	function.

Mon Nov 27 15:19:47 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/firhandle.cc: Check that the filter is zero phase in the
	passband (== no delay).

Sun Nov 26 19:08:01 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/Makefile.am:
	* tests/firhandle.cc: Created test for the fir highpass handle.

	* bsedatahandle-fir.cc: Fixed parameters passed to coefficient design
	function. Filters have the right cutoff frequency now.

Sun Nov 26 16:32:00 2006  Stefan Westerfeld  <stefan space twc de>

	* Makefile.am: Added bsedatahandle-fir.cc.

	* gsldatahandle.h:
	* bsedatahandle-fir.cc: Moved highpass handle here from
	../tools/bseloopfuncs.[hc].

Sun Nov 26 15:51:39 2006  Stefan Westerfeld  <stefan space twc de>

	* bsedatahandle-fir.cc: svn copy from ../tools/bseloopfuncs.c: prepare
	for moving highpass handle here.

Wed Nov 22 21:40:17 2006  Tim Janik  <timj gtk org>

	* bseladspa.cc: made messages about ladspa compatibility debugging
	messages. improved message clarity, supressed messages about plugin
	registration. added missing 'extern "C"'.

Wed Nov 22 19:52:09 2006  Tim Janik  <timj gtk org>

	* bseladspa.cc: ported bseladspa.c to C++. use BIRNET_MAY_ALIAS to
	work around strict aliasing warnings. load LADSPA modules with local
	symbol bindings. 

	* bseladspa.h: fixed structure layout for C++.

	* bsetype.h: use EXTERN_C in code generating macros, to account for
	macro usage in C++.

Mon Nov 20 23:39:51 2006  Tim Janik  <timj gtk org>

	* bsemain.cc: ported bsemain.c to C++, use C++ Msg API.

	* bsemain.h: API adaptions due to bsemain.cc porting.

	* bsecore.idl:
	* bsejanitor.proc:
	* bseserver.c: ported to new sfi_msg_* API. 

	* bsesequencer.cc: use bse_message_setup_thread_handler().

	* bseenginemaster.c: use bse_message_setup_thread_handler() and
	BIRNET_STATIC_ASSERT().

Wed Nov 15 00:59:15 2006  Tim Janik  <timj gtk org>

	* ldscript.map: restrict typeinfo symbol exports to Sfi/Bse/Birnet
	symbols. export vtable symbols to allow plugin building withou tlibtool.

Tue Nov 14 01:02:45 2006  Stefan Westerfeld  <stefan space twc de>

	* bseresampler.[hc]*: Added Resampler2::find_precision_for_bits to the
	API, and an precision enum -> string conversion function.

	* bsedatahandle-resample.cc: Use find_precision_for_bits.

Mon Nov 13 20:05:53 2006  Stefan Westerfeld  <stefan space twc de>

	* bseresamplerimpl.hh: Removed unnecessary delay. The stream delay for
	both, upsampling and downsampling should be truely minimal now.

	* bseresampler.hh: The guarantee that the upsampler delay is even was
	removed from the API. The reason is that we can have a shorter stream
	delay when the upsampler delay is odd.

	* bsedatahandle-resample.cc: Introduced additional delay compensation
	code, because compensating an odd upsampler delay wasn't necessary
	when this code was initially written.

Wed Nov  8 23:28:05 2006  Stefan Westerfeld  <stefan space twc de>

	* bseresampler.[hc]* bseresamplerimpl.hh: Added coefficient set for
	linear interpolation. It will probably sound bad, but its useful for
	testing.

Sun Nov  5 04:23:07 2006  Tim Janik  <timj gtk org>

	* tests/filtertest.cc (random_filter_tests): extended fixed orders to 32 
	and random orders to 64. cut the requested order for band filters in 
	half, because it's doubled upon design.

Sat Nov  4 20:09:33 2006  Tim Janik  <timj gtk org>

	* bsefilter-ellf.c: removed ellf-behavior special casing. switched
	to higher precision constants. substituted bsemath.h constants.

	* bsemath.h: provide ln(4), decibel10 and decibel20 factors.

Sat Nov  4 19:46:01 2006  Tim Janik  <timj gtk org>

	* bsefilter-ellf.c: replaced all ellf specific complex number 
	arithmetic by bse_complex*() calls.

	* bsemath.h: provide BSE_COMPLEX_ONE for convenience.

Sat Nov  4 18:14:08 2006  Tim Janik  <timj gtk org>

	* gslmathtest.c: removed, this has been ported to bsemathtest and
	is long unused.

Sat Nov  4 17:38:28 2006  Tim Janik  <timj gtk org>

	* bsemath.h: don't include neither of the C++ <complex> or the C99
	<complex.h> header files. removed compat typedefs. we'll simply resort
	to using BseComplex in headers and use <complex> in C++ files.

	* bsefilter.h: use BseComplex for complex numbers in header files.

	* bsefilter.cc: adaptions to BseComplex.

	* bsefilter-ellf.c: use BseComplex instead of C99 complex.

	* tests/filtertest.cc: adaptions to BseComplex. fixed elliptic filter
	test to really use stopband_edges, not stopband_db.

Fri Nov  3 02:19:09 2006  Tim Janik  <timj gtk org>

	* bsefilter.h, bsefilter.cc: removed transfer function nominator and
	denominator from public API, because they are useless for higher 
	order filters. added center-frequency to public API, which is the
	middle frequency for band filters (used to evaluate gain ot stopband).

	* bsefilter-ellf.c: provide BseIIRFilterDesign.center_frequency.
	made some slight precision improvements for cgam evaluations.

	* tests/filtertest.cc: special cased lengthy routines as slowtest.
	removed any code (check, eval) related to filter transfer functions.
	did some test split ups. added random filter tests for butterworth,
	chebyshev1, elliptic. extended generic filter test to test passband
	min/max from both sides. added some stopband tests.

	* tests/filtercatalog.cc: random filter catalog generated with bse-ellf.

Thu Nov  2 22:56:55 2006  Tim Janik  <timj gtk org>

	* bsefilter-ellf.c: z_plane_zeros_poles_to_numerator_denomerator():
	reimplemented gain calculation by evaluating the pole and zero
	polinomials. this eliminates the precision artefacts which caused
	gain miscalculations for high order filters.

Thu Nov  2 22:44:16 2006  Tim Janik  <timj gtk org>

	* bsemath.c: temporary fix against ring buffer overflow.

	* bsefilter-ellf.c: replaced overly verbose debugging function
	implementation by simple printf like macros. moved ellf compat
	constant definitions.

	* bsefilter.cc: cosmetic changes to bse_iir_filter_request_string().

	* tests/filtertest.cc: compare filter zero/pole coefficients
	instead of filter transfer function coefficients which are useless
	for high order filters. zero/pole pairs for comparsion are
	determined through nearest-neighbour searches.
	use TABORT_HANDLER() to hook up print_filter_on_abort(), to print
	out mismatching filters when tests fail. use T*_CMP() test macros
	for more informative printouts. extended generic filter test to
	cover more filter properties.
	added predesigned filters where ellf miscalculates gain.

Tue Oct 31 13:52:17 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/filtertest.cc: Raise coefficient comparision epsilon ceps
	8e-13 for Chebychev filters, as recommended by Tim, so that "make
	check" on AMD64 passes again.

	* tests/resamplehandle.cc: Use BseResampler delay compensation C API
	where appropriate, instead of computing the delay from the filter
	order.

Mon Oct 30 23:57:03 2006  Tim Janik  <timj gtk org>

	* tests/filtertest.cc: added brute_coefficient_tests() which can be 
	used to test massive amounts of test filters against the library
	design algorithm.

Mon Oct 30 21:57:20 2006  Tim Janik  <timj gtk org>

	* tests/filtertest.cc: applied some corrections suggested by Stefan.
	fixed frequency range loops to test both frequency bounds.
	extended exit_with_iir_filter_gnuplot() to print the filter design.
	assert allmost 0-gain for all filters. simplified tests somewhat.
	added low/high pass and band stop/pass chebyshev1 filters.

Mon Oct 30 01:25:56 2006  Tim Janik  <timj gtk org>

	* tests/filtertest.cc: new test for the new IIR filter design API.
	currently covers Butterworth low pass, high pass, band stop and
	band pass filter tests. tests are based on coefficient comparisons,
	filter transfer function analysis, and zero + pole function
	analysis. for debugging purposes, provided the possibility to
	prematurely abort filter tests and provide a gnuplot dump.

Mon Oct 30 00:55:01 2006  Tim Janik  <timj gtk org>

        * bsefilter.cc: implement bse_iir_filter_kind_string(),
	bse_iir_filter_type_string(), bse_iir_filter_request_string(),
	bse_iir_filter_design_string(). implemented bse_iir_filter_design()
	as a thin wrapper around _bse_filter_design_ellf().

	* bsemath.h: include complex.h or complex, depending on C / C++.
	provide ComplexFloat, ComplexDouble, ComplexLongDouble and
	Complex as alias for ComplexDouble.

Mon Oct 30 00:47:23 2006  Tim Janik  <timj gtk org>

	* bsefilter.h: new header for offering a unified IIR filter API.

	* bsefilter-ellf.c: define _GNU_SOURCE instead of _ISOC99_SOURCE before
	including any headers. this gets us the C99 API *and* GNU features
	(i.e. the uint typedef).
	split up the implementation so that the current stand-alone behavior
        is preserved if ELLF_BEHAVIOR is defined and so that the necessary
        contents from bseellipticfilter.h are inlined otherwise.
        moved EllfDesignState here (from bseellipticfilter.h). renamed
        EllfComplex.
        _bse_filter_design_ellf(): implemented library function prototyped
        in bsefilter.h to design butterworth, chebychev1 and elliptic filters.
        
	* bseellipticfilter.h, bseellipticfilter.c: removed.

Sun Oct 29 22:26:09 2006  Tim Janik  <timj gtk org>

	* bsefilter-ellf.c: copied from bseellipticfilter.c.

Sat Oct 28 18:34:48 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.h: extended BseIIRFilterKind, renamed
	* bseellipticfilter.c: extended BseIIRFilterKind, renamed
	BseIIRFilterRequest, BSE_IIR_MAX_ORDER and BSE_IIR_CARRAY_SIZE.
	added BseIIRFilterDesign structure which is the intended future 
	output API. renamed some DesignState fields to match BseIIRFilterDesign
	more closely.

Thu Oct 26 00:15:53 2006  Stefan Westerfeld  <stefan space twc de>

	* gslfilter.c (gsl_filter_sine_scan): More comments.

Tue Oct 24 23:52:58 2006  Tim Janik  <timj gtk org>

	* bseblockutils.hh, bseblockutils.cc: provide a blockutils 
	implementation name. usually "FPU" or "SSE".

	* bsemain.c: add block utils implementaiton name as suffix to
	the treport_*() CPU name.

	* tests/Makefile.am:
	* tests/blocktests.cc: conditionalized benchmarks, use treport_*().

	* tests/blocktests.cc, tests/resamplehandle.cc: CPU name fixups.

Sun Oct 22 00:22:27 2006  Tim Janik  <timj gtk org>

	* bsemain.c: let allow_randomization default to TRUE, added
	--bse-disable-randomization and --bse-enable-randomization args.

Sun Oct 22 00:04:49 2006  Tim Janik  <timj gtk org>

	* bsemain.h: added allow_randomization to BseMainArgs to configure
	deterministic vs. non-deterministic behavor. mostly interesting
	for physical modelling plugins.

Sat Oct 21 20:56:27 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/resamplehandle.cc: Improved comment.

Sat Oct 21 18:58:35 2006  Tim Janik  <timj gtk org>

	* tests/resamplehandle.cc: reworked to split performance tests from
	ordinary tests. speed up ordinary tests if --test-slow was not
	specified. fixed test program to use TASSERT() instead of silent exit
	or return_if_fail on errors.

	* tests/subnormals.cc: refactored a bit, split up performance tests.

Fri Oct 20 23:03:57 2006  Stefan Westerfeld  <stefan space twc de>

	* gslfilter.c (gsl_filter_sine_scan): Fixed a small bug in block
	volume computation.

Fri Oct 20 13:58:38 2006  Stefan Westerfeld  <stefan space twc de>

	* gslfilter.[hc] (gsl_filter_sine_scan): Changed the API and
	implementation of the sine scanning function to figure out how long to
	scan by computing the volume for 0.1 second blocks, and waiting until
	the volume doesn't change anymore.

Wed Oct 18 22:05:37 2006  Stefan Westerfeld  <stefan space twc de>

	* bsedatahandle-resample.cc: Fixed my last commit. Sorry.

Wed Oct 18 21:47:15 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/resamplehandle.cc:
	* bseresampler.hh: Improved comments on delay compensation.

	* bsedatahandle-resample.cc: Reorganized delay compensation code in
	open() a bit, improved comments.

Tue Oct 17 23:10:43 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.c: cosmetics, fixed constants.

Tue Oct 17 22:03:52 2006  Tim Janik  <timj imendio com>

	* bseellipticfilter.h: 
	* bseellipticfilter.c: turned remaining global variables into local
	variables or structure members.

Tue Oct 17 02:12:24 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.h, bseellipticfilter.c: moved elliptic integral
	values, chebyshev/elliptic phi and gain into the filter state structure.
	eliminated other global variables by declaring them in local scopes.

Tue Oct 17 01:43:26 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.h: define MAX_ORDER and MAX_COEFFICIENT_ARRAY_SIZE.
	added array for s-plane poles and zeros to DesignState.

	* bseellipticfilter.c: added -ffloat-store to the compilation option to
	keep compatibility with math.h-enabled ellf.c. resolved non-local double
	variable fixmes. store s-plane zeros and poles as ds->zs. changed to use
	MAX_COEFFICIENT_ARRAY_SIZE as array bound.

Tue Oct 17 00:50:08 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.c: changed static y[] array into local scope
	variables/arrays.

Tue Oct 17 00:31:20 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.c: removed remaining static integers by using
	either local variables or by using ds->z_counter. minor whitespace
	fixups.

	* bseellipticfilter.h: added and documented z_counter.

Tue Oct 17 00:17:23 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.c: whitespace and paranthese fixes.

Tue Oct 17 00:05:55 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.h, bseellipticfilter.c: white space fixups,
	changed static zord to ds->n_solved_poles.

Sun Oct 15 23:17:39 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.h:
	* bseellipticfilter.c: include math.h instead of declaring standard 
	math.h functions. print debugging/informative output through an
	extra function. beefed up ARRSIZ once more for high order filters.
	added custom function to print the transfer function coefficients
	for debugging. fixed reading from stdin to use fgets().
	reverted granularity changes in filter table printing. renamed all 
	complex functions to not clash with complex.h.
	added some workarounds with fixme marks to stay value (error)
	compatible with former versions of the ellf program, these can be 
	removed once we have filter tests in place. removed unecessary
	comments, streamlined others. removed obsolete configuration
	logic and other unecessary preprocessor cruft. removed unused
	declarations, moved many variable and constant declarations into
	an inner scope. renamed heavily abbreviated functions. renamed
	and recoded main() into iir_filter_design() which does read all
	design parameters from a structure. added a new main with simply
	stdin-read logic to call iir_filter_design().
	for the moment, moved structure declarations for filter design
	parameters and filter calculation state into bseellipticfilter.h.

Sun Oct 15 22:52:53 2006  Tim Janik  <timj gtk org>

	* bseellipticfilter.h, bseellipticfilter.c: renamed from bseiirfilter.*.

Sun Oct 15 22:49:51 2006  Tim Janik  <timj gtk org>

	* bseieee754.h: added BSE_DOUBLE_EPSILON and BSE_FLOAT_EPSILON, 
	constants for the round-off error at 1.0.

Sun Oct 15 20:58:57 2006  Stefan Westerfeld  <stefan space twc de>

	* gslfilter.c: Made implementation of gsl_filter_sine_scan() more
	reliable by using two phase shifted signals (see comment in the
	implementation).

Thu Oct 12 22:30:46 2006  Stefan Westerfeld  <stefan space twc de>

	* bsedatahandle-resample.cc: Use the newly introduced
	Resampler2::delay().

Thu Oct 12 21:48:54 2006  Stefan Westerfeld  <stefan space twc de>

	* bseresampler.hh:
	* bseresampler.cc:
	* bseresamplerimpl.hh: Added a virtual function Resampler2::delay(),
	which can be used for compensation of the resampler introduced delay.
	Provide C API wrapper for the function: bse_resampler2_delay().

	* tests/resamplehandle.cc: Test the delay compensation function.
	Fix a buglet in another test (comparing signals needs fabs()).

Thu Oct 12 16:54:42 2006  Stefan Westerfeld  <stefan space twc de>

	* gslfft.h: Improved documentation on FFT normalization.

Thu Oct 12 13:25:38 2006  Stefan Westerfeld  <stefan space twc de>

	* bseiirfilter.c: Added some comments.

Thu Oct 12 02:23:15 2006  Tim Janik  <timj gtk org>

	* bseiirfilter.c: enlarged ARRSIZ so order 16 filters can be calculated.
	renamed and reworked print_filter_table() to print the filter table with
	much finer granularity.

Thu Oct 12 02:14:44 2006  Tim Janik  <timj gtk org>

	* bseiirfilter.c: more unused section removal. auto-fixed indentation.

Thu Oct 12 02:01:47 2006  Tim Janik  <timj gtk org>

	* bseiirfilter.c: streamlined first comment section. got rid of useless
	definitions and preprocessor special cases.

Thu Oct 12 01:50:57 2006  Tim Janik  <timj gtk org>

	* bseiirfilter.c: streamlined some comments, fixed includes and 
	prototypes and constant tables to compile into a test program.

Thu Oct 12 01:44:17 2006  Tim Janik  <timj gtk org>

	* bseiirfilter.c: since the ellf program is shipped standalone and as
	part of the cephes math library, with no copying restrictions, this
	code is now put under an "AS IS" NO-WARRANTY license, properly 
	attributing Stephen L. Moshier.

Thu Oct 12 01:38:39 2006  Tim Janik  <timj gtk org>

	* bseiirfilter.c: added concatenated source code of the ellf filter
	design program by Stephen L. Moshier. program homepage is:
	  http://www.moshier.net/ellfdoc.html

	* bseiirfilter.h: new empty header file.
	
Sun Oct  8 21:20:14 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/resamplehandle.cc: Lessen the thresholds for downsampling
	datahandle 24bit test, because AMD64, due to its -mfpmath=sse default,
	doesn't get as good results as i386 machines do. With the new
	thresholds, make check passes on AMD64, too.

Thu Oct  5 17:39:50 2006  Stefan Westerfeld  <stefan space twc de>

	* gsldatahandle.h:
	* bsedatahandle-resample.cc: Implemented factor 2 downsampling
	datahandle.  Moved common code into a base class for both datahandles.

	* tests/resamplehandle.cc: Test downsampling datahandle.

Sat Sep 30 21:36:39 2006  Tim Janik  <timj gtk org>

	* bseautodoc.c: fixed -p and -s not taking effect.

Wed Sep 27 21:35:12 2006  Stefan Westerfeld  <stefan space twc de>

	* bseblockutils.cc:
	* bseblockutils.hh:
	* bseresamplerimpl.hh: Only optionally produce output during the
	filter implementation test.

Wed Sep 27 13:04:49 2006  Stefan Westerfeld  <stefan space twc de>

	* bsedatahandle-resample.cc: Fixes and cleanups. Upsampling Datahandle
	class Members are now prefixed with m_, all code that could possibly
	be moved into the class - such as the C vtable - is now present as
	static functions within the class, the destructor was made private
	- because reference counting is supposed to be used.
	Finally the class uses C style inheritance, by embedding m_dhandle.

Wed Sep 27 11:30:27 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/Makefile.am:
	* tests/testresampler.cc: Moved testresampler.cc from bse/tests to
	slowtests, to prepare it for automatic accuracy testing. Excessive
	automatic testing will be quite slow, thus it needs to be in this
	directory.

Wed Sep 27 11:27:35 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/testresampler.cc: Allow using --fpu instead of
	--bse-force-fpu, because that means less typing.
	In the accuracy test, print out the threshold given by the user, if
	any (that way, it becomes easier to validate the "safety margin"
	between the specified and the actual threshold)

Tue Sep 26 10:34:03 2006  Stefan Westerfeld  <stefan space twc de>

	* bseblockutils.cc bseblockutils.hh: Provide hook for testing the
	resampler2 implementation.

	* tests/testresampler.cc bseresamplerimpl.hh: Moved SSE filter
	implementation test to the new function fir_test_filter_sse, which
	can then be properly compiled using -msse within the bseblockutils
	plugin for the SSE case.

Fri Sep 22 15:25:19 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/testresampler.cc: Make resampler more user friendly, by using
	more long options, explicit command names and improving the usage. For
	instance testresampler ad becomes testresampler accuracy --down.
	We also leave it up to bse to determine whether to use the SSE or FPU
	variant; bse's decision can be influenced by --bse-force-fpu.
	Print usage() to stdout, to make it less'able.

Sun Sep 17 16:42:36 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/testresampler.cc: Minor fix in usage() function.

Sun Sep 17 16:27:59 2006  Stefan Westerfeld  <stefan space twc de>

	* tests/testresampler.cc: Added option parsing, to be able to specify
	a lot more details on what test should be performed and how.
	Use bse to instantiate the upsampler and downsampler; this allows us
	to use bse's automatic SSE detection features, and bse's coefficient
	sets. Added --precision option to select coefficient set.
	Added --freq-scan option, to test accuracy of an entire frequency
	range with one single call of the program.
	Added --precision-assert-db option, which allows the test program to
	be used in automated tests. If the accuracy is less than the specified
	minimum precision, an assertion is triggered.

	* tests/testresamplercoeffs.h: Remove this file, because the new
	testresampler code uses the coefficients defined in bseresampler.cc.

Sat Sep 16 15:50:34 2006  Tim Janik  <timj gtk org>

	* tests/resamplehandle.cc: merged with resamplercapi.c. made internal
	functions "static". fixed TSTART() usages. cleaned up main().

	* tests/Makefile.am, tests/resamplercapi.c: removed resamplercapi.c.

Sat Sep 16 15:19:33 2006  Tim Janik  <timj gtk org>

	* bseresamplerimpl.hh: renamed bseresampler.tcc to bseresamplerimpl.hh
	to match beast naming conventions, and because it effectively implements
	parts of bseresampler.hh.

Sat Sep 16 14:45:49 2006  Tim Janik  <timj gtk org>

	* bseblockutils.cc: access Resampler2::create_impl() via derivation.

	* bseresampler.tcc: whitespace fixups. fixed includes. fixed
	unconditional use of __m128. renamed AlignedMem to AlignedArray because
	this class implements aligned array accesses instead of a memory
	allocator. adapted callers.

	* bsedatahandle-resample.cc:
	* bseresampler.cc, gsldatahandle.h: whitespace and comment fixups.

	* bse/bseresampler.hh: whitespace fixups. made create_impl() non-public,
	it can be accessed by blockutil implementations via derivation.

Sat Sep 16 09:25:17 2006  Stefan Westerfeld  <stefan space twc de>

	* bseresampler.tcc bseresampler.cc bseresampler.hh: Added factor 2
	resampling code (up- and downsampling), which can use SSE instructions
	when available. The implementation was tuned for speed.

	* gsldatahandle.h bsedatahandle-resample.cc: Provide a datahandle,
	which does factor 2 upsampling.

	* bseblockutils.cc bseblockutils.hh: Provide factory method for the
	resampler, so that bse can automatically use the SSE version when SSE
	instructions are available.

	* tests/testresamplercoeffs.h tests/testresampler.cc: Standalone
	interactive test code for the resampler.

	* tests/resamplercapi.c tests/resamplehandle.cc: Tests for the
	resampler C API and the resampler data handle.

	* Makefile.am: Adapted Makefile rules for the new resampler sources.

	* tests/Makefile.am: Adapted Makefile rules for the new resampler
	tests. Fixed subnormals_CXXFLAGS, which now includes AM_CXXFLAGS.

Sun Sep 10 22:46:55 2006  Tim Janik  <timj gtk org>

	* gsldatautils.h, gsldatautils.c: added bse_wave_file_from_fbuffer() and
	bse_wave_file_from_dbuffer() to easily save WAV files from memory.

Sat Jul 15 20:06:24 2006  Tim Janik  <timj gtk org>

	* gslwaveosc-aux.c: use doubles instead of floats to store temporary
	filter state. this avoids artefacts for larger pitch values.

Sat Jul 15 04:11:06 2006  Tim Janik  <timj gtk org>

	* bsebiquadfilter.c (bse_biquad_filter_class_init): 
	disabled ::norm_type property because chenging it to something
	non-default drives the filter unstable too easily.

Thu Jul 13 21:36:28 2006  Tim Janik  <timj gtk org>

	* bseautodoc.c: pass through --bse-rcfile to bse.

Sun Jul  9 14:53:26 2006  Tim Janik  <timj gtk org>

	* renamed the guile based bsesh to bsescm. adapted related build rules,
	variable names, function names and documentation.

Sun Jul  9 02:44:41 2006  Tim Janik  <timj gtk org>

	* renamed bse_engine_garbage_collect() to bse_engine_user_thread_collect().

Sun Jul  9 02:24:00 2006  Tim Janik  <timj gtk org>

	* zintern/gus-patch.bse: 
	* bse/zintern/wave-mono.bse: updated to beast 0.7.0, clarified license.

Fri Jul  7 02:17:02 2006  Tim Janik  <timj gtk org>

	* gslcommon.c:
	* bsepcmdevice-oss.c:
	* bsemididevice-oss.c: use birnet_file_equals() and
	birnet_file_check().

Thu Jul  6 22:45:17 2006  Tim Janik  <timj gtk org>

	* zintern/Makefile.am: use birnet-zintern.

	* zintern/zintern.c: rmeoved.

Wed Jun 21 23:37:41 2006  Tim Janik  <timj gtk org>

	* bsestorage.c: type fixup.

Wed Jun 14 15:44:27 2006  Stefan Westerfeld <stefan space twc de>

	* bseitem.h(bse_item_undo_open): Added G_GNUC_PRINTF printf format
	attribute.

Mon Jun 12 01:09:51 2006  Tim Janik  <timj gtk org>

	* bsecxxutils.hh: got rid of TEMPLATE_ERROR::* which is provided
	by Birnet now.
	
	* bsecxxarg.hh: use Birnet::TEMPLATE_ERROR::invalid_type().

Mon Jun  5 13:59:52 2006  Tim Janik  <timj gtk org>

	* bsecxxutils.hh: removed binary lookup templates which are 
	in Birnet now.

Wed May 31 03:04:03 2006  Tim Janik  <timj gtk org>

	* bseproject.c bse_project_restore(): force dirty project flag 
	after restoring/merging.

	* gslfft.h: fixed documentation.

	* tests/testfft.c: added resynthesis tests.

Wed May 31 00:39:24 2006  Tim Janik  <timj gtk org>

	* bseengine.c (bse_trans_merge): docu fixups.

Sat May 27 00:22:44 2006  Tim Janik  <timj gtk org>

	* gslfft.h: document that gsl_power2_fftsr() scales the output data
	by 1.0/n_values.

Sun May 21 12:19:52 2006  Tim Janik  <timj gtk org>

	* bsesuper.c (super_compat_setup): added compat code for "license" and 
	"author" fields, loaded from BSE files < 0.7.0.

Sat May 20 15:49:07 2006  Tim Janik  <timj gtk org>

	* bse.h:
	* bsemain.[hc]: merged config data from gsl into BSE config data. make 
	use of BirnetInitValue to allow non-argc/argv configuraiton upon initilaization.
	removed bse_init_intern(). added bse_init_inprocess() and bse_init_test().
	adapted dependent code.

	* gslcommon.[hc]: removed config and initialization logica that moved to BSE.

	* bseserver.c: prevent rcfile loading if 
	birnet_init_settings->stand_alone is true.

	* bseobject.c: fixup "blurb" parameter handling, default to the
	empty string and skip default when saving.

	* bsesuper.c: fix up "license" and "author" defaults to empty strings.

	* bsesuper.c: pre-initialize authors and license field when 
	creating objects.

	* bsecore.idl: added configurable defaults for author and license fields.
	removed "Stepping Rates" config section. adapted dependent code.

	* bseutils.[hc]: provide initial default author and license values.

Fri May 12 16:49:38 2006  Tim Janik  <timj gtk org>

	* bseserver.c:
	* bsemain.[hc]: permit specification of an rcfile via --bse-rcfile.

	* bseplugin.c: fixed SSE vs. FPU filtering to also affect drivers.

Wed May 10 19:13:28 2006  Tim Janik  <timj gtk org>

	* bseengine.c: document that probe jobs may be freely reordered.

	* bseenginemaster.c: simply prepend probe jobs to a node's probe
	job list, compared to appending, this has O(1) instead of O(n^2)
	complexity which makes a huge different for some scenarios that
	trigger long probe job queues.
	also, collect probe jobs unconditionally after probes have been
	taken, since probing is not parallelized anymore.

	* bseglobals.[hc]: introduced new (idle handler) priority
	BSE_PRIORITY_NEXT. this essentially takes over the prio of the
	previous "now" stage which now got bumped up to the topmost
	priority. change bse_idle_next() and bse_idle_now() functions
	and their callers accordingly.

	* bseprobe.cc: shortened queue length to 3, so usually 3 client side
	probe requests will be handled including notification in a row.
	after 3 requests, the client should have managed to request new
	probes if it can process them this fast.
	fixed up low level job queueing to occour asyncronously with highest
	priority, so it essentially happens immediately but still allowes
	for aggregation of multiple probe requests. also fixed up queue length
	handling which was previously buggy in requesting only partial queue
	lengths which resulted in very short probe job queues on the engine
	modules and lots of unerruns during probe evaluation. added assertions.

Wed May 10 15:34:12 2006  Stefan Westerfeld <stefan space twc de>

	* tests/blocktests.cc: Add benchmarks for fill and copy.

Wed May 10 15:29:24 2006  Stefan Westerfeld <stefan space twc de>

	* tests/blocktests.cc: Make testing different block sizes easier by
	adding a const int for the block size.

Wed May 10 00:44:58 2006  Stefan Westerfeld <stefan space twc de>

	* bseblockutils.hh: Minor formatting fix.

Wed May 10 00:19:16 2006  Tim Janik  <timj gtk org>

	* bseprobe.cc:
	* bseengineutils.c:
	* bseladspamodule.c:
	* bsecontextmerger.c: use bseblockutils.hh functions to increase performance.

Tue May  9 22:53:51 2006  Stefan Westerfeld <stefan space twc de>

	* bsemain.c (bse_init_core): Removed random generator seed
	initialization for rand(), since it is now done by birnet_init.

Tue May  9 16:54:43 2006  Stefan Westerfeld <stefan space twc de>

	* bseblockutils.*: Added new block functions for subtracting and
	multiplying blocks, as well as calculating square sum (useful for
	determining the block energy) and minimum/maximum values.

	* tests/blocktests.cc: Test newly added functions.

Mon May  8 03:25:51 2006  Tim Janik  <timj gtk org>

	* bseconstant.h: reduce the number of supported output channels to 4.

	* bseplugin.h: allow type option specification for BSE_REGISTER_OBJECT*.

Mon May  8 02:21:59 2006  Tim Janik  <timj gtk org>

	* icons/Makefile.am:
	* icons/summation.png, icons/summation.xcf:
	* Makefile.am: 
	* bsesummation.idl, bsesummation.cc: removed BseSummation which now
	resides in plugins/.

	* bsesong.c: abort with g_error() if BseSummation can't be loaded.

Mon May  8 00:19:00 2006  Tim Janik  <timj gtk org>

	* icons/Makefile.am:
	* icons/ampctrl.png, icons/ampctrl.xcf:
	* Makefile.am:
	* bse.idl:
	* bseamplifier.idl, bseamplifier.cc: removed BseAmplifier which now
	resides in plugins/.

	* tests/testcxx.cc: create a BseBusModule as test object since
	BseAmplifier is not part of the BSE core anymore.

Sun May  7 23:39:43 2006  Tim Janik  <timj gtk org>

	* tests/subnormals.cc: added bench test for the float-cancellation macros
	used by BSE.

	* tests/Makefile.am: compile subnormals.cc with -ffast-match because this
	affects the subnormal cancellation benchmarks and because this option is
	used when compiling plugins.

Sun May  7 03:37:18 2006  Tim Janik  <timj gtk org>

	* bseprobe.hh, bseprobe.cc: allmost complete rewrite to fix lots of
	bugs and experimental code portions. several probe queues exist per
	BseSource now, one for each output channel / block-size combination. 
	underruns in probe calculation are now detected and are zeroed out
	where neccessary (e.g. in ffts). optimized quite some block copies,
	fills and loops. for min/max and energie calculation loops, SIMD
	variants are still needed. optimized probing logic for coalescing of
	signal emissions. added "idle"-probing, i.e. continuous probe result
	notification is now supported for unprepared sources without modules.
	syncronized simulataneous probe requests on multiple sources.

	* bseenginemaster.[hc]:
	* bseenginenode.[hc]:
	* bseengine.[hc]: reworked probing so probe jobs now simply replace
	the BseOStream array of a node when probing. creation of probe jobs
	and the probe callback was adapted accordingly. the user may take
	over memory management for the resulting BseOStream array, release
	then happens via the newly added bse_engine_free_ostreams(). fixed
	lots of buglets on the way, made use of bseblockutils.hh.

	* bseengine.[hc]: export bse_engine_const_zeros() to access a block
	of 0 floats at least as big as any engine block. 

	* bsecxxmodule.hh:
	* bsecxxmodule.cc: got rid of istreams, jstreams and ostreams 
	fields which just duplicated BseModule pointers for no good. since
	bseengine.h is deliberately not included by bsecxxmodule.hh, use
	the BSE_MODULE_GET_?STREAMSP() macros supplied by bsedefs.h.

	* bsedefs.h: provide BSE_MODULE_GET_?STREAMSP() similar to
	BSE_MODULE_GET_USER_DATA(), so some BseModule fields can be accessed
	without inclusion of bseengine.h.

Sat Apr 22 18:06:39 2006  Tim Janik  <timj gtk org>

	* tests/blocktests.cc: function name fixups. print out timing
	information about benchmark tests and calibration. assigned more
	benchmarking time to increase accuracy.

Sat Apr 22 13:36:24 2006  Stefan Westerfeld <stefan space twc de>

	* tests/blocktests.cc: Introduce benchmark time calibration from
	birnettests.h, so that the benchmarks take the same amount of time on
	any processor.

Thu Apr 20 14:11:54 2006  Stefan Westerfeld <stefan space twc de>

	* bseblockutils.*(substitute): Tiny name fix: substrate is not the
	right word for the argument here; substitute_impl is better.

Wed Apr 19 23:50:48 2006  Tim Janik  <timj gtk org>

	* bseblockutils.hh, bseblockutils.cc: new files which provide a couple
	utility functions for operations on blocks of floats and ints.

	* tests/blocktests.cc: test the new block utils.

	* bseplugin.c: added hook nodes to allow specialized plugins.

	* bseexports.h: added BseExportNodeHook. 

	* bsecxxplugin.hh: added BSE_CXX_REGISTER_STATIC_HOOK() and
	BSE_CXX_REGISTER_HOOK().

	* Makefile.am: fixed up clean rules so stamp files
	are properly deleted and dependent files are properly built.

Wed Apr 19 02:41:55 2006  Tim Janik  <timj gtk org>

	* Makefile.am:
	(CLEANFILES): don't add @PERLRULE@ to CLEANFILES, as this can cause 
	its contents to be partially commented out. instead, add 
	$(bse_proc_gen_sources) conditionally to MAINTAINERCLEANFILES
	or CLEANFILES, depending on the AM conditional WITH_PERLRULE.

Sat Apr 15 03:11:18 2006  Tim Janik  <timj gtk org>

	* bse/bseplugin.c: use BirnetCPUInfo to determine whether to load
	plugins with .SSE extension.

	* bse/bsemain.[hc]: added BseMainArgs.force_fpu, settable 
	via --bse-force-fpu.

Fri Apr 14 02:18:51 2006  Tim Janik  <timj gtk org>

	* bsesequencer.cc: moved everything extern "C" and everything static
	out of the anon namespace. leave just C++ class definitions inside
	namespace anon. this fixes C API linking errors with gcc-4.2.

Thu Apr 13 23:56:01 2006  Tim Janik  <timj gtk org>

	* Makefile.am: fixed regeneration of files in srcdir.

	* bseplugin.c: filter out plugins that don't end in .FPU.*.

Tue Apr 11 23:38:11 2006  Tim Janik  <timj gtk org>

	* tests/Makefile.am:
	* Makefile.am: make dist fixes, conditionalize perl rules.

Sat Apr  8 02:09:15 2006  Tim Janik  <timj gtk org>

	* bseloader-mad.c:
	* bseloader-wav.c: use basename instead of full file path for internal
	wave names.

Tue Apr  4 21:59:39 2006  Tim Janik  <timj gtk org>

	* tests/cutvorbis.c:
	* tests/magictest.c:
	* tests/mathtests.c:
	* Makefile.am: removed tools.

	* tests/testfft.c: 
	* tests/subnormals.cc: changed to make use of test macros.

Tue Apr  4 02:06:45 2006  Tim Janik  <timj gtk org>

	* tests/Makefile.am: build and check loophandle, got rid of testwavechunk.

Mon Apr  3 21:51:28 2006  Tim Janik  <timj gtk org>

	* tests/subnormals.cc: first test for correctness, then for performance.

Mon Apr  3 15:50:14 2006  Stefan Westerfeld <stefan space twc de>

	* tests/subnormals.cc tests/subnormals-aux.cc: Added code which
	verifies that subnormal elimination functions are correct.

Sun Apr  2 18:19:42 2006  Tim Janik  <timj gtk org>

	* bse/Makefile.am: some more dependency and minor build fixes.

Sun Apr  2 03:31:24 2006  Tim Janik  <timj gtk org>

	* Makefile.am: merged with gslmakefile.inc. fixed dependencies. 
	simplified build rules. integrated with Makefile.decl.

	* *.hh *.cc: removed useless "mode: c++;" statement.
	fixed Bse::* functions being implemented in anonymous namespaces.

	* bsecxxmodule.cc: fixed non-static functions and static assertions.

	* bsecxxmodule.hh: assert the correct object type in the
	BSE_EFFECT_INTEGRATE_MODULE() macro via const_cast<>(this) instead
	of by using bogus namespacing.

	* bseieee754.h: work around gcc-4.2 not allowing "register" unions.

	* bseloader-guspatch.cc: fixed compiler warning.

	* gsldatahandle-mad.c:
	* bseloader-mad.c: include topconfig.h for libmad presence.

	* bsesequencer.cc: use offsetof() instead of G_STRUCT_OFFSET() which
	gcc-4.2 doesn't seem to like.

	* bsesong.c: fixed prototype scope.

	* gslmakefile.inc: removed, merged into Makefile.am.

	* gsldefs.h: include gslconfig.h, don't define BIRNET macros.

	* gslwavechunk.c: fixed variable initialization.

Sat Apr  1 16:34:48 2006  Tim Janik  <timj gtk org>

	* tests/subnormals-aux.cc:
	* tests/subnormals.cc: extended tests.

	* bseieee754.h: renamed denormal-cancellation macros to
	BSE_FLOAT_FLUSH() and BSE_DOUBLE_FLUSH().
	added arithmetic and ?:-operator variants for denormal cancellation.
	use the arithmetic variants by default, which seems to be the fastest
	in most scenrios.

Sat Apr  1 14:23:57 2006  Tim Janik  <timj gtk org>

	* tests/subnormals-aux.cc:
	* tests/subnormals.cc: added pure-arithmetic cancellation test.

Fri Mar 31 23:44:41 2006  Tim Janik  <timj gtk org>

	* bseieee754.h: added bse_float_zap_denormal() and 
	bse_double_zap_denormal() to get rid of denormal floating point
	numbers.
	added coarse but faster BSE_FLOAT_FLATTEN() and BSE_DOUBLE_FLATTEN()
	macros to modify denormal float variables.

Fri Mar 31 21:57:36 2006  Tim Janik  <timj gtk org>

	* bseieee754.h: fix BSE_FLOAT_PARTS() and BSE_DOUBLE_PARTS() for C++
	which needs constructors for union casts.

	* tests/subnormals-aux.cc:
	* tests/subnormals.cc: test for subnormal float performance.

Thu Mar  9 23:38:29 2006  Tim Janik  <timj gtk org>

	* tests/*: added missing or changed the license to LGPL.

Thu Mar  9 02:40:51 2006  Tim Janik  <timj gtk org>

	* Makefile.am: fix up -pthread -> -lpthread, required for libtool
	library linkage. link against libbirnet.o and libsfi.o.

	* bse/ldscript.map: export birnet symbols.

	* *.[hc]*: adaptions to birnet_ namespace.

Tue Mar  7 03:04:13 2006  Tim Janik  <timj gtk org>

	* ldscript.map: 
	* Makefile.am: link libsfi.la and libbirnet.la into libbse.la.
	export only symbols from the public namespaces.

Sat Mar  4 18:47:30 2006  Tim Janik  <timj gtk org>

	* tests/Makefile.am (plottest): added plottest rule
	(moved here from gslmakefile.inc).

	* gslmakefile.inc: removed gsltestoutput test rule.

	* tests/filter-defs.gp: increase precision (10000 samples).

Sat Mar  4 18:41:59 2006  Tim Janik  <timj gtk org>

	* gsl.gnuplot:
	* gslarrows: removed.

Sat Mar  4 18:41:08 2006  Tim Janik  <timj gtk org>

	* tests/filter-defs.gp: 
	* tests/arrows.gp: CVS copied.

Thu Feb 23 23:15:32 2006  Tim Janik  <timj gtk org>

	* bseautodoc.c (show_structdoc): fixed records being treated like sequences.

Wed Feb 15 23:43:08 2006  Tim Janik  <timj gtk org>

	* bseautodoc.c: unify pspec output. generate doxer digestible object
	documentation.

Sun Feb 12 03:01:09 2006  Tim Janik  <timj gtk org>

	* bseautodoc.c: write out procedure and structure docu as python
	parsable hash table/tuples. this allowes doxer to generate ordinary
	API documentation from it.

	* bsemain.c: allow script registratrion for bse_init_intern().

	* *.c: added __FILE__ and __LINE__ when registering type blurbs.

	* bseplugin.c:
	* bseexports.h:
	* bsecxxutils.[hc]*:
	* bsescripthelper.[hc]:
	store and pass on file/line information for type blurbs.

	* bsetype.[hc]: store file and line information together with type blurbs.
	adaped IDL compiler pspec constructors.

	* mkcproc.pl: generate type blurb with file/line information.

Sat Jan 21 18:50:44 2006  Stefan Westerfeld  <stefan space twc de>

	* gsldatacache.[hc]: Change caching code to handle 64 bit offsets.

Fri Jan 20 14:46:43 2006  Stefan Westerfeld  <stefan space twc de>

	* gsldefs.h: GslLong is now 64-bit on any platform (before, it was
	only 64 bit on 64 bit platforms).

	* tests/testwavechunk.c:
	* gsldatahandle-mad.c:
	* gsldatahandle-vorbis.c:
	* gsldatautils.c:
	* gslwavechunk.c:
	* gslwaveosc.c: Adapted printf format strings to the GslLong change
	("%ld" -> "%lld").

	* gsldatahandle.[hc]: Changed GslLong -> int64.

Fri Dec 23 00:57:58 2005  Tim Janik  <timj gtk org>

	* bseconstvalues.h: provide BSE_MIN_TRANSPOSE and BSE_MAX_TRANSPOSE
	which currently allow a transposition range of 2 * 72 semitones, i.e.
	+- 6 octaves.

	* bseglobals.h: implement BSE_TRANSPOSE_FACTOR() which provides
	the transposition factor for a semitone in the range -72..0..+72.
	implement BSE_FINE_TUNE_FACTOR() and BSE_SEMITONE_FACTOR() in terms
	of bsemathsignal.h functions.

	* bseglobals.c: removed transposition and fine tune factor tables.

	* bsemathsignal.c: added double precision tables for cent fine tune
	factors and transposition by +-11 octaves. removed slow and sub-accurate
	table initialization routines.

	* bsemathsignal.h: const fixes for factor table pointers. added 
	transposition factor function for +-11 octaves.

	* bsestandardosc.c: added transpose property.

	* gsloscillator-aux.c, gsloscillator.h: added config setting for 
	transposition in semitones.

Thu Nov 17 18:10:56 2005  Stefan Westerfeld  <stefan space twc de>

	* gslfilter.[hc]: Added new argument to gsl_filter_fir_approx, to
	enable interpolation not "value linear" between the values in the
	transfer functions, but "dB linear".

	* tests/mathtests.c: Changed due to gsl_filter_fir_approx API change.

Sat Jul 23 17:04:06 2005  Tim Janik  <timj gtk org>

	* bseutils.c: 
	bse_icon_from_pixdata(): fixed overrun checks.

Wed Jun 22 23:12:00 2005  Tim Janik  <timj gtk org>

	* bseamplifier.cc: changed exponential volume curve from qcircle2 (which
	aparently was false, compared to other exponential volume amplifiers) to
	bse_approx_qcircle4().

	* bse/bsewave.h, bse/bsewave.c: allow velocity dependent wave index 
	lookups, seperate osc_freq and velocity values used for lookups from
	GslWaveChunk. adapted related code portions.

	* gslwaveosc.c: wave chunk lookups currently are done with a hardcoded
	velocity of 1.

Wed May 25 21:48:22 2005  Tim Janik  <timj gtk org>

	* bsecore.idl: added stamp_ticks to record SongTiming.

	* bsesong.c: fill in stamp_ticks field of BseSongTiming struct.

	* bsejanitor.c: added ::shutdown signal, similar to the old ::closed 
	signal, but signals the start of connection take down, so the connection
	doesn't have to be closed.

	* bseserver.proc: use BseJanitor::shutdown for script registration.

Mon May 23 19:37:50 2005  Tim Janik  <timj gtk org>

	* bsecore.idl: added MidiChannelEventType and MidiChannelEvent to export
	midi events.

	* bseproject.h, bseproject.c, bseproject.proc: allow fetching a projects
	midi notifier.

	* bsejanitor.[hc]: removed user-msg* properties and added status
	message string property. removed ::close signal (which was unused and
	stopped to provide proper notification).

	* bsejanitor.proc: removed msg type from bse-script-set-status.

	* bsemidireceiver.hh, bsemidireceiver.cc: removed notifier getter.
	notify events in the correct order. properly wake up midi notifiers.

	* bsemidinotifier.[hc]: emit notification about MIDI events, using a
	MidiChannelEvent structure.

	* bsemidievent.c: removed cruft.

	* bseserver.c: setup midi notifier main loop source.

	* bseglue.[hc]: removed rorecord and rosequence type registration
	which were now unused.

Sat May 21 02:39:14 2005  Tim Janik  <timj gtk org>

	* bsemain.[hc]: introduced bse_init_textdomain_only(), which is used 
	internally and is usefull for programs like bsesh.

	* bsescripthelper.c: translate script blurb and script parameter names
	which are not translated by the scripts themselves. the reason is that
	scripts shouldn't translate any strings during procedure registration
	phase (only markup for translation). this allowes us to generate 
	reliable keywords for parameter names and procedure categories from 
	the english names, and provide the translated version by deferred
	translation.

Thu May 19 23:07:12 2005  Tim Janik  <timj gtk org>

	* bsecore.idl: renamed UserMsgType to MsgType and synced message types
	with SFI message types. renamed UserMsg to Message. added message type
	identifier and label to Message.

	* bsejanitor.proc: removed janitor arg from script internal methods.
	renamed script internal methods to bse-script- procedures. changed
	message handling to not require a round trip (for janitor handle) and
	to support all fields of BseMessage. 

	* bseserver.h, bseserver.c: print out messages emitted as ::message
	signal via sfi_msg_default_handler().

	* *.h, *.c: adapted to new message and debugging API.

Mon May 16 21:01:35 2005  Tim Janik  <timj gtk org>

	* bsejanitor.c: try early reaping of child. removed unneccessary
	::notify::connected notification.
	
	* bseglue.c: use g_warning() for procedure invocation errors so
	this can be properly traced in a debugger.

Mon May 16 20:12:51 2005  Tim Janik  <timj gtk org>

	* bsecore.idl: added janitor to UserMsg. 

	* bsemain.c: add janitor to user messages.

	* bseserver.h, bseserver.c: made bse_server_user_message() reflect
	(newly added) UserMsg fields.

	* bsejanitor.proc: added (bse-janitor-message) to allow scripts to send
	real error, warning etc. messages.

Mon May 16 17:27:49 2005  Tim Janik  <timj gtk org>

	* bsejanitor.h, bsejanitor.c, bsejanitor.proc: 
	added exit-code and exit-reason properties. logic cleanups so the
	exit state is available for read outs once connected becomes FALSE.
	API change so script_name and proc_name are always set together.

Sat May 14 20:52:56 2005  Tim Janik  <timj gtk org>

	* bseserver.c: improved error messages.

	* bsedevice.c, bsedevice.h: 
	bse_device_set_opened(): enter OPEN state, stores device name.
	device_open_args(): store device opening argument list, assert
	bse_device_set_opened() is used.
	bse_device_close(): cleanup device anme and device opening arguments.

	* bseproject.proc: renamed bse-project-dirty to bse-project-is-dirty
	to circumvent name coliisions in the C++ binding.

	* bse*device-*.c: use bse_device_set_opened().

	* *.c: adaptions to sfilog.h API changes.

Thu May 12 00:13:05 2005  Tim Janik  <timj gtk org>

	* bseserver.h, bseserver.c: support emission of user mesage signal 
	without constructing a user message via bse_server_send_user_message().
	turned log messages about failure during PCM and MIDI device selection
	into rich log message with primary, secondary text and details.

	* bsecore.idl: adapted UserMsg record according to SfiLogMessage.

	* bsemain.h, bsemain.c: adapted log handler.

Wed May 11 15:01:28 2005  Tim Janik  <timj gtk org>

	* bseproject.proc: added change-name() to alter a project name without
	affecting undo.

Mon May  9 21:05:02 2005  Tim Janik  <timj gtk org>

	* bseproject.h, bseproject.c: properly implemented project dirty
	state, based on the project's undo stack.

	* bseproject.proc: added procedures to query and reset project 
	dirty state.

	* bseundostack.h, bseundostack.c: implemented dirt counter plus
	counter modification methods.

Mon May  9 18:24:00 2005  Tim Janik  <timj gtk org>

	* bsewave.c (bse_wave_get_index_for_modules): fixed stupid bug that 
	caused every second sample to be lost when saving.

Thu May  5 19:03:41 2005  Tim Janik  <timj gtk org>

	* bsestorage.c (bse_storage_put_data_handle): fix floats being saved via
	localized printf(), instead of locale-independent putf/putd methods.

Tue Apr 19 16:30:51 2005  Tim Janik  <timj gtk org>

	* Makefile.am, gslmakefile.inc: fixed gsl headers not being uninstalled.

Tue Apr 19 15:44:46 2005  Tim Janik  <timj gtk org>

	* bsedefs.h: prototype BseLoader structures.

	* bseloader.h, bseloader*.c:
	* tests/magictest.c, tests/mathtests.c: loader rename to Bse.

	* bsepcmwriter.c, bseserver.proc, bseutils.c, bsewave.c:
	* bsewaverepo.proc, gsldatautils.c, gsldatautils.h: renamed loader
	and wave file from gsl to bse.

	* gslloader.c, gslloader.h:
	* gslloader-wav.c, gslloader-oggvorbis.c:
	* gslloader-aiff.c, gslloader-bsewave.c, gslloader-mad.c: removed.

	* gslmakefile.inc: removed gslloader files and local install hook.

Tue Apr 19 14:39:39 2005  Tim Janik  <timj gtk org>

	* bseloader.h: CVS copied from gslloader.h.
	* bseloader.c: CVS copied from gslloader.c.
	* bseloader-aiff.c: CVS copied from bseloader-aiff.c.
	* bseloader-bsewave.c: CVS copied from gslloader-bsewave.c.
	* bseloader-mad.c: CVS copied from gslloader-mad.c.
	* bseloader-oggvorbis.c: CVS copied from gslloader-oggvorbis.c.
	* bseloader-wav.c: CVS copied from gslloader-wav.c.

Sun Apr 10 23:23:27 2005  Tim Janik  <timj gtk org>

	* bsebus.h, bsebux.c: save syncronization state across restore.
	re-syncronize in restore_finish if required. 

	* bseobject.h, bseobject.c: introduced restore_start and resotore_finish
	methods, and IN_RESTORE state. 

	* bsestorage.h, bsestorage.c: call restore_start before restoring 
	objects and call restore_finish after restoring.

Mon Mar  7 08:35:41 2005  Tim Janik  <timj gtk org>

	* renamed every occourance of *.gen-idl.h (C++ headers generated from 
	idl files) to *.genidl.hh.

Mon Mar  7 07:55:46 2005  Tim Janik  <timj gtk org>

        * removed obsolete .h C++ headers.

	* adapted sources to compile against .hh C++ headers.

Tue Mar  1 15:24:23 2005  Tim Janik  <timj gtk org>

	* bsemidievent.c (bse_midi_signal_default): fixed wrong division for
	CONTINUOUS_11 default value.

Sat Feb  5 14:46:13 2005  Tim Janik  <timj gtk org>

	* bseloader-guspatch.cc: disabled gus-patch specific xinfos, so gus 
	patch files are currently treated like ordinary samples.

Sat Jan 29 16:58:38 2005  Tim Janik  <timj gtk org>

	* bsesequencer.cc: work around compiler/linker bugs on SuSE 9.2.

Sat Jan 29 01:00:37 2005  Tim Janik  <timj gtk org>

	* bseloader-guspatch.cc (bse_init_loader_gus_patch): changed magic to
	match v1.0 and v1.1 directly.

Tue Jan 25 00:51:29 2005  Tim Janik  <timj gtk org>

	* bsewave.c (bse_wave_store_private): don't store empty xinfos.

Mon Jan 24 22:59:12 2005  Tim Janik  <timj gtk org>

	* bseloader-guspatch.cc (fread_dword): fixed error codes and mixed case
	function names.

Mon Jan 24 22:49:16 2005  Tim Janik  <timj gtk org>

	* bseloader-guspatch.cc: fixed function linkage and missing newlines.

Mon Jan 24 22:38:21 2005  Tim Janik  <timj gtk org>

	* bseproject.proc: implemented bse_project_inject_midi_control() to 
	submit extra midi events into a playing project.

	* Makefile.am: added bseloader-guspatch.cc.

	* bseloader-guspatch.cc: 
	* gslcommon.[hc]: initialize guspatch loader with 
	bse_init_loader_gus_patch().

	* bsemididecoder.c: 
	* bsemidievent.c: zero initialize newly allocated midi events.

	* bsetrack.c: wording fixup.

Fri Jan 21 00:48:43 2005  Tim Janik  <timj gtk org>

	* bsepart.proc: added bse-part-select-controls().

Thu Jan 20 17:52:14 2005  Tim Janik  <timj gtk org>

	* bsestorage.c: removed position arguemnt 
	from wstore_data_handle_reader(), adsed data length counter.

	* gsldatahandle-vorbis.c: removed position arguemnt
	from vorbis1_handle_reader().

	* gsldatautils.c: removed position arguemnt
	from wstore_context_reader(), adsed data length counter.

Thu Jan 20 17:12:24 2005  Tim Janik  <timj gtk org>

	* bsestorage.c: use sfi_wstore_putf() and sfi_wstore_putd() internally.
	bse_storage_put_data_handle(): don't use printf and %g to store floats,
	but use bse_storage_putf() so floats are stored locale independant.

Thu Jan 20 15:18:53 2005  Tim Janik  <timj gtk org>

	* bsestorage.c (bse_storage_printf): issue warnings if the format string
	contains localised directives.

Thu Jan 20 05:10:27 2005  Tim Janik  <timj gtk org>

	* gslcommon.c (gsl_error_from_errno): return BSE_ERROR_NONE for an
	errno of 0.

	* bseproject.c (bse_project_store_bse): pass on storage errors.

	* bsestorage.c (bse_storage_flush_fd): pass on storage errors.

Thu Jan 20 04:21:53 2005  Tim Janik  <timj gtk org>

	* bsestorage.c (restore_item_property): generate proper warnings
	for non-writable properties.

	* bsestandardosc.c (bse_standard_osc_class_init): disabled self 
	modulation mode which only produces huge amounts of aliasing.

Thu Jan 20 01:28:59 2005  Stefan Westerfeld  <stefan space twc de>

	* bseloader-guspatch.cc: Make more data found in the GUS Patch headers
	available as xinfos.

Thu Jan 20 00:30:50 2005  Tim Janik  <timj gtk org>

	* bse/gslloader-bsewave.c: changed BseWave magic to "#BseWave1".

Thu Jan 13 21:35:38 2005  Tim Janik  <timj gtk org>

	* gsldatautils.[hc]: added gsl_data_make_fade_ramp() and
	gsl_data_clip_sample().

	* bseenums.[hc]: turn FILE_EMPTY into its own error code, added
	BSE_ERROR_DATA_UNMATCHED.

	* gsldatahandle.c (insert_handle_close): don't free xinfo pointer
	which we merely copied (but didn't deep-duplicate) upon open.

Wed Jan 12 02:08:21 2005  Tim Janik  <timj gtk org>

	* bsecore.idl: added part link structure and sequence.

	* bsepart.[hcp]*: added ::links-changed signal for asyncronous
	notification of part link changes. added procedurte to list all
	part links, sorted by tick stamps. fixed idle handler maintenance. 

	* bsetrack.c: properly notify parts about part link changes.
	added bse_track_list_part().

Sat Jan  8 04:44:14 2005  Tim Janik  <timj gtk org>

	* gslloader-pat.cc: removed.

Sat Jan  8 04:43:00 2005  Tim Janik  <timj gtk org>

	* bseloader-guspatch.cc: CVS copied from gslloader-pat.cc.

Fri Jan  7 02:53:05 2005  Stefan Westerfeld  <stefan space twc de>

	* gslloader-pat.cc: Reimplemented data_offset storing in a way that is
	both: fairly readable in the code, and based on the new style
	loader_data array that replaces the loader_offset field.

Fri Jan  7 02:01:11 2005  Tim Janik  <timj gtk org>

	* bsestorage.c: store Ogg/Vorbis data handles with increasing serialnos.

	* gsldatahandle-vorbis.[hc]: enforce specification of a serialno when 
	creating a store handle with gsl_vorbis1_handle_new().
	gsl_vorbis_make_serialno(): new function which generates unique
	serialnos (per program runtime).

	* gslvorbis-cutter.[hc]: allow overriding the output serialno (by 
	default the same as the input) with a specific serialno via
	gsl_vorbis_cutter_force_serialno().
	gsl_vorbis_cutter_unfilter_serialno(): removed.

Fri Jan  7 01:11:04 2005  Tim Janik  <timj gtk org>

	* bsewave.header: fixed midi-note docs.

	* gsldatahandle.c: removed midi-note xinfo handling, this doesn't
	belong here.

	* gslloader-bsewave.c: fixed osc-freq parsing. fallback to midi-note
	frequency specification if osc-freq is not given.

Thu Jan  6 23:44:54 2005  Tim Janik  <timj gtk org>

	* gsldatahandle.[hc]: removed unused QData.

Thu Jan  6 23:28:03 2005  Tim Janik  <timj gtk org>

	* gslloader-bsewave.c: removed <= 0.6.4 compat code, since we haven't
	released .bsewave files of that kind yet.

Thu Jan  6 23:03:36 2005  Tim Janik  <timj gtk org>

	* bse/gslloader-pat.cc: 
	* bse/bsetrack.c: use "gus-patch" play-type.

	* zintern/mono-wave.bse:
	* zintern/gus-patch-mono.bse: removed.
	
	* zintern/gus-patch.bse: removed "-mono" suffix from object.

Thu Jan  6 23:02:30 2005  Tim Janik  <timj gtk org>

	* zintern/gus-patch.bse: CVS copied from gus-patch-mono.bse.

Thu Jan  6 22:27:53 2005  Stefan Westerfeld  <stefan space twc de>

	* gslloader-pat.cc: Fix compilation: reintroduce data_offsets, as the
	loader_offset field is no more. Changed xinfos of envelopes to
	single comma delimited lists of floats.

Thu Jan  6 19:51:36 2005  Tim Janik  <timj gtk org>

	* bsewave.[hc]: keep inlined data handles opened, to protect against
	.bse file overwriting.

	* bsestorage.c (bse_storage_add_dblock): keep opened data handles
	open to protect against overwriting.

Thu Jan  6 18:37:16 2005  Tim Janik  <timj gtk org>

	* bsestorage.c: store/parse Ogg/Vorbis data handles as in compressed
	form, rather than unpacked.

	* bsewave.[hc]: removed wave chunk url structures which were unused
	anyway. store waves in order, sorted by oscillator frequency. use
	SfiRing to hold the list of wave chunks.

	* gsldatahandle-vorbis.[hc]: allow peeking of mix_freq from
	gsl_data_handle_new_ogg_vorbis_zoffset(). added convenience function
	gsl_vorbis1_handle_put_wstore().

	* gslloader-bsewave.c: use "vorbis-link" as keyword for inlined 
	Ogg/Vorbis streams. minor cleanups.

Wed Jan  5 01:10:54 2005  Tim Janik  <timj gtk org>

	* bseenums.[hc]: added BSE_ERROR_WRONG_N_CHANNELS.

	* gslloader-bsewave.c: make sure that chunks carry the required number
	of channels.

	* gsldatahandle-vorbis.c: pass on number of channels for
	gsl_data_handle_new_ogg_vorbis_zoffset() handles.

	* bsewave.c: slight warning fixup.

Mon Jan  3 23:59:39 2005  Tim Janik  <timj gtk org>

	* bsewave.header: document format changes.

	* gslloader-bsewave.c: rewrote parsing code, cleaned up token list,
	make use of xinfos. properly identify auto-detect and raw-sample files.

	* bseutils.[hc]: added bse_xinfos_parse_assignment().

	* gslloader.h: extended wave chunk data fields.

Sun Jan  2 14:41:59 2005  Tim Janik  <timj gtk org>

	* bsestorage.[hc]:
	bse_storage_put_xinfos(): save xinfo arrays.
	bse_storage_parse_xinfos(): load xinfo arrays.

	* bsewave.[hc]: cleanups, removed per-chunk locator logic. added 
	finalize, added bse_wave_clear(). save and parse xinfo strings.
	bse_wave_load_wave_file(): clear wave before loading, set locator
	after successfull loading.

	* bsewaverepo.proc: use bse_wave_load_wave_file().

Mon Jan 3 11:31:14 2005 Stefan Westerfeld <stefan space twc de>

	* gslloader-pat.cc: Since "the double free with gslloader.c" is fixed
	in gslloader.c now, we don't need our mini workaround any longer.

Sun Jan  2 15:26:55 2005  Stefan Westerfeld  <stefan space twc de>

	* bsetrack.c: Use different playback networks for GUS Patches and
	normal waves, depending on play-type xinfo string.

	* bsewave.h: Add xinfos field (needs implementation).

	* gslloader-pat.cc: Set play-type to "gus-patch-mono".

Sun Jan  2 15:23:35 2005  Stefan Westerfeld  <stefan space twc de>

	* zintern/Makefile.am:
	* zintern/zintern.c: Use Scheme identifier style for zintern names.

	* zintern/gus-patch-mono.bse: Add a network for GUS Patch playback.

Sun Jan  2 11:41:05 2005  Stefan Westerfeld  <stefan space twc de>

	* gslloader-pat.cc: GUS Patches are only mono patches.

Sat Jan  1 21:59:43 2005  Tim Janik  <timj gtk org>

	* bseutils.[hc] bse_xinfos_dup_consolidated(): added flag to indicate 
	whether internal xinfos should be copied.

	* gsldatahandle-mad.c:
	* gsldatahandle-vorbis.c:
	* gsldatahandle.[hc]:
	* gslloader-bsewave.c:
	moved bit_depth, mix_freq and needs_cache (back) into the 
	GslDataHandleSetup structure, because they are an integral part of
	all wave data storage formats. turned osc-freq into a custom xinfo
	string, because it is not.

Sat Jan  1 21:20:03 2005  Tim Janik  <timj gtk org>

	* zintern/wave-mono.bse: CVS copied from mono-wave.bse.

Fri Dec 31 16:39:21 2004  Tim Janik  <timj gtk org>

	* gsldatahandle.[hc]: removed bit_depth, osc_freq and mix_freq from
	GslDataHandleSetup, removed gsl_data_handle_override(). these
	values are accessible throuzgh accessors and stored in xinfos now.

	* gslloader-bsewave.c: provide osc-freq via xinfo.

	* gsldatahandle-vorbis.c:
	* gsldatahandle-mad.c: set bit-depth, osc-freq and mix-freq via xinfos.

Fri Dec 31 13:44:16 2004  Tim Janik  <timj gtk org>

	* gsldatahandle.c:
	(gsl_wave_handle_new_zoffset): 
	(gsl_wave_handle_new): provide dhandle xinfos without creating
	an extra data handle.

Fri Dec 31 13:32:47 2004  Tim Janik  <timj gtk org>

	* bseutils.c (bse_xinfos_dup_consolidated): duplicate xinfo array and
	remove empty/removal xinfos (i.e. "foo=" infos).

Fri Dec 31 01:40:33 2004  Tim Janik  <timj gtk org>

	* gsldatahandle-vorbis.c: cleanups. implemented GslVorbis1Handle which
	can be used to store the compressed Ogg/Vorbis data of an Ogg/Vorbis
	GslDataHandle. this uses GslVorbisCutter internally to properly rewrite
	the Ogg stream.

	* gslvorbis-cutter.[hc]: support non-cutting mode. support specification
	of the logical bitstream to process by setting a serialno filter.

	* tests/cutvorbis.c: added option handling for -s,-p-k,-S.

	* gslloader-bsewave.c: allow loading of waves with an empty chunk list.

	* gslloader.[hc]: support loading of waves with empty chunk list.

	* gslcommon.c (gsl_error_from_errno): handle ENODATA.

Thu Dec 30 17:06:29 2004  Tim Janik  <timj gtk org>

	* gslloader.c (gsl_wave_dsc_free): remove bogus struct modification.

Thu Dec 30 04:05:50 2004  Tim Janik  <timj gtk org>

	* gslloader.c (gsl_wave_dsc_free): removed bogus g_strfreev().

Wed Dec 29 22:24:51 2004  Stefan Westerfeld  <stefan space twc de>

	* gslloader.h:
	* gslloader-pat.cc: Code cleanups and better error handling.

Wed Dec 29 12:52:01 2004  Stefan Westerfeld  <stefan space twc de>

	* bsestorage.c: Include "gslcommon.h" for gsl_byte_order_to_string.
	This fixes a segfault (and compile warning) on AMD64.

Wed Dec 29 11:37:55 2004  Stefan Westerfeld  <stefan space twc de>

	* gslloader-pat.cc: Use the new xinfo API.

	* bseieee754.h: Fix compiler warnings in bse_ftoi/bse_dtoi on AMD64.

Wed Dec 29 04:06:07 2004  Tim Janik  <timj gtk org>

	* gsldatacache.[hc]: tweaked caching algorithm, so 25% cache memory of
	low persistency data handles is kept upon cache sweeps, this makes the
	low persistency cache mode attractive enough for e.g. WAV files.
	changed flags, there's a high_persistency flag now which is valid only
	for opened data caches.

	* gsldatahandle-vorbis.c:
	* gsldatahandle-mad.c: set .needs-cache xinfo flag.

	* gsldatahandle-mad.c: 
	* gsldatahandle-vorbis.c:
	* gsldatahandle.h:
	* gsldatahandle.c:
	data handle cleanups and vtable consolidations. introduced
	gsl_data_handle_get_source() which returns the source data handle if
	availabele. the source data handle must have the exact same length and
	values like the originating data handle to validly be handed out.
	gsl_data_handle_needs_cache(): implemented in terms of returning
	the .needs-cache xinfo flag.
	gsl_wave_handle_new_zoffset():
	gsl_wave_handle_new(): on __linux__, unset the .needs-cache xinfo
	flag on wave handles to spare cache performance for OGGs and MP3s.

	* bseutils.[hc]: moved *_xinfo_* accessor functions here.

Mon Dec 27 23:59:19 2004  Tim Janik  <timj gtk org>

	* gsldatahandle.[hc]: added xinfos[] array to opened data handles.
	added gsl_data_handle_new_add_xinfos(),
	gsl_data_handle_new_remove_xinfos() and
	gsl_data_handle_new_clear_xinfos() to control the xinfos of a data
	handle after loading.
	added xinfos[] field to gsl_wave_handle_new_zoffset() and
	gsl_wave_handle_new().

	* gslloader-bsewave.c: support parsing of xinfos["key"] = "value"
	statements.

	* gslloader.[hc]: introduced xinfos for loader structures, provided
	xinfos accessors. removed authors, license, blurb (comment) and
	looping fields. this data is taken care of by xinfos now.

	* gslloader-oggvorbis.c:
	* gslloader-bsewave.c:
	* gslloader-wav.c:
	* gslloader-mad.c:
	* gslloader-aiff.c: provide chunk->xinfos instead of accessing
	chunk fields. support data-handles with xinfos.

	* bseenums.[hc]: merged error enums with GslErrorType.

	* gsldefs.h:
	* gslcommon.[hc]: removed GslErrorType specific code.
	include bseenums.h.

	* bsemain.h: include fixes.

	* tests/*.c:
	* *.c: BseErrorType enum fixups.

Mon Dec 27 00:12:44 2004  Tim Janik  <timj gtk org>

	* gslloader-bsewave.c (gsl_wave_token): fix off-by-one error in reverse
	token lookup.

Sun Dec 26 19:23:05 2004  Stefan Westerfeld  <stefan space twc de>

	* gslloader-pat.cc: Fixes/Code cleanups: the deinitialization
	code (freeing, closing files and so on) should work now.

Sun Dec 26 13:04:02 2004  Stefan Westerfeld  <stefan space twc de>

	* gslwaveosc-aux.c: Fix ping pong looping: the code now should behave
	correctly for backward playing (negative block dirstride).

Sat Dec 25 17:14:15 2004  Stefan Westerfeld  <stefan space twc de>

	* gslloader-pat.cc: Handle format field correctly (support 8bit and
	unsigned samples). Fix bug in tuning.

Fri Dec 24 22:39:48 2004  Tim Janik  <timj gtk org>

	* bsecontainer.c (bse_container_remove_backedup): force project 
	deactivation for choldren with automation properties, because
	automation properties can't be setup on prepared objects.

	* bseproject.[hcp]*: export undo-stack deactivation function
	bse_project_push_undo_silent_deactivate(), so other code portions
	can force project deactivation for specific undo steps.

	* bsecxxplugin.hh: export *_choice_values() getter when declaring
	enumeration types.

	* bseplugin.c: provide choice value getter for exported enum types.
	register enum transform functions for dynamic enum types (allowed
	since glib-2.4).

	* bseenginemaster.c: first discard the engine schedule, then 
	modify the master node list, so the old schedule doesn't point
	at dangling nodes.

	* bsemath.[hc]: added bse_float_gnuplot() to ease debugging.

	* bseexports.h: added *_choice_values() getter function to
	BseExportNodeEnum.

	* bsemathsignal.[hc]: documentation updates.

Fri Dec 24 15:26:58 2004  Stefan Westerfeld  <stefan space twc de>

	* gslloader-pat.cc: Added initial implementation of a GSL loader for
	GUS patches (like those usually used in timidity patch sets).

Mon Dec 20 19:51:07 2004  Tim Janik  <timj gtk org>

	* bsemathsignal.h: removed bse_approx_exp2() and bse_signal_exp2().
	added bse_approx2_exp2() .. bse_approx9_exp2() functions to approximate
	2^x with varying precision and speed.
	added bse_approx2_tanh() .. bse_approx9_tanh() functions to approximate
	tanh(x) with varying precision and speed.
	added bse_saturate_hard() and bse_saturate_branching() to implement
	fast CLAMP()-ing.

Sun Dec 19 13:44:43 2004  Tim Janik  <timj gtk org>

	* bseparam.[hc]: added minimum and maximum parameters to 
	bse_param_spec_freq().

	* bsetype.h: turned Frequency() parameters into logarithmic properties.

Sat Dec 18 23:58:04 2004  Tim Janik  <timj gtk org>

	* bseconstvalues.h: constant cleanups, removed _f and _d postfixes and
	superfluous casts.

	* bseglobals.h: removed deprectaed constants. deprecated time ranges
	which are badly choosen and ADSR specific.

	* bsemathsignal.h: consolidation of signal<->frequency 
	conversion macros.

	* bseutils.h: define bbuffer size.

Fri Dec 17 21:19:25 2004  Tim Janik  <timj gtk org>

	* bsecxxutils.hh: removed assert_derivation() and assert_ptr_derivation().
	added template class EnforceDerivedFrom<>; with partial derivation to check
	for type derivations and pointers tehreof. implemented assert_derived_from<>()
	in terms of class EnforceDerivedFrom<>; so it can check for derivation of
	types and pointers thereof (without needing a partial specialization of
	a function template which C++ doesn't allow).

	* bsestandardosc.c (bse_standard_osc_class_init): added missing descriptions.

Thu Dec 16 02:11:26 2004  Tim Janik  <timj gtk org>

	* gsldatautils.h: 
	gsl_conv_from_double_clip():
	gsl_conv_from_double():
	gsl_conv_from_float_clip(): 
	gsl_conv_from_float(): use bse_dtoi() for double->int conversion to
	get faster rounding and to avoid C++ warnings.

Wed Dec 15 23:58:50 2004  Tim Janik  <timj gtk org>

	* zintern/mono-wave.bse: adapt to beast 0.6.4. this fixes song compat
	code adding extra track->master connections to tracks using wave files.

Mon Dec 13 15:31:37 2004  Stefan Westerfeld  <stefan space twc de>

	* bseprocidl.cc bsecore.idl: Info strings should be lower case.

Sun Dec 12 19:47:32 2004  Tim Janik  <timj gtk org>

	* removed gslwave.header and gslloader-gslwave.c, build from
	gslloader-bsewave.c.

Sun Dec 12 19:38:22 2004  Tim Janik  <timj gtk org>

	* bsewave.header: CVS copied from gslwave.header.

	* gslloader-bsewave.c: CVS copied from gslloader-gslwave.c.

Sun Dec 12 18:55:36 2004  Tim Janik  <timj gtk org>

	* bseenginemaster.c:
	* bseengineutils.c:
	general fixups to ensure probe/flow/boundary jobs are collected
	in order and are given precedence over collecting transaction jobs.

	* bseenginenode.h: turned probe jobs, acces jobs and boundary jobs into
	a single union EngineTimedJob. this avoids breaking strict aliasing
	rules which results in wrong code generation with gcc-3.3 and gcc-3.4.
	adapted all structure usages.

Sun Dec 12 03:13:17 2004  Tim Janik  <timj gtk org>

	* bseengineutils.c: make sure pending user trash jobs are collected
	before ordinary trash jobs are collected.

	* bsesource.[hcp]*: added bse_source_has_output().

Sat Dec 11 22:45:46 2004  Tim Janik  <timj gtk org>

	* bsepart.c (bse_part_restore_private): parse velocity as int as well as float.

Sat Dec 11 15:35:16 2004  Tim Janik  <timj gtk org>

	* bseengine.[hc]: added block-size argument to probe callback.

	* bseenginemaster.c: properly probe unscheduled nodes. optimized
	probing by keeping a list of nodes with probe jobs.
	altered probe job value counter maintenance.
	clean up probe jobs upon discarding.

	* bseengineutils.c: assert NULL probe jobs on discarded nodes.

	* bseprobe.cc: properly handle probes from unscheduled nodes.

Fri Dec 10 15:24:35 2004  Tim Janik  <timj gtk org>

	* bseautodoc.c: fixed bugs, print out signals. print out
	all BSE objects.

	* bseprobe.idl, bseprobe.cc: deliver mix frequency with probes.

Mon Dec  6 23:46:11 2004  Tim Janik  <timj gtk org>

	* bseprobe.cc: block-size computation fixups. this fixes ffts beyond
	block boundaries.

Mon Dec  6 22:47:00 2004  Stefan Westerfeld  <stefan space twc de>

	* bseplugin.h: To allow implementing C-style plugins in C++ sources,
	as required for the PortAudio driver, declare extern "C" linkage for
	the symbol defined by BSE_DEFINE_EXPORTS when compiled within a C++
	source. The extern "C" code was taken from bsecxxplugin.hh.

Fri Dec  3 21:31:26 2004  Tim Janik  <timj gtk org>

	* bsewaverepo.proc: don't override detailed errors.

	* gsldatahandle-mad.[hc]: provide GslErrorType errors instead of 
	strings. added gsl_data_handle_new_mad_err(), improved debugging.

	* gslloader-mad.c: pass on errors.

Mon Nov 29 21:45:25 2004  Tim Janik  <timj gtk org>

	* bseenginemaster.c: append probe jobs upon insertion, so probe data
	isn't mixed up between multiple probe jobs, and probe jobs are
	processed in order.

	* bseprobe.cc: normalize fft by multiplying with 1/n.

	* bseutils.[hc]: added bse_debug_dump_floats() to easily dump debugging
	wave data to a file in /tmp/.

Sat Nov 27 20:02:04 2004  Tim Janik  <timj gtk org>

	* engine-mplan.txt: * reflect renames in the code base

Sat Nov 27 18:57:11 2004  Tim Janik  <timj gtk org>

	* bsepcmwriter.c (bse_pcm_writer_open): truncate .wav files when 
	opening. wrtie out the initial wav header with a very long data
	block size, so abortion of the wav saving process (which needs
	adaption of the data size later on) leaves a wav file with
	non-0 data block length. (required for most programs to read
	wav files).

Sat Nov 27 18:39:38 2004  Tim Janik  <timj gtk org>

	* bseprobe.idl:
	* bseprobe.cc: implemented blackman windowed fft probes.
	added support for varying probe block sizes.
	removed artifical delay at probe start.

Sat Nov 20 07:29:15 2004  Tim Janik  <timj gtk org>

	* bseprobe.cc: shorten probe-queue length to 3 subsequent requests,
	this should be sufficient to account for GUI scope request jitter
	of approximately 1 block in size.
	
Wed Nov 17 01:19:53 2004  Tim Janik  <timj gtk org>

	* bseengine.c (bse_engine_constrain): don't align block sizes to
	powers of 2, but simply to 4 to utilize CPU better.

Mon Nov 15 18:11:10 2004  Tim Janik  <timj gtk org>

	* bseengine.c (bse_job_integrate): set a flag to indicate node ownership
	by the job.

	* bseengineutils.c (bse_engine_free_job): free job-owned nodes.

	* bseenginemaster.c (master_process_job): 
	(ENGINE_JOB_INTEGRATE): take over node ownership from job.
	(ENGINE_JOB_DISCARD): pass on node ownership to job.

	* bseenginenode.h: use an anonymous union in BseJob, adapted users.

Mon Nov 15 15:18:01 2004  Tim Janik  <timj gtk org>

	* bseengineutils.c: manage transaction trash list with a FIFO rather
	than a stack, so execution order of user-callbacks and free handlers
	is preserved.

Sun Nov 14 15:32:57 2004  Tim Janik  <timj gtk org>

	* bseengine.[hc]: documentation updates.
	bse_job_boundary_discard(): implemented jobs to discard modules deferred.

	* bsemidireceiver.cc: use bse_job_boundary_discard() to discard modules,
	since extra jobs may be queued asyncronously from process()implementations.

Sat Nov 13 20:12:23 2004  Tim Janik  <timj gtk org>

	* bsecompat.c: added compat for DavChorus and DavBassFilter.

Sat Oct 30 13:40:13 2004  Tim Janik  <timj gtk org>

	* bsebusmodule.idl:
	* bsebusmodule.cc:
	* bsebus.c: turned left and right volume properties into real-valued
	db-volume properties.

	* bseglobals.h:
	* bsecore.idl: provide MINDB constant.
	got rid of unused constants.

	* bsesong.hc]: removed unused volume properties.

	* bsetype.h: provide DBVolume pspec constructor.

	* bseamplifier.idl: 
	* bseamplifier.cc: added db-volume property ::master_volume. turned 
	::olevel into a compat property. documented last supporting version
	for compat properties.

Sat Oct 16 11:17:21 2004  Tim Janik  <timj gtk org>

	* bsetrack.proc: provide ensure-output() which connects to master bus.

	* bsesong.[hc]:
	provide bse_song_ensure_master().
	bse_song_compat_finish(): auto-connect old tracks to master bus.

	* bsesong.proc: removed ensure-output-busses() which is really just
	internal compat code.

	* bseproject.c:
	bse_project_restore(): allow supers to perform compat actions after
	restoring from file.

	* bsesuper.[hc]: added compat_finish() class method.

Sat Oct 16 10:02:06 2004  Tim Janik  <timj gtk org>

	* bsebus.proc: added ensure-output() to ensure a master bus connection.

	* bsesong.proc:
	remove-bus(): fixed up loosing ::master-output property across undo.
	get-master-bus(): don't create a master bus.
	ensure-master-bus(): create a master bus if required.

Sat Oct 16 08:34:40 2004  Tim Janik  <timj gtk org>

	* bsebus.c: allow ::solo property editing on master.

	* bsesong.c: allow master as solo track which makes sense since tracks,
	can be connected directly to master. don't mute master if another track 
	is the solo track.

Sat Oct 16 00:50:40 2004  Tim Janik  <timj gtk org>

	* bseproject.[hc]: provide bse_project_clear_undo().

	* bsesong.proc: clear undo after ensuring bus, track and part
	connectivity, since we don't maintain proper undo state across 
	these operations. implemented ensure-track-links().
	added find-any-track-for-part() which is faster than
	find-track-for-part() and can be used for orphaned part checks.

	* bsetrack.[hc]: provide bse_track_get_last_tick().

	* bsetrack.proc: added list-parts-uniq(). 

	* bseutils.[hc]: provide bse_item_seq_from_ring().

	* bseprobe.cc:
	* bsebus.c: adapt to sfi changes.

Fri Oct 15 03:55:11 2004  Tim Janik  <timj gtk org>

	* bsepart.c: fixed negative control events and fine tune parsing.

	* bsewaveosc.[hc], bsewaveosc.proc: introduced channel property
	to control playback channel for multi-channel samples (stereo).
	changed seek-API to support syncronous seeking of multiple wave
	oscillators.

	* gslwaveosc.c, gslwaveosc-aux.c: properly clamp the configured channel.

Fri Oct 15 01:27:52 2004  Tim Janik  <timj gtk org>

	* bsesnet.c: don't serialize auto-activate=#f property value.

	* bsesource.c: reduce serialization precision for pos-x/y to float.

Fri Oct 15 01:13:56 2004  Tim Janik  <timj gtk org>

	* bsemidisynth.c: request polyphonic voice processing for the 
	selected midi channel.

	* bseproject.c: stay in playback mode even if only snets and no song
	need processing.

Wed Oct 13 21:28:37 2004  Tim Janik  <timj gtk org>

	* bseserver.c (bse_server_close_devices): wait until pcm module is 
	discarded before destroying teh pcm writer.

Tue Oct 12 10:51:55 2004  Tim Janik  <timj gtk org>

	* gsl-fftgen.pl: 
	* mkcalls.pl: 
	* mkcproc.pl:
	* mktypes.pl:
	don't generate "/** ...*/" comments, as two-asterisc comments are used 
	as documentation generator magic.

Fri Oct  8 18:57:40 2004  Tim Janik  <timj gtk org>

	* bsepcmmodule.c (bse_pcm_imodule_process): fixed recently broken value
	count for bse_pcm_handle_read().

	* bsecore.idl: renamed PropertyCandidates.label from nick, 
	adapted users.

Fri Oct  8 14:21:06 2004  Tim Janik  <timj gtk org>

	* bseobject.[hc]: added bse_object_strdup_debug_handle() for 
	threrad-safe debugging handle generation.

	* bsesequencer.h:
	* bsesequencer.cc: reduces track position debugging verbosity.
	added underrun detection and underrun debugging messages.
	made BSE_SEQUENCER_FUTURE_BLOCKS private.

Fri Oct  8 13:37:40 2004  Tim Janik  <timj gtk org>

	* bsepcmmodule.c: check for a readable pcm device upon resetting the
	PCM input module. handle partial read requests. properly zero initialize
	newly allocated structures. 

	* bseserver.[hc]: implemented bse_server_require_pcm_input(), which
	issues an appropriate warning if PCM recordingis reduced to a silent
	input stream.

Fri Oct  8 11:38:07 2004  Tim Janik  <timj gtk org>

	* bsedefs.h: don't include <math.h>. files needing math functions
	should include <bse/bsemath.h> instead.

	* bsemath.[hc]: removed BSE_EPSILON_CMP().
	moved contents from gslmath.h and gslmath.c here and changed namespace
	to bse. adapted users.

	* bseieee754.h: changed namespace to bse, adapted users.
	use signbit() if available.

	* bsemathsignal.[hc]: changed namespace to bse, adapted users.

	* gslmath.h, gslmath.c, gslsignal.h, gslsignal.c, gslieee754.h: removed.

	* gsl-fftconf.sh: include bsemath.h in generated source.

	* tests/mathtests.c: disabled ellipsis and complex root finding tests.

Fri Oct  8 10:01:37 2004  Tim Janik  <timj gtk org>

	* bseieee754.h: CVS copied from gslieee754.h.

Fri Oct  8 09:55:43 2004  Tim Janik  <timj gtk org>

	* bsemathsignal.h: CVS copied from gslsignal.h.

	* bsemathsignal.c: CVS copied from gslsignal.c.

Fri Oct  8 06:52:09 2004  Tim Janik  <timj gtk org>

	* bsesequencer.cc:
	* gslloader-aiff.c:
	* bseenginemaster.c: use g_static_assert().

Mon Oct  4 03:46:52 2004  Tim Janik  <timj gtk org>

	* bsestorage.c: fixed version string parsing.

	* bsecore.idl: provide user-message types and record.

	* bseserver.[hc]: extended user message notifications.

	* bsemain.c:
	* bsesequencer.cc:
	* bseenginemaster.c: set log handler for the various threads.

Sat Oct  2 21:12:13 2004  Tim Janik  <timj gtk org>

	* *.c: adapt to logging API changes.

Wed Sep 29 21:01:28 2004  Tim Janik  <timj gtk org>

	* bsesequencer.cc: make wake-up pipe non-blocking. properly wake up
	sequencer thread, so it stops polling on removed io watch fds.

Wed Sep 29 19:59:42 2004  Tim Janik  <timj gtk org>

	* bsesequencer.h: CVS copied from bsessequencer.h.

	* bsesequencer.cc: CVS moved from bsessequencer.cc.

	* bsessequencer.h: removed.

Wed Sep 29 19:16:23 2004  Tim Janik  <timj gtk org>

	* bsessequencer.cc: renamed symbols from ssequencer to sequencer,
	adapted users. added io watch API:
	bse_sequencer_add_io_watch(): install poll-fds and a handler.
	bse_sequencer_remove_io_watch(): remove an io watch handler.

	* bsemididevice-oss.c: ported to use BseSequencer io watch API.

	* bsemididevice.h: added midi_decoder field to handle.

Wed Sep 29 11:44:23 2004  Tim Janik  <timj gtk org>

	* bsessequencer.c: removed.
	* bsessequencer.cc: ported from C to C++.

	* Makefile.am: build bsessequencer.cc instead of bsessequencer.c.

Wed Sep 29 11:37:44 2004  Tim Janik  <timj gtk org>

	* bsessequencer.cc: CVS copied from bsessequencer.c.

Tue Sep 28 23:01:23 2004  Tim Janik  <timj gtk org>

	* bsemain.[hc]: added --bse-override-plugin-globs <glob> and
	--bse-override-script-path <path> options. 

	* bseplugin.c: allow plugin path overriding.

	* bsescripthelper.c: allow script path overriding.

Tue Sep 28 20:38:45 2004  Tim Janik  <timj gtk org>

	* gslcommon.[hc]: moved file tests to sfi:
	gsl_error_from_errno(): some errno reassignbements, for EBADF, ENOTDIR
	and ENODEV, return fallback to indicate operation failure (rather than
	"not found" or internal error). adapted users.
	gsl_check_file_equals(): removed, use sfi_file_equals() instead.
	gsl_file_check(): renamed from gsl_check_file(), use sfi_file_check()
	internally.

Tue Sep 28 18:26:23 2004  Tim Janik  <timj gtk org>

	* bsedefs.h: added n_fds to BseIOWatch, adapted users.

	* bseplugin.c bse_plugin_path_list_files(): allow *.o plugins besides *.so.

Mon Sep 27 20:36:55 2004  Tim Janik  <timj gtk org>

	* bsedevice.[hc]:
	bse_device_open(): if no arguments are specified, try opening the device
	with the arguments povided by its listed device entries.
	made bse_device_split_args() non-public.

	* bsemididevice.h: removed public midi_fd from handle, fixed users.

Mon Sep 27 18:26:56 2004  Tim Janik  <timj gtk org>

	* bsemidireceiver.cc (bse_midi_receiver_voices_pending): don't try to 
	check busy state of NULL voices.

Mon Sep 27 06:38:57 2004  Tim Janik  <timj gtk org>

	* bsepcmdevice.[hc]: removed queue_length field from handle, as it's
	OSS specific. turned req_queue_length field into req_latency_ms, i.e.
	requested latency in milliseconds.

	* bsemididevice-oss.c: added queue_length field to handle. adapt
	to BsePcmDevice.req_latency_ms.

Mon Sep 27 01:09:39 2004  Tim Janik  <timj gtk org>

	* bsepcmdevice-oss.c: fixed hardcoded n_channels=2 and a number of buglets.

Sun Sep 26 06:00:46 2004  Tim Janik  <timj gtk org>

	* bsedevice.c: fixed logic that collapses multiple 'auto' drivers.
	don't skip auto-list drivers after trying to open 'auto', users
	may have provided special device arguments.

	* bsepcmdevice-oss.c: API updates. added underrun detection and handling.
	added hs - hard-sync option to initiate retriggers on underruns.
	fixed read/write opening mode logic. moved poll timeout calculation
	logic from bsepcmmodule.c here. simplified code by using number of
	frames all over the place. take latency settings into account
	and honour them if the device has been opened readable. ensure block
	writing is always paired with a previous block read to stabelize
	latency queue length.

	* bsepcmdevice.[hc]: added req_block_length field for a tentative
	block_length request and req_queue_length field to request queue
	lengths according to the current latency settings.
	bse_pcm_device_request(): allow latency and block-length requisitions.
	bse_pcm_device_get_mix_freq(): mix frequency accessor.
	bse_pcm_device_get_handle(): require block_length specification.
	bse_pcm_handle_read():
	bse_pcm_handle_write(): removed n_values argument, which is now always
	handle->block_length, as setup from bse_pcm_device_get_handle().
	bse_pcm_handle_status(): removed status() method alltogether.
	bse_pcm_handle_check_io(): introduced check_io() which to some extend
	merges logic from the former status() and bse_pcm_module_poll()
	functions. check_io() returns whether a block may be read or
	needs to be written and the timeout until arrival of such an event
	if data may not immeditely be processed.
	bse_pcm_handle_latency() added latency() method which is used to
	return the current full amount of latency introduced by the device.
	bse_pcm_handle_set_watermark(): removed watermarks, handled internally
	by check_io() now.
	bse_pcm_freq_mode_from_freq():
	bse_pcm_freq_from_freq_mode(): removed frequency mode indirection.
	bse_pcm_device_frequency_align(): new function to align mix frequencies
	to common device values.

	* bsepcmmodule.c: removed watermark based timeout calculation, the
	pcm layer handles stuff now. work around non-readable device handles.

	* bseserver.c: added latency and block_size to pcm device requests.
	keep the first device error we encounterted. allow free-form mix
	frequencies at first, fallback to aligned frequencies if no device
	could be opened.

	* bsessequencer.[hc]: allow queries about how bad the sequencer
	is lagging behind his scheduled future stamp.

	* bsepcmdevice-null.c: adapt to new BsePcmDevice API, sleep 
	cooperatively since we might run at nice level -20.

	* bseengine.c: docu updates.

Fri Sep 24 10:41:18 2004  Tim Janik  <timj gtk org>

	* bseserver.c (bse_server_open_pcm_device): fallback to write-only mode
	if opening in read-write mode failed.

Fri Sep 24 09:14:14 2004  Tim Janik  <timj gtk org>

	* bsedevice.[hc]: added groups to device entries. adjusted device
	list dump. 

	* bseenums.[hc]: adapted device errors, so they better correspond
	to user defined configuration settings.

	* bsemain.[hc]: load drivers from drivers dir before dumping device
	list. 

	* bseplugin.[hc]: extended bse_plugin_path_list_files() to support
	BSE_PATH_DRIVERS.

	* bsepcmdevice-oss.c: don't list ENODEV devices.

	* bsemididevice-oss.c: don't list ENODEV devices.

Thu Sep 23 15:43:02 2004  Tim Janik  <timj gtk org>

	* bsedevice.[hc]: added base class for BseMidiDevice and BsePcmDevice.
	move open() and close() (former suspend()) methods here. implemented
	automated device selection and listing.

	* bsepcmdevice-null.[hc]: added null PCM device.

	* gslcommon.[hc]:
	gsl_check_file(): added char device, block device and pipe checks.
	gsl_check_file_equals(): check whether two files point to the same inode.

	* bse*device-*.[hc]: adaptions to new device API.

	* bsemididevice.[hc]:
	* bsepcmdevice.[hc]: adaptions to bsedevice.[hc].

	* bsemain.c: implemented proper device listing.

	* bseserver.c: adaptions to new device API.

	* bsessequencer.[hc]: provide bse_sequencer_thread_lagging() for
	null PCM device integration.

Wed Sep 22 14:28:11 2004  Tim Janik  <timj gtk org>

	* bsegconfig.[hc]: added bse_gconfig_merge_args() to merge
	configuration with command line arguments.

	* bsemain.[hc]: provide BseMainArgs globally, setup from argv parsing.
	parse --bse-latency, --bse-mixing-freq, --bse-control-freq, 
	--bse-driver-list, --bse-pcm-driver and --bse-midi-driver.

	* bseserver.c: merge argv arguments into global config after
	parsing rc file.

Wed Sep 22 02:58:07 2004  Tim Janik  <timj gtk org>

	* bsetrack.c:
	bse_track_context_create():
	bse_track_context_dismiss(): enable poly voices not only for snets, but
	also for waves supplied by the user.

Wed Sep 22 02:13:59 2004  Tim Janik  <timj gtk org>

	* bsessequencer.[hc]: rewrote and majorly simplified playback
	object maintenance. simply allow removal and additions of
	songs to the sequencer, adapted callers.

	* bsesuper.[hc]: removed sequencer specific code and API, 
	adapted callers.

	* bsesong.[hc]: adapted to new sequencer API.

	* bseproject.[hc]: simplified and adapted to new sequencer API.

Tue Sep 21 23:59:09 2004  Tim Janik  <timj gtk org>

	* bsestorage.c: store and restore property automation setups.

Tue Sep 21 04:41:29 2004  Tim Janik  <timj gtk org>

	* bsemidireceiver.[hc]*: introduced explicit enabling of polyphonic
	voice handling. avoid warning about unavailable voices for disconnected
	tracks, or if polyphonic handling was not enabled.

	* bsetrack.c: request polyphonic midi channel handling iff the track
	provides a synth mesh and is prepared.

	* bseproject.c: bse_project_start_playback(): ensure all modules are
	properly intergrated into the engine before starting the sequencer.

	* bsesource.c: guard objects with PREPARED flag until after reset()
	invocation.

	* bseengine.[hc]: added bse_module_is_scheduled() and bse_job_nop().

	* bseengineutils.c:
	* bseenginemaster.c: handle nop jobs properly.

Tue Sep 21 02:40:05 2004  Tim Janik  <timj gtk org>

	* bsemidireceiver.cc: don't throw invalid warnings.
	voice_input_module_access_U():
	change_voice_input_L(): mono voices may receive note-on while busy.

Tue Sep 21 02:18:37 2004  Tim Janik  <timj gtk org>

	* bsemidireceiver.cc: added documentation blurb on voice states and 
	table entries, in relation to note-on, note-off and done=1 events.
	added missing _U and _L locking marks to function names (except
	midi receiver methods which are all implicitely _L).
	voice_input_module_access_U():
	voice_switch_module_reuse_U():
	voice_input_enter_sustain_U():
	voice_input_enter_idle_U(): added mssing locking guards.

Tue Sep 21 01:03:30 2004  Tim Janik  <timj gtk org>

	* bsemidireceiver.[hc]*: BseFreeFunc fixup, ensured the free function
	is called from the user thread (BSE core thread) without any locks
	still held.

Mon Sep 20 01:38:14 2004  Tim Janik  <timj gtk org>

	* bseproject.proc:
	undo_do_deactivate(): properly deactivate via bse_project_deactivate(),
	not just bse_project_stop_playback() which doesn't reset PREPARED state
	anymore. 
	project_push_undo_silent_deactivate(): stop playback before undo *and*
	redo execution.

	* bsesource.proc: undo fixup for set-automation.

Mon Sep 20 00:44:12 2004  Tim Janik  <timj gtk org>

	* completed infrastructure for automation.

	* bseengine.[hc]: return tick_stamp of transaction execution from
	bse_trans_commit().

	* bseenginemaster.c: provide a boolean to _engine_pop_job(), indicating
	whether the internal tick stamp returned by bse_trans_commit() may be
	updated.

	* bseengineutils.[hc]: implemented tick_stamp return handling for
	bse_trans_commit().

	* bsemidireceiver.[hc]*: removed minimum and maximum from
	bse_midi_receiver_add_control_handler(). instead, return whether
	user data is setup for this handler or not. at the moment, this
	seems to be sufficient to implement automation.

	* bsesource.[hc]: added property_updated() class function. fixed
	automation property maintenance.

	* Makefile.am: fixed dependencies, install bsecore.genidl.hh.

	* bsecxxmodule.cc: include bsecore.genidl.hh through bsecxxplugin.hh,
	so bsecore.genidl.hh is publically available.

	* bsecore.idl: use bse_intern_path_user_data() instead of macros from
	topconfig.h.

	* bseutils.[hc]: provide bse_intern_path_user_data() 
	for bsecore.genidl.hh.

	* bsecxxbase.[hc]*: only flag writable properties as G_PARAM_CONSTRUCT.
	added set_accessors() to setup per inheritance level property
	handling functions. supplied trampoline templates to generate class
	method calls.

	* bsecxxmodule.[hc]*: update BSE properties through 
	BseSourceClass.property_updated() in free() handler of automation
	property flow accessor. properly quantize automated bool property
	values. fixed user_data setup of midi control handler.
	record tick_stamp  of last module update.

	* bsecxxplugin.hh: removed function definition macros. instead, use
	trampoline generation templates. include <bse/bsecore.genidl.hh>
	after defining all required macros, implement get_candidate()
	trampoline template which depends on class PropertyCandidates,
	supplied by bsecore.genidl.hh.

	* bsecxxutils.[hc]*: comment updates. removed function definition
	macros which are replaced by trampoline templates.

Thu Sep 16 15:41:38 2004  Tim Janik  <timj gtk org>

	* bsecxxmodule.[hc]*: accessor->closure rename where appropriate.
	moved MidiControlJobData into SynthesisModule.
	renamed module_configurator() to make_module_config_closure().
	use bse_midi_receiver_set_control_handler_data() to provide an
	auto_update() function handle for midi_control_handler().
	(SynthesisModule): provide an auto_update_accessor() template, to be
	used as flow job function on engine modules to call auto_update().
	specialised template so an auto_update() method is required only
	for objects with the NeedAutoUpdateTag category.

	* bsedefs.h: provide BSE_MODULE_GET_USER_DATA().
	* bseengine.c: double check BSE_MODULE_GET_USER_DATA().

	* bsemidireceiver.[hc]*: added extra user_data to midi control handler,
	required by bsecxxmodule: bse_midi_receiver_set_control_handler_data().

Wed Sep 15 22:48:41 2004  Tim Janik  <timj gtk org>

	* *.idl: removed SFI_PARAM_ prefix from option constants.

Tue Sep 14 19:06:12 2004  Tim Janik  <timj gtk org>

	* bsesource.proc:
	* bsesource.[hc]: switched automation API over to BseMidiControlType.

	* bsecore.idl: added i18n markup. added MidiControlType, which 
	duplicates the portions of MidiSignalType that are usable by automation.

	* bsecxxplugin.hh: provide enum value initialization funciton, instead
	of initializing from static constructor (and calling i18n code prema-
	turely).

	* bseexports.h (BseExportNodeEnum): offer an enum value list 
	initialization 	function instead of a pointer to already initialized
	enums values.

	* bseplugin.c: call enum value list initializer.

Tue Sep 14 13:42:11 2004  Tim Janik  <timj gtk org>

	* bsemidireceiver.cc: cleanup control handler if the last module is
	removed from the control handler module list.

	* bsesource.c: count :automate: properties as :prepared: properties.

	* bsesource.proc: provide bse_source_is_prepared(), 
	bse_source_set_automation(), bse_source_get_automation_channel() and
	bse_source_get_automation_control().

Tue Sep 14 09:24:27 2004  Tim Janik  <timj gtk org>

	* bsesource.[hc]: allow a MIDI channel to be specified together with
	automation properties. 

	* bsecxxmodule.cc: support automation property specific MIDI channels.

Tue Sep 14 01:40:18 2004  Tim Janik  <timj gtk org>

	* bse/bsemidireceiver.[hc]*: partially reverted last change of
	introducing BseMidiControlData. instead, implemented value
	clamping before calling midi control handlers.

	* bsecxxmodule.cc: removed value clamping logic, pass on minimum
	and maximum to bse_midi_receiver_add_control_handler().

Tue Sep 14 01:13:26 2004  Tim Janik  <timj gtk org>

	* bsecxxmodule.idl:
	* bsecxxmodule.cc: more effect automation work, generate debugging
	message from module flow access function, properly constrain control
	event values.

	* bsemidireceiver.[hc]*: support midi control data structure per
	control handler instead of just a module pointer.

Mon Sep 13 02:37:28 2004  Tim Janik  <timj gtk org>

	* bsemidireceiver.h:
	* bsemidireceiver.cc: provide a mechanism to register, unregister and
	notify handlers about midi control changes.

	* bsesource.[hc]: collect :automate: properties, and maintain an
	automate-property => midi-control-number association.

	* bsecxxmodule.cc: first steps in implementing automation 
	infrastructure, currently only debugging messages are generated.
	integrate_engine_module():
	dismiss_engine_module(): queue job with accessor function to register
	and unregister a midi receiver control handler for the module.

	* bseitem.[hc]: added bse_item_get_snet().

	* bseenums.[hc]: more errors.

Wed Sep  8 21:50:10 2004  Tim Janik  <timj gtk org>

	* bsecompat.[hc]: added bse_compat_rewrite_ichannel_ident() and
	bse_compat_rewrite_ochannel_ident() with compat code for the
	new BseArtsCompressor.
	bse_compat_rewrite_type_name(): take a BseStorage argument. added
	ArtsCompressor => BseArtsCompressor and 
	ArtsStereoCompressor => BseArtsCompressor rules for versions <= 0.6.2.

	* bsesource.[hc]:
	resolve_osource_input(): improved error messages, call input/
	output channel compat code.

	* bsestorage.[hc]: provide bse_storage_item_get_compat_type() to
	figure the original module type to be restored, prior to compat
	code type name rewriting.

Wed Sep  8 16:52:32 2004  Tim Janik  <timj gtk org>

	* bsecxxutils.hh: changed TEMPLATE_ERROR::invalid_type() and
	TEMPLATE_ERROR::invalid_argument_type() to throw an error upon
	instantiation and not parsing with g++-3.4.

Wed Sep  8 15:38:01 2004  Tim Janik  <timj gtk org>

	* bsecore.idl: use g_intern_printf() to reformat i18n strings which
	contain G_SEARCHPATH_SEPARATOR_S, so intltool can do the right thing
	for translators.

Tue Sep  7 01:19:24 2004  Tim Janik  <timj gtk org>

	* bsebus.c: don't store defaults for solo, mute and sync properties.

	* bsesubsynth.c: throw out default values for unused proeprties.

Mon Sep  6 09:13:05 2004  Tim Janik  <timj gtk org>

	* bsebus.[hc]: implemented ::outputs property. provided logic in
	functions that may be shared with BseTrack. proxy notifies from
	parent for master bus.

	* bsetrack.[hc]: implemented ::outputs property based on functions
	provided by bsebus.[hc].

Sat Sep  4 04:54:34 2004  Tim Janik  <timj gtk org>

	* bsecore.idl: option cleanups. provide NOTE_*() macros for Note()
	properties.

	* bsetype.h: pspec constructor cleanups and adaptions.

	* bseinfo.c: provide octave info.

Fri Sep  3 14:30:34 2004  Tim Janik  <timj gtk org>

	* bsebus.[hc]: added store/restore support for ::inputs. made
	::inputs a GUI-only property.
	bse_bus_connect(): check the input object against our candidate list.
	bse_bus_connect_unchecked(): connect without checking against candidate
	list.

	* bsestorage.c: process item links in the order they were parsed in.

Fri Sep  3 03:12:49 2004  Tim Janik  <timj gtk org>

	* zintern/mono-wave.bse: remove useless wave-repo. fixed synth name.

Thu Sep  2 22:50:43 2004  Tim Janik  <timj gtk org>

	* bsetrack.[hc]: derive from BSeContextMerger. this turns BseTrack
	into a BseSource, including preparation and reset. this gets rid of
	a bunch of special cases and state related buglets.

	* bsesubiport.[hc]:
	* bsesuboport.[hc]: prepare for derived objects with varying
	numbers of input and output channels. some cleanups.

	* bsesubsynth.[hc]: dito. move premature releasing of port
	names to finalize.

	* bsesource.[hc]: added bse_source_class_inherit_channels().

	* bsesong.c: adapt to BseTrack is_a BseSource now.

	* bsesnet.c: cleanups. report i/o port leaks at finalization
	time, as ports may be left at bse_snet_release_children() from
	inetrnal children.

	* bseinstrumentoutput.c:
	* bseinstrumentinput.c: adaptions, cleanups.

Thu Sep  2 04:14:29 2004  Tim Janik  <timj gtk org>

	* bsebus.[hc]: added ::mute, ::solo and ::sync properties.
	implement bse_bus_editable_property() to toggle ::solo
	editability for master bus. moved song<->master connection 
	logic here.

	* bsebusmodule.cc: special case left/right volume factors of
	0 (BSE_MIN_VOLUME_dB) to set constant 0 outputs.

	* bsesong.c: support solo busses.

	* bseitem.proc: provide bse-item-editable-property() to figure
	whether a property is currently editable.

	* bsesource.c: support "unprepared" option by implementing
	source_check_pspec_editable() to check for an objects prepared
	state, and by notifying property changes when preparing and
	resetting objects.

	* bseitem.c: default initialize get_candidates() to NULL.

	* bsemidisynth.c:
	* bsesubsynth.c:
	* bsetrack.c:
	* bsesong.c: added missing "unprepared" option to properties.

	* bseobject.[hc]: implemented bse_object_editable_property() to
	figure via a chainable class handler (check_pspec_editable)
	and a per-class handler (editable_property) whether a property
	is currently editable.

Wed Sep  1 14:37:24 2004  Stefan Westerfeld  <stefan space twc de>

	* gslsignal.h: Don't use UNLIKELY in headers (but G_UNLIKELY), as this
	breaks compilation for external code, as LIKELY/UNLIKELY are
	convenience macros only defined when compiling bse itself.

Wed Sep  1 14:25:49 2004  Tim Janik  <timj gtk org>

	* bsebus.c: proxy changes on input objects onto notify::inputs.

Wed Sep  1 01:44:46 2004  Tim Janik  <timj gtk org>

	* bsebus.c (bse_bus_set_property): use new sfi_ring_reorder() API.

Tue Aug 31 23:55:52 2004  Tim Janik  <timj gtk org>

	* bsebus.c: added BseTrack and BseBus to the ::inputs candidate
	type partitions. added missing ::inputs change notifications.

	* bsecore.idl: added TypeSeq and type partitions to PropertyCandidates.

	* bseitem.c: default initialize type partition structure.

Tue Aug 31 12:09:38 2004  Tim Janik  <timj gtk org>

	* bsewaverepo.proc:
	load_file(): set wave name from filename directly.

	* gsldatacache.c:
	data_cache_new_node_L(): copy over overlapping data from adjacent node
	instead of re-reading data from data-handle (which forces a slow
	backward seek on the handle). based on a patch by stefan westerfeld.
	gsl_data_cache_free_olders(): unlock properly, reported by stefan.

Tue Aug 31 09:37:02 2004  Tim Janik  <timj gtk org>

	* bsesource.*:
	* bsecxxmodule.*: cleanups.

Tue Aug 31 08:50:26 2004  Tim Janik  <timj gtk org>

	* bsecxxeffect.*: applied slightly modified patch from stefan.
	applied const fixes to various methods.

Sun Jul 18 21:47:54 2004  Stefan Westerfeld  <stefan space twc de>

	* bsecxxeffect.*:
	Added Effect::block_size(), so that effects (not their modules) can
	obtain the block size. Provide prepare1/prepare2 and reset1/reset2
	hooks for effects, so they can execute code before/after prepare/
	reset.

Tue Aug 31 07:13:37 2004  Tim Janik  <timj gtk org>

	* bseproject.c (bse_project_activate): disabled timed auto-activate
	csynth starts. simply commit the transaction before the sequencer
	is started.
	this fixes lost notes at song start with mono-synths (BseMidiInput).

Mon Aug 30 01:20:08 2004  Tim Janik  <timj gtk org>

	* bsemidireceiver.cc:
	MidiChannel::adjust_note(): only queue voice-pressure, voice-sustain or
	voice-off changes on busy voice input modules.
	check_voice_input_improvement(): perform rating according to the
	queue_state which is maintained in the UserThread.
	voice_switch_module_process(): use UserThread callbacks to clean up
	disconnected state and to remove vinput modules from the frequency
	reverse lookup table.
	create_voice_input(): keep a pointer to the reverse lookup table per
	vinput module, so removal frmo that table may occour from callbacks.
	change_voice_input(): defer removal from table until the module's
	internal state has been updated.

	* bseengineschedule.c:
	determine_suspension_state(): query keep-state (avoid-reset) from
	recently updated nodes also. use determine_suspension_reset() to
	determine whether a node wants its inputs to keep-state.
	determine_suspension_reset(): for virtual nodes, needs_reset is
	determined by looking at the virtual node's output node's needs_reset.

	* bseengine.[hc]: added bse_engine_add_garbage().

Sun Aug 29 12:49:36 2004  Tim Janik  <timj gtk org>

	* bsebus.c: made parent's BseSubSynth::snet a private property that's
	ignored by storage and GUI.

	* bsesong.c: save loop setup.

Sun Aug 29 04:19:57 2004  Tim Janik  <timj gtk org>

	* bsebus.c (bse_bus_get_stack): ensure the summation module gets build.

Sat Aug 28 23:12:03 2004  Tim Janik  <timj gtk org>

	* bsesong.proc: don't create busses while prepared.

Sat Aug 28 22:08:40 2004  Tim Janik  <timj gtk org>

	* bsebus.c: fixup internal reordering of input objects.

	* bseundostack.c: caller adaption.

Sat Aug 28 14:54:39 2004  Tim Janik  <timj gtk org>

	* bseutils.c (bse_item_seq_to_ring): implemented ::inputs property
	handling.

	* bsecore.idl: added PropertyCandidates structure.

	* bseitem.[hc]: replaced bse_item_list_items() by
	bse_item_get_candidates() which has additional support for an i18n
	label and tooltip for the candidates.

	* bseitem.proc: provide get-property-candidates() instead of list-items().

	* bseutils.[hc]: added helper functions: bse_property_candidate_relabel(),
	bse_item_seq_remove(), bse_item_seq_to_ring().

	* bsesong.c:
	* bsetrack.c:
	* bsewaveosc.c:
	* bsesubsynth.c:
	* bsemidisynth.c: get_candidates() adaptions, cleanups.

	* bsesong.c: i18n fixups.

Wed Aug 25 23:24:23 2004  Stefan Westerfeld  <stefan space twc de>

	* bseenginemaster.c: Fix memcpy in master_take_probes to copy the
	right amount of probe data (each sample is sizeof (gfloat) bytes).

Wed Aug 25 18:15:00 2004  Tim Janik  <timj gtk org>

	* bsetype.h: added dB property type.

	* bsebus.[hc]: construct effect stack csynth and add a volume
	module into it. update the volume effect from volume properties.

	* bsebusmodule.idl:
	* bsebusmodule.cc: implement module functionality needed by busses.

	* bsecontainer.c: fix base-name handling in
	bse_container_new_child_bname() for objects with default names.

	* bseproject.[hc: implement bse_project_create_intern_csynth().

	* bsesong.c: trigger effect stack creation of busses after adding
	them to songs.

Sun Aug 22 19:26:23 2004  Tim Janik  <timj gtk org>

	* bsebus.[hc]: made bus input channels private to avoid undo or disk
	storage of channel states. busses maintain connections on their own.
	added ::master-output bool property to set whether a bus is the master
	bus of a song. 
	added bse_bus_disconnect_outputs() and bse_bus_list_outputs().

	* bseenums.[hc]: const-corrections. added i18n markup to error blurbs.
	added BSE_ERROR_SOURCE_PRIVATE_ICHANNEL and bse_assert_ok().

	* bsesong.[hc]: got rid of master_bus member. detect master-bus-ness
	through signal connections. removed bse_song_get_master(), added
	bse_song_find_master() and bse_song_connect_master().

	* bsesong.proc: create master bus undoable.

	* bsesource.[hc]: added bse_source_get_input(). cleaned up
	bse_source_must_set_input(). added PRIVATE_INPUTS flag, skipped
	channel storage/restoring for private inputs.

Fri Aug 20 18:31:59 2004  Tim Janik  <timj gtk org>

	* bsebus.[hc]: added left/right db-volume properties.

	* bseconstvalues.h: increased min/max db constants.

	* bseenginemaster.c: fixed NULL-pointer check.

	* bseglobals.[hc]: renamed bse_db_to_factor() and bse_db_from_factor().
	fixed up calculated dB values (use a factor of 20 not 10 for peaks).
	adapted callers.

Tue Aug 17 17:38:39 2004  Tim Janik  <timj gtk org>

	* bsebus.c: prototyped ::inputs property. i18n fixups.

	* bseitem.c: docu fixups.

	* bsetrack.c: i18n fixups.

Sun Jul 25 16:43:52 2004  Stefan Westerfeld  <stefan space twc de>

	* bsemidireceiver.cc: Properly NULL initialize the module list in the
	constructor of struct ControlValue.  This fixes the segfaults on AMD64
	that occur when playing the demosong (and probably others).

Sat Jul 24 20:00:22 2004  Tim Janik  <timj gtk org>

	* bseprobe.idl: 
	* bseprobe.cc: added signal energie to probed values. fixed up
	value colelction and min/max for discarded modules.

Sat Jul 24 11:40:50 2004  Tim Janik  <timj gtk org>

	* bsesniffer.idl:
	* bsesniffer.cc: removed BseSniffer code.

Sat Jul 24 08:16:14 2004  Tim Janik  <timj gtk org>

	* bseengine.[hc]: added n_delay and n_probes arguments to
	bse_job_probe_request(), so the user can request block sizes
	and probe spacings.

	* bseenginenode.h:
	* bseenginemaster.c: implemented variable length probe blocks and
	probe block spacings. 

	* bseprobe.cc: for now, request engine block size big probe
	blocks, with a 3/4 spacing ratio. fixed request handling.

Sat Jul 24 05:33:58 2004  Tim Janik  <timj gtk org>

	* gsldefs.h: removed if_reject() and if_expect() variants.
	G_LIKELY() and G_UNLIKELY() may be used instead. provide
	LIKELY(), ISLIKELY() and UNLIKELY() for convenience.

	* *.[hc]*: fixed if_reject() and if_expect() usage.

Fri Jul 23 20:05:53 2004  Tim Janik  <timj gtk org>

	* *.h, *.c, *.cc: globally renamed GSL Engine to BSE Engine.

Fri Jul 23 19:05:23 2004  Tim Janik  <timj gtk org>

	* *.[hc]:
	* Makefile.am: use bseengine*.[hc] instead of gsl*.[hc] files.

	* gslengine.[hc]:
	* gslopnode.h:
	* gsloputil.[hc]:
	* gslopmaster.[hc]:
	* gslopschedule.[hc]: removed.
	
Fri Jul 23 18:39:30 2004  Tim Janik  <timj gtk org>

	* bseengine.h:
	* bseengine.c: CVS copied from gslengine.[hc].

	* bseenginenode.h: CVS copied from gslopnode.h

	* bseenginemaster.h:
	* bseenginemaster.c: CVS copied from gslmaster.[hc].

	* bseengineschedule.h:
	* bseengineschedule.c: CVS copied from gslopschedule.[hc].

	* bseengineutils.c:
	* bseengineutils.h: CVS copied from gsloputil.[hc].

Tue Jul 20 06:33:25 2004  Tim Janik  <timj gtk org>

	* bseprobe.idl:
	* bseprobe.cc: turned channel_ages into a C++ vector. fixed up handling of
	invalidated source handles due to asyncronous requests.

Sat Jul 17 19:03:33 2004  Tim Janik  <timj gtk org>

	* bseprobe.cc: fix C++ LessThanComparable implementation for sort().

Sat Jul 17 12:40:38 2004  Tim Janik  <timj gtk org>

	* bse/bsebus.[hcp]*: fixed track/bus argument type for bse_bus_connect()
	and bse_bus_disconnect().

	* bse.idl: make bseprobe.idl public core API. bsehack.idl must be the
	last file being included, so all idl types are defined once it's parsed.

	* bseprobe.idl:
	* bseprobe.cc: implemented auxillary BseSourceProbes logic for
	BseSource. this manages generic signal probe handling for sources.
	the code is integrated with BseSource via implementation of
	bse_source_probes*() functions.

	* bsesource.[hc]: introduce and call bse_source_probes*() from various
	parts of the BseSource code.

	* bsetrack.proc: provide get-output-source() instead of create-sniffer().

	* gslopnode.h: record the number of output channels to be probed with
	probe jobs, required to release job resources.

	* gslengine.[hc]: add more docs. allocate probe blocks individually, so
	user code can "steal" allocated blocks.

	* gslopmaster.[hc]: fixed up sample block probing code to work on
	virtual nodes (and return processed probe jobs from "unprocessed"
	nodes). added minor optimization to output buffer pointer virtualisation
	logic. 

	* gslopschedule.[ch]: added virtual nodes to debugging output of
	schedules. properly connect even virtual node inputs, so the outputs can
	be probed without walking virtual node input connections.

	* gsloputil.c: properly free probe job blocks.

Thu Jul 15 01:15:01 2004  Tim Janik  <timj gtk org>

	* bsesniffer.cc:
	* bsesniffer.idl: disabled any code that depended on reply jobs,
	this essentially breaks sniffers.

	* bsesource.[hc]: reordered code for brevity. added BseSourceProbes*
	structure member (currently unused).

	* gslopnode.h:
	* gslengine.[hc]: removed reply jobs. added probe jobs. changed
	all uses of GslReplyFunc as free func back to GslFreeFunc.

	* gslopmaster.[hc]: nuked reply jobs. implemented probe job handling
	which means returning an output block copy to the user thread after
	each node calculation. execute module profiling code after all nodes
	have been processed.

	* gsloputil.[hc]: nuked reply jobs. handle probe jobs and ordinary
	free functions. sort unscheduled nodes with probe jobs with nodes
	which have flow jobs pending.

Wed Jul 14 01:43:05 2004  Tim Janik  <timj gtk org>

	* bsecore.idl: added thread id to ThreadInfo.

	* bsecore.cc (collect_thread_totals:.exec): pass on thread_id.

Wed Jul 14 00:14:29 2004  Tim Janik  <timj gtk org>

	* bsesongbus.h:
	* bsesongbus.c:
	* bsesongbus.proc: removed in favour of bsebus.*.

Tue Jul 13 23:12:52 2004  Tim Janik  <timj gtk org>

	* bsebus.proc: copied from bsesongbus.proc.

Tue Jul 13 22:58:15 2004  Tim Janik  <timj gtk org>

	* bsebus.c:
	* bsebus.h: CVS copied from bsesongbus.[hc]:

Tue Jul 13 21:59:07 2004  Tim Janik  <timj gtk org>

	* bsecontainer.proc:
	* bsecontainer.[hc]: renamed bse_container_list_items() to
	bse_container_list_children(), since there's a corresponding 
	BseItem method already. adapted callers.

	* bsesong.proc:
	* bsesong.[hc]: got rid of track merger object, as the master
	bus takes care of merging track outputs now. s/SongBus/Bus/.
	(bse_song_create_summation): funciton name fixup.
	(ensure-output-busses): fixup procedure for GUIs.
	(ensure-track-links): fixup procedure for GUIs, not currently
	functional.

	* bsesongbus.proc: 
	* bsesongbus.[hc]: s/SongBus/Bus/.
	implemented proper connect/disconnect handling of busses and tracks.
	can stand some optimization, so that 1:1 conenction don't use a
	summation object (which means an extra block copy in engine modules).

	* bsesource.[hc]: implemented bse_source_test_input_recursive() to
	catch cycles before they are created.
	(bse_source_set_input): catch cyclic connections and return BAD_LOOPBACK.

	* bsetrack.[hc]: got rid of the merger arg in bse_track_add_modules().
	(bse_track_get_output): provide ouput module.

Sun Jul 11 23:42:58 2004  Tim Janik  <timj gtk org>

	* bsesource.[hc]: support flat (direct) input object collection.

	* bsesong.proc:
	* bsesong.[hc]: added master-bus concept.

Sat Jul 10 20:01:47 2004  Tim Janik  <timj gtk org>

	* bsecontainer.[hc]: added bse_container_new_child_bname() which allowes
	to specify a base-name for the newly created child.
	turned bse_container_new_child() into a macro.

	* bsesong.[hc]: added convenience function bse_song_create_merger().

	* bsetrack.c: provide base-names when creating snets, so the
	generated snet name numbers match the track number.

Sat Jul 10 18:27:53 2004  Tim Janik  <timj gtk org>

	* icons/summation.xcf:
	* icons/summation.png:
	* bsesummation.idl:
	* bsesummation.cc: new routing effect to summ up multiple signals.

Sat Jul 10 17:19:07 2004  Tim Janik  <timj gtk org>

	* bsesong.c (bse_song_forall_items): don't iterate over song busses
	which are of BseSource types and thusly handled by chaining to the
	parent class handler.

Mon Jul  5 08:55:53 2004  Tim Janik  <timj gtk org>

	* bsesong.[hcp]: added support for song busses.

	* bsesongbus.[hc]: new source, intended to be used for
	mixing song tracks.

Tue Jun 29 01:51:29 2004  Tim Janik  <timj gtk org>

	* bsepart.c: flag fixes.

	* bsetrack.proc: provide get-last-tick() to calc the last tick
	in a track.

Sat Jun 12 19:46:42 2004  Tim Janik  <timj gtk org>

	* bseserver.c (bse_server_class_init): provide wave_file property
	with a tooltip. hint towards filename.

Fri Jun 11 04:35:46 2004  Tim Janik  <timj gtk org>

	* bsecore.idl:
	* bsecore.cc: added API to report CPU usage statistics.

	* bsessequencer.[hc]: export bse_ssequencer_thread handle.

	* bsetype.h: fixed sfidl_pspec_Choice().

	* gslengine.[hc]: renamed threads. provide gsl_engine_get_threads().

	* gslopmaster.c: do thread accounting.

Thu May 20 13:36:35 2004  Tim Janik  <timj gtk org>

	* bsedefs.h: got rid of BsePixdata.

	* bseexports.h: provide means for export nodes to fill in
	translatable strings through a callback.

	* bseplugin.[hc]: register internationalized categories and invoke a
	callback to retrieve type blurb/authors/license strings.

	* mkcproc.pl:
	* bseladspa.c:
	* bsecxxutils.cc:
	* bsescripthelper.c:
	* bsecategories.[hc]: added internationalized category strings
	to registration functions. got rid of BsePixData. fixed callers.
	(bse_categories_register_stock_module): new function to register
	internal modules and do the right thing wrg translation.

	* bsecxxplugin.hh: provide a callback function to fill in translatable
	strings of export node structures, so gettext isn't invoked until
	after bse has been initialized.

	* bsesnooper.c:
	* bsestandardosc.c:
	* bsesubiport.c:
	* bsesuboport.c:
	* bsesubsynth.c:
	* bseconstant.c:
	* bsebiquadfilter.c:
	* bseinstrumentinput.c:
	* bseinstrumentoutput.c:
	* bsemidicontroller.c:
	* bsemidiinput.c:
	* bsepcminput.c:
	* bsepcmoutput.c:
	* bsewaveosc.c:
	register objects with bse_categories_register_stock_module() and
	changed code to use generated pixstream files in icons/.

	* bsemain.c: properly assert that the textdomain is setup (bse
	was initialized) when translating a string.

	* bseutils.[hc]: moved BsePixdata from public API to private helper.

	* icons/Makefile.am: got rid of CVS hosted .c images and Makefile.icons.
	generate C source image files from .png files directly.

	* icons/*.c: removed all CVS hosted C sources.

	* icons/*.png: added png files for all required C sources.

Wed May  5 18:17:31 2004  Tim Janik  <timj gtk org>

	* bsemain.c (bse_async_parse_args): fixed parsing bug.

	* gslcommon.c (gsl_error_from_errno): made ENODEV a
	GSL_ERROR_NOT_FOUND error.
	(gsl_error_select): new function to select the most descriptive
	error in multi error scenarios.

	* bsemididevice-oss.c (bse_midi_device_oss_open): debugging fixes.
	use gsl_error_select() to select error messages from multiple
	devices.

Wed May  5 15:27:08 2004  Tim Janik  <timj gtk org>

	* *.c: adapted log, error, warning and debugging messages.

	* bseenums.h: adapt message types to new logging system.

	* bsemain.c: added support for $BSE_NO_DEBUG and --bse-no-debug.

Sun May  2 14:50:25 2004  Tim Janik  <timj gtk org>

	* gslopmaster.c: clean up debugging code, minor ops.

Fri Apr  9 12:04:19 2004  Tim Janik  <timj gtk org>

	* tests/testwavechunk.c (run_tests): allocate large structures on the
	heap, not the stack. based on a patch by Rasmus Kaj <kaj e kth se>.

Sat Mar  6 12:17:46 2004  Tim Janik  <timj gtk org>

	* bsecore.idl: remove gconfig option synth_block_size, added 
	synth_latency and synth_control_freq.

	* gslengine.[hc], gslopnode.h: removed sub-sample cruft. export just
	GSL_CONTROL_CHECK(), gsl_engine_control_mask() and
	gsl_engine_control_raster(), changed callers. added SYNC jobs.
	removed configuration parameters from gsl_engine_init().
	added gsl_engine_constrain() to calculate and constrain block and
	control blocck sizes.
	added gsl_engine_configure() to reconfigure engine configuration
	parameters.
	removed cruft from Stream structures. changed GSL_STREAM_MAX_VALUES
	to 1024.

	* gslopmaster.c: implement ENGINE_JOB_SYNC, needed to reconfigure
	the engine.

	* gsloputil.[hc]: prepare for gsl_engine_block_size() changes, allow
	complete nukage of all const-value blocks.

	* bseserver.[hc]: remove pcm-latency property. properly reconfigure
	engine with gsl_engine_configure().

	* bsepcmdevice.[hc]: added minimum watermark field to constrain
	watermark in bse_pcm_handle_set_watermark() for devices with
	fragment sizes, where too small watermarks can confuse the
	fill/poll calculation code.

	* bsepcmdevice-oss.c: request the smallest possible fragment size.
	retrigger device operation after open, setup minimum playback
	watermark.

	* bsecxxmodule.hh: adapt to gslengine.h API changes.

Tue Mar  2 12:59:38 2004  Tim Janik  <timj gtk org>

	* bsepart.c (bse_part_insert_note): ensure enough octaves are present
	to insert a note.

Tue Mar  2 10:48:19 2004  Tim Janik  <timj gtk org>

	* bseautodoc.c: i18n fixes and blurb output fixes.

	* bsecore.idl: provide just BLURB not HELP for records, work
	around a texitheque bug.

Tue Mar  2 10:23:55 2004  Tim Janik  <timj gtk org>

	* bseautodoc.c: changed callers of sfi_boxed_make_record(),
	sfi_boxed_get_record_info(), sfi_info_string_find(),
	sfi_boxed_make_sequence() and sfi_boxed_get_sequence_info()
	which got removed.

Mon Mar  1 20:08:12 2004  Tim Janik  <timj gtk org>

	* switched the native C binding for idl types to a C wrapper
	binding which is based on a C++ binding for core idl types.

	* bsecore.idl: turn ProxySeq into a ItemSeq for proper typing.

	* bsecxxbase.idl:
	* bseamplifier.idl: bring up to par with recent idl fixes.

	* bsecore.cc: new file, needed to implement bsecore.idl contents
	and the C wrapper bindings. 

	* bsecxxplugin.hh: provide constants used in idl files. fixed namespace
	issues in BSE_CXX_DECLARED_*_TYPE() macros by making them absolute.

	* bsegconfig.c: retrieve record fields via bse_gconfig_get_fields() now.

	* Makefile.am: added rules to generate bsegencore.cc. this implements
	the C functions from bsegentypes.h on top of the C++ core binding.

	* bsemain.[hc]: initialize C wrapper types.

	* bsesong.c:
	* bsetrack.c:
	* bsesubsynth.c:
	* bsemidisynth.c:
	* bseproject.proc:
	* bseitem.[hcp]*:
	* bsewaveosc.c:
	* bsecontainer.[hcp]*: adapt to BseItemSeq changes.

	* bsetype.c: removed cruft.

	* bserecords.idl: removed, replaced by bsecore.idl.

Fri Feb 27 11:23:01 2004  Tim Janik  <timj gtk org>

	* bsecore.idl: CVS copied from bserecords.idl.

Fri Feb 27 06:19:32 2004  Tim Janik  <timj gtk org>

	* bseautodoc.c:
	* bsebiquadfilter.c:
	* bseconstant.c:
	* bsecontextmerger.c:
	* bsecxxbase.cc:
	* bsecxxbase.hh:
	* bsecxxmodule.hh:
	* bseinstrumentinput.c:
	* bseinstrumentoutput.c:
	* bseladspamodule.c:
	* bsemidicontroller.c:
	* bsemidiinput.c:
	* bsemidivoice.c:
	* bsepcminput.c:
	* bsepcmoutput.c:
	* bsesnooper.c:
	* bsesource.c:
	* bsesource.h:
	* bsesource.proc:
	* bsestandardosc.c:
	* bsesubiport.c:
	* bsesuboport.c:
	* bsesubsynth.c:
	* bsewaveosc.c: grand fix of channel names. channels have ident,
	label and blurb, where label and blurb are subject to i18n. this fixes
	the demo song not working in locales!=C due to channel identifiers
	being translated. added missing i18n markups.

Thu Feb 26 20:35:51 2004  Tim Janik  <timj gtk org>

	* bsepart.c:
	* bsewave.c:
	* bsetrack.c:
	* bseplugin.c:
	* bsestorage.c: 
	* bseparasite.c:
	* bsedatapocket.c:
	* gslloader-gslwave.c: fixed 64bit integer scanning.

	* bserecords.idl: added MAXINT, MININT, MAXNUM and MINNUM constants.

Wed Feb 25 14:43:23 2004  Tim Janik  <timj gtk org>

	* bsemain.[hc]: new function bse_main_getpid() which returns a thread id.

	* bseserver.c: if possible, slightly drop priorities after engine
	initilization, so the BSE thread doesn't get into the way of the sequencer
	or synthesis threads.

Wed Feb 25 06:00:15 2004  Tim Janik  <timj gtk org>

	* bsescripthelper.c: invoke bsesh with BSE version as
	$BSE_PATH_BINARIES/bsesh-$BSE_VERSION.

Wed Feb 25 03:40:31 2004  Tim Janik  <timj gtk org>

	* bsemidifile.c (bse_midi_file_setup_song): fix note insertion
	(use bse-part-insert-note-auto).

Mon Feb 23 05:13:34 2004  Tim Janik  <timj gtk org>

	* bsedefs.h: 
	* bsemain.[hc]: use bse_gettext() to translate strings, so we can
	catch places triggering translations prematurely (before
	bindtextdomain() is called), e.g. due to static C++ constructors.

	* bsepart.[hc]: support per-channel matches for note-specific events
	in bse_part_list_controls().
	* bsepart.proc: removed get-range-controls() which is a clone of
	list-controls(). added get-channel-controls() to get note-specific
	control events. 

Sun Feb 22 02:03:51 2004  Stefan Westerfeld  <stefan space twc de>

	* Makefile.am: Use new sfidl options.

Tue Feb 17 01:48:50 2004  Tim Janik  <timj gtk org>

	* bsepart.[hc]:
	(bse_part_list_notes):
	(bse_part_select_notes):
	(bse_part_select_notes_exclusive): added support for channel arguments,
	to limit effect of these functions to a specific channel, unless
	channel=~0 was passed. adapted callers.

	* bserecords.idl: enrich PartNote by a channel field. adapted callers.

Thu Feb 12 10:48:26 2004  Tim Janik  <timj gtk org>

	* bsepart.[hc]:
	(bse_part_list_notes): renamed from bse_part_list_notes_crossing(),
	added an argument include_crossings. fixed possible dups of notes
	starting exactly at tick for include_crossings.

Wed Feb 11 01:43:49 2004  Tim Janik  <timj gtk org>

	* bseamplifier.idl: let base_level properly default to 0.
	
	* bseprocedure.proc: implement accessors for authors and license
	about types.

Sun Feb  8 03:32:11 2004  Tim Janik  <timj gtk org>

	* bseconstvalues.h: provide float and double versions of 
	BSE_MAX_FINE_TUNE.

	* bsepart.[hc]:
	comletely reimplemented the basic data structures. switched to binary
	searchable arrays rather than implementing one from scratch.
	keep control events in their own array.
	create an array per channel, each channel array may only contain one
	note per tick, so polyphonic notes require multiple channels.
	keep a list of crossing siblings per note to avoid O(n_notes)
	complexity to expand regions. added ::n_channels property.
	coalesce multiple control events of the same type at the same tick.
	changed serialization format to be more compact for storing multiple
	notes and control events. kept compat code to parse old format.

	* bsepart.proc: adapted to BsePart API changes. added a channel argument
	to insert-note(), introduced insert-note-auto() which preserves the old
	channel-agnostic behaviour of insert-note().

	* bsessequencer.c: adapt to BsePart API changes.

Tue Feb  3 23:29:30 2004  Tim Janik  <timj gtk org>

	* bsemain.c (bse_init_core): minor improvement in passing gettimeofday
	entrophy into srand().

	* bseprocedure.[hc]: implemented procedure class caching, which keeps
	procedure classes alive for ca. 500ms after their last call. this gets
	rid of a lot of unnecessary class (and paramspec) creations and
	destructions.
	
Sat Jan 31 23:37:22 2004  Stefan Westerfeld  <stefan space twc de>

	* bseprocedure.c (call_proc): Fixed bug in validation: instead of
	validating the procedure input values before and after the procedure
	call, validate the procedure inputs values before, and procedure
	output values after executing a procedure.

Wed Jan 28 11:10:18 2004  Tim Janik  <timj gtk org>

	* bsesniffer.cc: don't swallow requests while inactive, send replies
	with 0-length fblocks instead (fixes GUI loosing track of sniffer
	data after stopping the synth).

Tue Jan 27 16:41:45 2004  Tim Janik  <timj gtk org>

	* bsetrack.c (bse_track_class_init): increased default number of voices
	to 16 (from 8).

Tue Jan 27 16:03:01 2004  Tim Janik  <timj gtk org>

	* bsecxxbase.hh: added instance_is_a(), value_get_gobject<>()
	and value_set_gobject().

	* bseexports.h:
	* bsecxxplugin.hh: adapted to sficxx.h changes, don't call
	record/sequence functions from static constructor as the
	type system may not yet be initialized.

	* bsecxxutils.hh: tweak InvalidArgument() exception.

	* bsesniffer.cc: implement combined requests.

	* bsetype.c: fixed transform function registration.

Mon Jan 26 02:36:07 2004  Tim Janik  <timj gtk org>

	* bsecxxmodule.idl: new idl file to define Bse::Effect.

	* bsecxxbase.idl: new idl file to define Bse::CxxBase.

	* bseeffectbalance.[hc]:
	* bseeffectfinetune.[hc]:
	* bseeffectnotevolume.[hc]:
	* bseeffectpatternbreak.[hc]:
	* bseeffectpatternjump.[hc]:
	* bseeffectvolumedelta.[hc]:
	* bseeffect.[hc]: remove all bseeffect* files, all the code within
	was outdated and unused for several years.

	* bse.idl: added bsecxxbase.idl and bsecxxmodule.idl.

	* bsecxxbase.[hc]*: make gobject() const. implement value_get_object(),
	value_set_object() and value_set_casted().

	* bsecxxvalue.hh: removed g_value_get_object<>() template.

	* bsecxxmodule.[hc]: provide conventional BSE_TYPE_EFFECT and base class.

	* bsesniffer.idl: removed parentation hacks by including
	bsecxxmodule.idl, added Sniffer (object) field in record.

Sun Jan 25 08:36:28 2004  Tim Janik  <timj gtk org>

	* bsesniffer.idl: enable record and sequence generation, still
	need to comment out object references though.

Sun Jan 25 05:28:23 2004  Tim Janik  <timj gtk org>

	* bseplugin.c: use new boxed registration functions.

	* bsetype.[hc]: GType doesn't really support dynamic boxed types, so
	register boxed types from plugins statically and plug their
	implementations internally. tidied up pspec constructors.

Sat Jan 24 19:14:46 2004  Tim Janik  <timj gtk org>

	* bsecxxplugin.hh: remove TypeName argument from BSE_CXX_DECLARE_RECORD()
	and BSE_CXX_DECLARE_SEQUENCE(), get the type names via type_name().

Sat Jan 24 07:04:59 2004  Tim Janik  <timj gtk org>

	* bseexports.h: specify the field array of boxed types directly
	in BseExportNodeBoxed.

	* bsecxxplugin.hh: adaptions due to bseexport.h changes.

	* bsetype.c:
	(bse_type_reinit_boxed): 
	(bse_type_uninit_boxed): register and unregister extra info about
	boxed records and sequences with sfi.

	* bseglue.c: adapt to sfi_boxed_type_get_rec_fields() and
	sfi_boxed_type_get_seq_element().

	* bseparam.c: likewise.

Fri Jan 23 22:38:57 2004  Tim Janik  <timj gtk org>

	* bseplugin.c (bse_plugin_check_load): added debugging output for
	--bse-debug=plugins.

Fri Jan 23 02:28:58 2004  Tim Janik  <timj gtk org>

	* bsecxxplugin.hh: complete record and sequence registration macros.

	* bseexports.h: boxed types supply SfiBoxedFields.

	* bsetype.h: fixed sfidl pspec constructors.

Wed Jan 21 03:35:59 2004  Tim Janik  <timj gtk org>

	* bsecxxplugin.hh (BSE_CXX_DECLARE_RECORD): implementation fixups.

Tue Jan 20 15:30:44 2004  Tim Janik  <timj gtk org>

	* bseexports.h: added BseExportNodeBoxed for records and
	sequences.

	* bseparam.c:
	* bseglue.c: honour sfi_boxed_type_get_fields().

	* bseplugin.[hc]: implement un-initialization of types
	upon unloading (needed by boxed). added BSE_EXPORT_NODE_RECORD
	and BSE_EXPORT_NODE_SEQUENCE handling.

	* bsetype.[hc]: implement dynamic boxed.

	* bsecxxplugin.hh: started implementing RECORD type registration.

Tue Jan 20 05:47:04 2004  Tim Janik  <timj gtk org>

	* bsesniffer.cc: adapt to C++ type changes.

Tue Jan 20 04:52:45 2004  Stefan Westerfeld  <stefan space twc de>

	* bserecords.idl bseamplifier.idl: Add "using namespace Sfi;".

Tue Jan 20 03:05:25 2004  Stefan Westerfeld  <stefan space twc de>

	* bsecxxsmart.h Makefile.am: Removed obsolete code.

	* tests/testsmart.cc tests/Makefile.am: Removed test for obsolete
	code.

Tue Jan 20 00:58:49 2004  Stefan Westerfeld  <stefan space twc de>

	* bsecxxsmart.h: Remove redundant typedefs (now in sfi/sficxx.h).

Mon Jan 19 20:31:28 2004  Stefan Westerfeld  <stefan space twc de>

	* Makefile.am bseprocidl.c: Exclude types which are from bse.idl (and
	not define from bsehack.idl) automatically, instead of maintaining a
	type list in bseprocidl (uses sfidl --list-types).

Mon Jan 19 18:54:11 2004  Tim Janik  <timj gtk org>

	* Makefile.am: generate bsehack.idl from procidl.
	made bse.idl the canonical client-binding API idl file.

	* bsecxxutils.hh: provide assert_ptr_derivation().

	* bsecxxvalue.hh: use assert_ptr_derivation() in
	g_value_get_object<>() to fix object offset.

	* bsemidireceiver.cc: fix assertion.

	* bseprocidl.cc: skip BseSniffer and BseSnifferType.

	* bsesniffer.cc, bsesniffer.idl: recode process() to handle multiple
	requests per block. queue requests before prepare(). added
	sniffer_get_mix_freq().

	* bsesong.proc:
	* bsetrack.proc: moved sniffer creation from song to track.

Mon Jan 19 15:31:20 2004  Tim Janik  <timj gtk org>

	* bseautodoc.c: beautify float output. s/Name/Identifier/ for
	property/channel identifiers. fixed plugin loading.

Fri Jan 16 19:42:30 2004  Tim Janik  <timj gtk org>

	* gsldatahandle.[hc]: added support for alaw and ulaw sample formats.
	(wave_format_byte_width): the byte width needs not be deductable from
	the bit-depth (i.e. is different for alaw/ulaw).
	(wave_handle_read): removed conversion cases by means of using
	gsl_conv_to_float() instead.

	* gsldatautils.[hc]: implement alaw/ulaw decoding.

	* gslloader-wav.c: added support for ALAW and ULAW encoded WAV files.

	* gslloader-gslwave.c: started support for additional fields.

	* gslwave.header: document newly supported fields.

Fri Jan 16 17:51:53 2004  Tim Janik  <timj gtk org>

	* engine-mplan.txt: fixed typo.

	* gslengine.c: fixed documentation.

	* gslopmaster.c: make needs_reset unconditionally indicate whether a
	module needs a reset() call. check whether a module flagged needs_reset
	has a reset() function before calling it. defer forced resets until
	shortly before process().

	* gslopschedule.c: propagate needs_reset() down a branch similar to
	suspension state. this fixes missing reset()s of voices where both
	a suspend and resume job for a voice fell into the same block boundary.

Fri Jan 16 04:32:05 2004  Tim Janik  <timj gtk org>

	* gslopmaster.c (master_process_flow): execute flow jobs scheduled at
	block boundary at the start of the new block, not at the end of the old
	block (and with that, *after* corresponding accessor or boundary jobs).

Thu Jan 15 14:54:01 2004  Tim Janik  <timj gtk org>

	* gslwavechunk.c: in fill_block() step through the sample with a step
	width of 1 instead of n_channels, since n_channels wide stepping is
	performed later on through dirstride values > 1. fixes "clicks" at
	the start/end of unlooped stereo samples (and looped stereo samples).

	* gslwaveosc.[hc]: 
	* gslwaveosc-aux.c: support channel selection offset in config struct.

Sun Jan 11 06:18:05 2004  Tim Janik  <timj gtk org>

	* bsestorage.c (parse_raw_data_handle): properly setup return values,
	even for empty waves.

	* bsewave.c (parse_wave_chunk): fixed error handling to not mess up
	scanner state.

Tue Jan  6 01:33:47 2004  Stefan Westerfeld  <stefan space twc de>

	* bsecxxsmart.h: Add typedefs for Sfi::Int, Sfi::Num and similar.

Sun Jan  4 12:30:30 2004  Tim Janik  <timj gtk org>

	* bseautodoc.c (show_plugindoc): added plugin documentation generation.
	
	* bseamplifier.idl: refine tooltip.

	* bsestandardosc.c: added i18n markup.

Fri Jan  2 19:04:16 2004  Tim Janik  <timj gtk org>

	* bsewave.[hc]: added bse_wave_set_description_bits() to set comment and
	similar information from wave file descriptions.
	(bse_wave_load_wave_file): call bse_wave_set_description_bits() if
	requested.
	* bsewave.proc: call bse_wave_set_description_bits() when loading waves.

	* bsewaverepo.proc: call bse_wave_set_description_bits() when loading waves.

	* gslloader.[hc]: added authors, license and comment fields to
	wave descriptions.

	* tests/magictest.c: added -t option to test load file info.

	* gslcommon.[hc]: register AIFF file loader.

	* gslloader-aiff.c: new file loader for AIFF files.

Wed Dec 31 01:06:51 2003  Nedko Arnaudov  <nedko users sourceforge net>

        * bsemididevice-oss.c:
        * bsepcmdevice-oss.c: Use configure detection of OSS emulation
        that is not implemented in sys/soundcard.h but in soundcard.h

Tue Dec 30 23:48:17 2003  Tim Janik  <timj gtk org>

	* bsecxxmodule.[hc]*: use GslModule type, strip unnecessary casts,
	added block_size(), tick_stamp() and gslmodule() accessors.
	added wrappers around BseSource accessor macros.

	* bsecxxplugin.[hc]*: changed procedure registration macro to
	BSE_CXX_REGISTER_PROCEDURE() and adapted it to put everything into the
	Procedure namespace.

	* bsecxxutils.[hc]*: provided convenience typedefs to ease procedure
	writing in the Procedure namespace.

	* bsemidireceiver.cc: removed casts.

	* bsesniffer.[hc]*: implemented stereo sniffing routine, as well as
	the corresponding procedures and signal + emission thereof.

	* bsesong.proc: added bse-song-create-sniffer() to create a sniffer
	for a specific track.

	* bsesource.c: removed unnecessary casts.

	* bsetrack.[hc]: added bse_track_connect_sniffer().

	* gslopmaster.c:
	* gslengine.[hc]: made gsl_job_flow_access() and gsl_job_boundary_access()
	take a GslReplyFunc() as free function, made gsl_job_request_reply()
	match their argument ordering. renamed gsl_externvar_block_size.
	provided gsl_module_peek_reply().

Mon Dec 29 21:00:23 2003  Tim Janik  <timj gtk org>

	* bsesniffer.idl:
	* bsesniffer.cc: start at a module to report current sample data
	or statistics thereof. this needs to have its own procedures, signals,
	and a context merging module.

	* opnode.[hc]:
	* gslopmaster.c:
	* gslengine.[hc]: implemented ENGINE_JOB_REQUEST_REPLY and
	gsl_job_request_reply() to support delayed round trip jobs.
	unified destruction logic of reply jobs and timed jobs.
	(gsl_module_process_reply): new function to send a reply job
	back to the client.

	* gslopmaster.c: claim ownership for a node in ENGINE_JOB_INTEGRATE.

	* gsloputil.[hc]:
	renamed _engine_mnl_reorder() to _engine_mnl_node_changed() since it
	also collects trash reply jobs now.
	(free_node): free unused reply jobs, fixed leaks of job data from
	discarded transactions for ENGINE_JOB_INTEGRATE, ENGINE_JOB_FLOW_JOB
	and ENGINE_JOB_BOUNDARY_JOB.
	(gsl_engine_garbage_collect): call reply job handlers as early as
	possible.

	* bsecxxbase.[hc]: renamed add_param(). implemented add_signal().

	* bseobject.[hc]: export bse_object_marshal_signal() to allow C++
	object signals.

	* bsecxxmodule.[hc]*: added lots of GslModule related hooks so
	more advanced modules dealing with BseSource or engine internals can
	still be written in C++.
	moved BSE_CXX_DEFINE_CREATE_MODULE(), BSE_EFFECT_INTEGRATE_MODULE()
	and BSE_CXX_DEFINE_MODULE_CONFIGURATOR() here from bsecxxplugin.hh.

	* bsemidireceiver.cc (voice_switch_module_free): fix free'd
	memory access.

	* bsetype.h: support FBlock pspecs.

	* bseprocidl.cc: guard against already-destroyed signals.

Sun Dec 28 10:24:29 2003  Tim Janik  <timj gtk org>

	* bserecords.idl:
	* bsesong.[hc]:
	* gslfilter.c: s/nominator/numerator/.

Thu Dec 25 07:25:51 2003  Tim Janik  <timj gtk org>

	* bsemidifile.[hc]: new files, containing a MIDI file parser (based on
	BseMidiDecoder) and a rudimentary MIDI file to BseSong converter.

	* bsemidievent.[hc]: comment fixups. added SMF meta event types.
	renamed event tick_stamp field to delta_time. added global macros
	to check for channel-voice, system-common and system-realtime
	messages.
	(bse_midi_signal_default): adjusted #7 (volume) default and added
	defaults for #10 (Panorama) and #11 (Expression).
	(boxed_copy_midi_event): fix bogus allocation and copying.
	(bse_midi_free_event): properly free the new event types.

	* bsemididecoder.[hc]: lots of fixes, added SMF delta time and meta
	event parsing. turned the decoder into a proper state machine.

	* bsessequencer.c:
	* bsemidireceiver.cc: cosmetic fixups, adapt to renames.

	* bseproject.proc: added import-midi-file() procedure.
	
	* bsemidievent.h:
	* bserecords.idl: fixed midi signal type names, added some.

Tue Dec 23 05:24:53 2003  Tim Janik  <timj gtk org>

	* bseplugin.[hc] (bse_plugin_check_load): disabled .la loading, expect
	readily loadable .so files instead.
	(bse_plugin_path_list_files): allow plugin path to contain executable
	files (instead of directories).

	* bseprocedure.[hc]: removed blurb, name, authors, help and license
	fields from procedures as these informations are kept on types now.
	provide BSE_PROCEDURE_NAME() for easy name access.

	* bsescripthelper.[hc]: introduced "options" field for scripts.

	* mkcproc.pl: 
	* bseplugin.[hc]:
	* bsescripthelper.[hc]:
	* bseexports.h: unified type info field order, keep blurb etc. only
	via bse_type_*() accessors.

	* mkcproc.pl: support OPTIONS.

	* *.proc: BLURB => HELP fixes.

	* bseautodoc.c: don't generate @refBlurb{} andymore since procedures
	only have "help" now.

	* bsequery.c: added -:f option for fatal warnings.

	* bseparasite.proc: removed i18n markup, which is not supported for C
	procedures (procedures need to be ported to C++ long-term).

	* *.c: fixes about accessing authors/license/blurb through bsetype.h,
	removed code to keep type info on procedures.

Mon Dec 22 23:59:28 2003  Tim Janik  <timj gtk org>

	* bsecxxplugin.hh: initialize options field in export nodes.

	* bseplugin.c: register type options from plugins.

	* bseplugin.h: let C plugins default to NULL options.

	* mkcproc.pl: let C procedures default to NULL options.

	* bseprocedure.proc: provide bse-type-options().

	* bsetype.[hc]: allow for storing per-type options.

Sun Dec 21 20:41:46 2003  Stefan Westerfeld  <stefan space twc de>

	* bsecxxsmart.h tests/testsmart.cc: Cleaned up the Bse::Sequence
	template. No more iterators. They were not working anyway.

Sat Dec 20 20:47:25 2003  Stefan Westerfeld  <stefan space twc de>

	* bsecxxsmart.h: Added size_type typedef and size() function to our
	Sequence template (like in std::vector).

	* bseprocidl.cc: Support for properties (although without grouping).
	Reenable (most) signals.

Wed Dec 17 23:54:22 2003  Tim Janik  <timj gtk org>

	* bsecategories.c (bse_category_from_id): set the icon to NULL instead
	of creating a degenerated one. removed degenerated dummy-icon hacks.

Wed Dec 17 19:55:58 2003  Tim Janik  <timj gtk org>

	* bseglue.c (bglue_exec_proc): make messages warnings in debugging mode.

Wed Dec 17 19:14:11 2003  Tim Janik  <timj gtk org>

	* bse/bsetype.h: allow options argument for Trigger pspecs.

Tue Dec 16 11:59:43 2003  Tim Janik  <timj gtk org>

	* bsecxxplugin.hh: assign authors and license fields in BseExportNode.

	* bseexports.h: added authors and license fields.

	* bseitem.proc: provide get-type-authors() and get-type-license()
	procedures on items.

	* bseplugin.[hc]: register plugin authors and license with types.

	* bsetype.[hc]: provide bse_type_{add|get}_{blurb|authors|license}().
	_blurb variants got renamed, changed callers.

Tue Dec 16 02:16:25 2003  Tim Janik  <timj gtk org>

	* bsesong.c (bse_song_class_init): make playback properties skip-undo.

	* bseitem.c:
	* bseproject.c:
	* bsesource.c:
	* bsestorage.[hc]: removed BSE_STORAGE_SKIP_DEFAULTS flag and macro,
	since skipping default values is now indicated by the :skip-default:
	property option.

Mon Dec 15 22:42:37 2003  Tim Janik  <timj gtk org>

	* bsemidicontroller.c:
	* bsepcminput.c:
	* bsepcmoutput.c:
	* bsesong.c:
	* bsesource.c:
	* bsestandardosc.c:
	* bsemidiinput.c:
	* bsesubiport.c:
	* bsesuboport.c:
	* bsesubsynth.c:
	* bsesuper.c:
	* bsetrack.c:
	* bsemidisynth.c:
	* bseobject.c: flagged :skip-default: properties.

	* bseparam.c: make object properties skip-default automatically.

	* bseitem.c: skip undo recording for :skip-undo: properties.

	* bserecords.idl: provide SKIP_DEFAULT and SKIP_UNDO constants.

	* bsestorage.c: don't serialize defaulting :skip-default: properties.

	* bsetype.h: skip undo/redo for :trigger: properties.

Mon Dec 15 21:16:49 2003  Tim Janik  <timj gtk org>

	* bseundostack.h: remove 64bit fields from BseUndoStep data union and
	added long/ulong fields to reduce memory usage on 32bit systems.

	* bseitem.c: 
	* bsecontainer.c: use v_long/v_ulong data fields in BseUndoStep.

Mon Dec 15 16:00:48 2003  Tim Janik  <timj gtk org>

	* bseamplifier.idl: stripped "/Module" prefix from categories as this
	is auto-prepended by the idl compiler now and shouldn't be translated.
	completed i18n markup of info strings, streams and parameter groups.

Tue Dec  2 23:28:37 2003  Tim Janik  <timj gtk org>

	* bse/bseprocidl.cc: don't error out on SfiRec arguments.
	
	* bseitem.[hc]: renamed bse_item_uncross() to bse_item_uncross_links().

	* bseparasite.[hc]: implemented new undo-able parasite interface,
	which supports SfiRec as parasite data and uses a file-path alike
	nameing scheme for the parasites. storage not yet implemented.

	* bseparasite.proc: added procedures to list, set, add and get new
	parasite records.

Fri Nov 28 03:34:15 2003  Tim Janik  <timj gtk org>

	* tests/testcxx.cc: reenabled closure test, use BSE_TYPE_AMPLIFIER as
	test object which is implemented in c++.

Fri Nov 28 00:53:37 2003  Stefan Westerfeld  <stefan space twc de>

	* bsecxxsmart.h: Added resize() for sequences.

Wed Nov 26 22:14:44 2003  Stefan Westerfeld  <stefan space twc de>

	* bserecords.idl: Proxy is gone.

Wed Nov 26 13:40:11 2003  Stefan Westerfeld  <stefan space twc de>

	* bsecxxsmart.h: Added (template) classes for SmartPtr, RefCountable,
	Sequence, ... used for records.

	* tests/testsmart.cc: Test for the smartpointer stuff.

	* Makefile.am tests/Makefile.am: Corresponding Makefile entries.

Tue Nov 18 20:03:38 2003  Tim Janik  <timj gtk org>

	* engine-mplan.txt: renamed (from gsl-mplan.txt).

Tue Nov 18 18:51:53 2003  Tim Janik  <timj gtk org>

	* bsequery.c (main): fix root type handling.

	* bseobject.proc: removed.

Sun Nov 16 13:30:00 2003  Christian Neumair  <chris gnome-de org>

	* bsebiquadfilter.c: added xgettext keyword (no-c-format) comment
	to a string.

Mon Oct 27 22:12:48 2003  Tim Janik  <timj gtk org>

	* bseamplifier.[ic]*: from 0.5.5 on, let the amplifier default to
	multiply (and-ing) the two control inputs.

Mon Oct 27 00:39:10 2003  Tim Janik  <timj gtk org>

	* gslloader-oggvorbis.c: added application/ogg.

Sun Oct 26 09:38:12 2003  Stefan Westerfeld  <stefan space twc de>

	* bserecords.idl: Using // within a string now works (no longer
	treated as C++ comment start by sfidl).

Sat Oct 25 17:30:21 2003  Tim Janik  <timj gtk org>

	* bsesuper.c: introduce copyright compat property.

Sat Oct 25 02:05:14 2003  Tim Janik  <timj gtk org>

	* bsebiquadfilter.[hc]: nuked frequency fine-tune setting which was
	rather pointless.

	* bseamplifier.idl: fix compat balance ranges.

Sat Oct 25 01:49:50 2003  Tim Janik  <timj gtk org>

	* *.*: changed "copyright" field of procedures, scripts and objects
	into a "license" field which better reflects what we're asking for.

Sat Oct 18 05:06:27 2003  Tim Janik  <timj gtk org>

	* bsestorage.[hc]: keep track of items stored so far, and of items
	referenced so far.

	* bseproject.[hcp]*: implemented dependency storing.
	(bse_project_store_bse): if the item to store is not the project,
	store all out-of-branch objects it referes to.

Sat Oct 18 04:45:29 2003  Stefan Westerfeld  <stefan space twc de>

	* bsetype.h: Added "scale" hint to Freq param spec. Added LogScale
	param spec.

Fri Oct 17 22:05:10 2003  Tim Janik  <timj gtk org>

	* bseserver.proc: export demo path and custom directories for
	effects and instruments.

	* bsetrack.proc: docu fix.

Tue Oct 14 21:51:23 2003  Tim Janik  <timj gtk org>

	* bseamplifier.cc: more 0.5.4-compatibility handling, audio-gain used to
	default to 50%.

Tue Oct 14 21:16:44 2003  Tim Janik  <timj gtk org>

	* examplepeakfilter.[hc]*: removed first c++ example module, there's
	plenty of other example code now (bsebalance.[ic]*, bseamplifier.[ic]*).
	
	* bsehelloworld.proc: removed first example procedures, there're plenty
	of others available, examples in scheme even.
	
Mon Oct 13 16:09:38 2003  Tim Janik  <timj gtk org>

	* bseproject.proc: use bse_undo_stack_push_add_on() to push the undo step
	to deactivate a project after playback started.

	* bseundostack.[hc]: added bse_undo_stack_push_add_on() which merges its
	undo step to the last pushed step if there is any.

Sun Oct 12 16:37:29 2003  Tim Janik  <timj gtk org>

	* bseutils.[hc]: removed old search path mathing code.
	sfi_file_crawler_list_files() does a better job on this.

	* bseladspa.[hc]:
	* bseplugin.[hc]:
	* bsescripthelper.[hc]: provide bse_*_path_list_files() functions
	which take care of extended path specifications and use SfiFileCrawler
	to properly expand ~/ etc.

	* bsemain.c:
	* bseserver.proc: use new bse_*_path_list_files() functions.

	* bserecords.idl: indentation fixes.
	added 6 "Search Paths" properties to BseGConfig, to allow users to
	configure sample/script/plugin/etc. paths directly.

	* bseserver.proc: added procedures to query file paths from bse
	and bse/mp3-handler versions.

	* gsldatahandle-mad.[hc]: export MAD version string.

Sun Oct 12 14:17:19 2003  Tim Janik  <timj gtk org>

	* bsedefs.h: 
	* bsemain.c: use BSE_GETTEXT_DOMAIN instead of unversioned "bse" and
	bind gettext charset to UTF-8.

	* bseconfig.h.in: provide BSE_GETTEXT_DOMAIN.
	
	* bsedefs.h: include bseconfig.h globally.
	
Sun Oct 12 01:12:15 2003  Tim Janik  <timj gtk org>

	* fixes according to pspec hints->options change.

	* bserecords.idl: fixed indentation.

Sat Oct 11 22:10:18 2003  Tim Janik  <timj gtk org>

	* bsemain.c: bind gettext domain "bse" to BST_PATH_LOCALE.

Fri Oct 10 16:47:53 2003  Tim Janik  <timj gtk org>

	* icons/inport.c:
	* icons/outport.c:
	* icons/subsynth.c:
	* icons/virtual.xcf: replaced virtual in/out/subsynth icons.

	* icons/inport.xcf:
	* icons/outport.xcf:
	* icons/inoutport.c:
	* icons/icons/inoutport.xcf: removed.

Fri Oct 10 00:53:56 2003  Tim Janik  <timj gtk org>

	* bseamplifier.idl (Bse): *sigh* workaround bse/bse.idl include.

Fri Oct 10 00:22:03 2003  Tim Janik  <timj gtk org>

	* bseprocidl.cc (printInterface): *sigh* prevent BseAmplifier from
	being generated.

Thu Oct  9 23:28:10 2003  Tim Janik  <timj gtk org>

	* Makefile.am: added rules to build C++ modules from idl files.

	* bsecxxbase.[hc]*: wrap BseItem.compat_setup().

	* bsecxxmodule.[hc]*: allow setting the output buffer of a module.

	* bsecxxplugin.[hc]*: support in core "plugins", i.e. builtins.

	* bseitem.[hc]: added a method bse_item_compat_setup() to patch up
	object state during parsing according to an old *.bse version.

	* bseplugin.[hc]: provide export identity node for builtin types
	and initialize them.

	* bsestorage.[hc]: compat_setup() items after creation.

	* bseamplifier.cc, bseamplifier.idl: ported bseamplifier.[hc] to
	idl based C++ code. changed property setup to match BseBalance
	where appropriate. optimized inner loop, used C++ templates and
	bseincluder.h to generate processing loop special cases.
	added compat code to ensure compatibility with <=0.5.4 stored
	BseAmplifier setups.

	* bseamplifier.[hc]: removed.

	* bseincluder.h: generate switch()-able function calls with
	a constant integer argument (usefull for C++ templates) in
	the range 0..4096.

	* bse/icons/ampctrl.c: removed.
	* bse/icons/ampctrl.png: added.

2003-10-08  Christian Neumair  <chris gnome-de org>

	* tests/.cvsignore: Added missing file.

Mon Oct  6 02:55:49 2003  Tim Janik  <timj gtk org>

	* bsecategories.c: adapt to new documented toplevel category set.
	check category fundamental types.

	* bse/bsecxxplugin.hh: remove namespace prefix from effect and procedure
	registration macros.

	* bse/bseitem.c: make seqid a non-gui property.

Sun Oct  5 10:51:06 2003  Tim Janik  <timj gtk org>

	* bseamplifier.c: fix property defaults.

Sun Oct  5 08:18:12 2003  Tim Janik  <timj gtk org>

	* bsetype.h (sfidl_pspec_Frequency): new pspec creator.

Sun Oct  5 07:00:40 2003  Tim Janik  <timj gtk org>

	* bseutils.[hc]: added balance property utility functions.
	
	* bsetype.h: added balance pspec creator.

Sat Oct  4 04:13:00 2003  Tim Janik  <timj gtk org>

	* bsecompat.c (bse_compat_rewrite_type_name): enter renamed
	object type names.

	* bseinstrumentinput.[hc]: implement BseInstrumentInput.
	* bsesubkeyboard.[hc]: removed.

	* bseinstrumentoutput.[hc]: implement BseInstrumentOutput.
	* bsesubinstrument.[hc]: removed.

	* bsemidiinput.[hc]: implement BseMidiInput.
	* bsemonokeyboard.[hc]: removed.
	
	* bsemidicontroller.[hc]: implement BseMidiController.
	* bsemidiicontroller.[hc]: removed.

	* bsecontainer.c (bse_container_add_item): when creating
	automatic names for modules, strip "Bse" namespace.

Sat Oct  4 03:00:03 2003  Tim Janik  <timj gtk org>

	* copied files in CVS repository for object renames:
	BseMonoKeyboard    -> BseMidiInput
	BseMidiIController -> BseMidiController
	BseSubKeyboard     -> BseInstrumentInput
	BseSubInstrument   -> BseInstrumentOutput

	* bsemidiinput.[hc]: copy of bsemonokeyboard.[hc].
	* bsemidicontroller.[hc]: copy of bsemidiicontroller.[hc].
	* bseinstrumentinput.[hc]: copy of bsesubkeyboard.[hc].
	* bseinstrumentoutput.[hc]: copy of bsesubinstrument.[hc].

Fri Oct  3 13:34:53 2003  Tim Janik  <timj gtk org>

	* bseproject.c (bse_project_dispose): stop and deactivate playing
	projects before attempting to dispose.

Fri Oct  3 07:37:37 2003  Tim Janik  <timj gtk org>

	* bsemidireceiver.cc (bse_midi_receiver_leave_farm): fix wrong assertion.

Sun Sep 21 04:42:33 2003  Tim Janik  <timj gtk org>

	* Makefile.am (libbseinclude_HEADERS): include bse.idl.

Tue Sep  9 05:22:07 2003  Tim Janik  <timj gtk org>

	* bsecxxutils.hh: implemented binary-search templates.

	* bsemidireceiver.cc: more C++-ification, properly namespaced
	stuff. uses stl types in a couple places now.
	keep currently playing voice input modules in a map, handle
	duplicate note-ons. squashed remaining stability bugs.

Mon Sep  8 14:59:42 2003  Tim Janik  <timj gtk org>

	* bsemidireceiver.[hc]: made reamining structures private (moved
	to .cc file). renamed voice-input and voice-switch modules and
	their API to make the code more consistent and readable.

Mon Sep  8 00:11:45 2003  Stefan Westerfeld  <stefan space twc de>

	* bsemidireceiver.cc: cvs copy of bsemidireceiver.c.

	* bsemidireceiver.c: removed.

	* bsemidireceiver.*: adapted to compile with a C++ compiler.
	made _BseMidiReceiver private.

Sun Sep  7 19:35:04 2003  Tim Janik  <timj gtk org>

	* bsemidireceiver.c (check_mono_synth_improvement):
	fix pointer==enum typo.

Sun Sep  7 15:45:26 2003  Tim Janik  <timj gtk org>

	* bsemidireceiver.c (activate_switch_module): fix switch module
	activation by using boundary jobs to check connection state.

	* gslopmaster.c (master_update_node_state): really fix all cases where
	reset() could be called after a flow job for an active tick by merging
	reset invocation into the flow job handling function.

	* gslopnode.h:
	* gslopengine.[hc]: added gsl_job_boundary_access().

	* gslopmaster.c: implemented boundary job handling.

	* gslopnode.h:
	* gsloputils.[hc]:
	* gslopmaster.[hc]:
	* gslopschedule.[hc]: 
	* gslopengine.[hc]: cleaned up flow job implementation,
	there're no resume flow jobs anymore and we need jobs
	with time stamps at other places. so the underlying structure
	is a TimedJob now.

Sat Sep  6 20:18:00 2003  Tim Janik  <timj gtk org>

	* bsemidireceiver.[hc]: allow sub voices per switchable voice.
	major code cleanup. merge voice module and mono synth module.
	introduces designated structure for midi channels.

	* bsemidivoice.[hc]: adapt to new midi receiver API.
	let the switch module handle voice creation on the midi receiver.

	* bsemonokeyboard.c: adapt to ne midi receiver API.

	* bsesnet.h: add voice_id to midi context.

	* gslengine.[hc]: added gsl_module_has_source(), changed
	suspend/resume job creators to gsl_job_suspend_now() and
	gsl_job_resume_at().

	* gslopmaster.c: propagate activation time sptamps for suspend
	and resume jobs. ensure that module->counter is updated
	before invoking any callbacks. fix reset() methods to be executed
	before flow jobs for a specific tick stamp. enfore initial reset()
	after node integration.

	* gslopnode.h: adapt nodes and jobs to allow suspend/activation
	tick stamps instead of just flags.

	* gslopschedule.c: calculate and propagate activation stamps instead
	of suspend flags. fixed suspend calculation for cycles.

	* gsl-mplan.txt: explain introduction of activation stamps used to
	implement suspend state for nodes.

Thu Sep  4 18:55:56 2003  Tim Janik  <timj gtk org>

	* bsesnet.[hc]: introduce BseMidiContext structure which holds
	the midi_receiver, midi_channel, etc. for a (synthesis) context.
	changed context creation, branch cloning and midi-retrival API
	to use BseMidiContext.

	* bsemidivoice.[hc]: give the voice input a voice switch handle,
	rather than the other way around. allocate midi voice from voice
	switch code, and for midi channel of voice switch module. got
	rid of midi_receiver references by means of BseMidiContext usage.

	* bsesubsynth.[hc]: forgo midi-receiver reference, use BseMidiContext.
	allow midi-channel overriding for sub snets.

	* bsetrack.[hc]: fix code according to voice input/switch changes.
	use BseMidiContext, fix midi-channel updates.

	* bsesong.c:
	* bseproject.c:
	* bsemonokeyboard.c:
	* bsemidiicontroller.c: BseMidiContext related fixes.

	* bsemidisynth.c: adapt to new midi voice input/switch code.
	fix midi channel handling. BseMidiContext related fixes.

	* bsemidireceiver.c: assert midi_channel and voice_id to be >= 1.

	* bsemidievent.c: assert midi_channel to be >= 1.

Thu Sep  4 14:34:36 2003  Tim Janik  <timj gtk org>

	* bsenote.[hc]: newly added files. these take over note utility
	fucntions from bseutils.[hc] and at some point probably also note
	specific functions from sfi. implemented frequency array, based
	on the GDArray code.

	* bsewave.[hc]: use BseFreqArray to match frequencies now, since
	GDArray is gone.

	* bsetype.h: added pspec constructors for Trigger and Perc.
	removed Frequency constructor, there's one for Freq.

	* bsecxxplugin.hh: support static data i ninitialization of generated classes.

	* bseutils.h:
	* bseutils.c:
	* bsecompat.h: removed note specific stuff.

Wed Sep  3 00:59:09 2003  Tim Janik  <timj gtk org>

	* bsecxxbase.[hc]*: provide public conversion function for GObject
	to CxxBase.

	* bsecxxmodule.[hc]*: renamed Module to SynthesisModule so plugins
	can simply define "Module" objects. don't register abstract BseEffect
	with categories.

	* bsecxxplugin.[hc]*: unify type registration for classes, enums and
	procedures in plugins.

	* bsecxxutils.[hc]*: fix category registration. get rid of C++ classes
	having to prototye a get_type() function.

	* bsecxxvalue.hh: provide g_value_get_object<>() template to retrieve
	specific Cxx classes from values.

	* bseexports.h: mostly cosmetic patchups on the new export structure.

	* bsemain.c (bse_init_intern): allow automated core plugin registration.

	* bseparam.[hc]: remove all enum hackery.

	* bseplugin.c: fixed plugin loading error handling.

	* bseprocedure.[hc]: reference value types prior to use to properly
	support plugin types in procedures.

	* bseprocidl.cc: fixed up type special casing. however this still lacks
	fundamental supprot for records and sequences, so signal generation
	needs to be disabled at the moment.

	* bsequery.c: fixed plugin registration.

	* bsetype.[hc]: provide enum pspecs creators.

	* mkcproc.pl: fixed recently introduced bug that swallowed procedure infos.

Sun Aug 31 15:53:17 2003  Tim Janik  <timj gtk org>

	* mkcproc.pl: fix recently introduced bug that prevented
	HELP/AUTHORS etc. assignemtns in procedure definitions.

Mon Aug 25 20:01:58 2003  Tim Janik  <timj gtk org>

	* bseladspa.c (bse_ladspa_plugin_check_load): 
	* bseplugin.c (bse_plugin_check_load): for type registration, module
	symbols may be bound lazy.

Mon Aug 25 19:04:24 2003  Tim Janik  <timj gtk org>

	* mkbuiltinlist.pl: removed.
	* Makefile.am: get rid of mkbuiltinlist.pl, use mkcproc.pl instead.

	* Makefile.am:
	* mkcproc.pl: generate procedure file type init functions.

	* bsecategories.[hc]:
	(bse_categories_register): feature a pixdata stream argument as icon.

	* bsecxxbase.[hc]*: added add() variant to CxxBaseClass to add already
	grouped pspecs 	to a class.

	* bsecxxutils.[hc]: streamlined type creation macros, so they can be
	resued by bsecxxplugin.[hc].

	* bseexports.h: complete revamp of the symbols and structures exported
	by plugins. there's only a single structure BseExportIdentity now, which
	links to variants of BseExportNode to hold exported type data.

	* bseobject.[hc]: added bse_object_class_add_grouped_property().

	* bseplugin.[hc]: simplified builtin type registration, we use a
	single init function for each procedure file now.
	greatly simplified symbol lookup in modules and type registration,
	according to the new structures in bseexports.h.
	removed the majority of magic type builtin-registration and export
	macros. plugin-alike registration for builtin types is not anymore
	supported, and for plugins, exports boild down to 2 macros.

	* bseprocedure.[hc]: adaptions to the new bseexports.h.

	* bseutils.[hc]: since BSE doesn't link against gdkpixbuf, added a
	small function bse_icon_from_pixstream() that extracts a BsePixdata
	structure from a pixstream as generated by gdk-pixbuf-csource.
	supports only 8bit RGBA images (possibly RLE encoded).
	
Fri Aug 22 08:06:29 2003  Tim Janik  <timj gtk org>

        * bse.idl:
        * bserecords.idl:
        * Makefile.am: renamed *.sfidl to *.idl.

Fri Aug 22 05:01:14 2003  Tim Janik  <timj gtk org>

	* examplepeakfilter.[hc]*: implementation of a peak filter, and example
	effect implemented in C++.

        * bsecxxmodule.[hc]*: implement Module, the C++ base class for engine
        modules. implement Bse::Effect, mostly a wrapper around BseSource
        functionality to allow effect implementations in C++.
        
	* bsecxxvalue.[hc]*: C++ GValue wrapper.

	* bsegenclosures.h: generated closure templates to allow signal
	connections in C++ code with many different signatures.

	* bsecxxclosure.[hc]*: implement base signal handler closure,
	and generation code for bsegenclosures.h.

	* bsecxxarg.[hc]*: implement function argument templates to be
	used by signal handler closures.

	* tests/testcxx.cc: new test program to perform cxx tests.

	* bsecxxbase.[hc]*: implement signal connections with type checking.
	implemented class functions to add i/o channels.

	* bsecxxutils.[hc]*: put out a message upon uncaught exceptions.
	added template and exception utilities. allow for better
	parameterization upon type registration.

	* bsesource.[hc]: allow GslClass caching in BseSourceClass.

	* bseexample.[hc]*: removed bad test code, there's a better example
	module now.

	* *.cc: use an anonymous namespace for local (static)
	functions/variables.

	* gslengine.[hc]: implement force-reset jobs to allow forcing
	reset of a module.

	* gslopmaster.[hc]: implement forced resetting of modules.

Thu Jul 31 18:08:28 2003  Tim Janik  <timj gtk org>

	* added BSE gruntwork to get C++ plugins going.

	* bsemain.c: initialize Cxx stuff.

	* bse/bseexample.[hc]*: two C++ example classes.

	* bse/bsecxxbase.[hc]*: base class for C++ objects.

	* bse/bsecxxutils.[hc]*: BSE C++ utilities, type registration etc.

Wed Jul 30 05:08:54 2003  Tim Janik  <timj gtk org>

	* bseexports.h (struct _BseExportEnum): fix constantness.

	* bsetype.[hc]: export sfidl_pspec constructors, so
	plugins may use them.
	
	* gslloader-gslwave.c: fix symbols.

Tue Jul 29 13:59:34 2003  Tim Janik  <timj gtk org>

	* bsepart.proc: added get-range-controls() to list events
	wthint a tick-duration range.

	* gsldatahandle-mad.c: fix setup.* fields being 0 during
	open().

Sun Jul 27 02:11:21 2003  Tim Janik  <timj gtk org>

	* bsemidiicontroller.[hc]: fix midi channel handling.

	* bsemonokeyboard.[hc]: new module. monophonic midi keyboard input
	module with selectable midi channel.

	* bsemidireceiver.[hc]: implemented monophonic synth (keyboard) module.

	* bseproject.c: fix default midi channel.

Sat Jul 26 04:33:03 2003  Tim Janik  <timj gtk org>

	* bsemididecoder.c (bse_midi_decoder_construct_event): count
	midi channels starting from 1 for decoded events.

	* bsetrack.[hc]: added midi-channel property to allow custom
	midi channel assignments.

Fri Jul 25 01:05:22 2003  Tim Janik  <timj gtk org>

	* bsemididevice-oss.c: push data into a midi decoder.

	* bsemididevice.c: provide default midi decoder (not midi receiver)
	for midi devices.

	* bsemididecoder.[hc]: new files. moved midi event decoding from
	bsemidireceiver.[hc] to here. uses bse_midi_receiver_farm_process_events()
	and bse_midi_receiver_farm_distribute_event() to have the events handled
	by all interested midi receivers.

	* bsemidievent.[hc]: added functions to copy and allocate midi events.

	* bsemidireceiver.[hc]: removed midi event decoding functionality.
	added midi-receiver-farm functions. a global midi event input queue.

	* bseproject.c: add project default decoder to midi receiver farm.

	* bseserver.c: removed default server midi receiver.

Thu Jul 24 01:28:33 2003  Tim Janik  <timj gtk org>

	* bsemidievent.[hc]: remove MIDI_MAX_CHANNEL assertions, up this to 99.

	* bsemidireceiver.[hc]: remove MIDI_MAX_CHANNEL assertions.
	add voice module ref counting.
	(bse_midi_receiver_voices_pending): check poending voices for a specific
	midi-channel.

	* bsemidivoice.c: don't export private functions.

	* bseproject.[hc]: provide a single midi-receiver for the whole project.

	* bsetrack.[hc]: don't provide own midi receiver, use the one from our
	song instead. added midi-channel property per track, per default, an
	internal midi-channel > MIDI_MAX_CHANNEL is used.

	* bsesong.[hcp]*: fetch midi-receiver from project once parent changes.
	provide tracks with midi receiver when creating voices. honour
	midi-channels of tracks.

	* bsessequencer.c: operate on the song's midi receiver, honour
	midi-channels of tracks.

Fri Jul 18 07:09:01 2003  Tim Janik  <timj gtk org>

	* gsldatahandle.c (gsl_data_handle_override): fix locking.

Fri Jul 18 06:41:08 2003  Tim Janik  <timj gtk org>

	* gslloader-gslwave.c: override osc_freq of external data handles.

	* gsldatahandle.[hc]:
	(gsl_data_handle_override): new function to allow overriding of
	setup parameters for closed data handles.
	(gsl_data_handle_open): support overriding of bit_depth, mix_freq
	and osc_freq.
	(gsl_data_handle_close): zero out ->setup.

Thu Jul 17 03:50:23 2003  Tim Janik  <timj gtk org>

	* bsemidievent.[hc]: added bse_midi_event_signal() to create
	non-note events. disabled enum BseMidiSignalType typedef which
	is in idl file now. added internal MIDI event type
	BSE_MIDI_X_CONTINUOUS_CHANGE to better facilitate continuous controls.

	* bsemidireceiver.[hc]: buglet fixups.
	support BSE_MIDI_X_CONTINUOUS_CHANGE events.

	* bsepart.[hc]: major API cleanup. added functions for control events.
	added support to save and load control events.

	* bsepart.proc: API cleanup. added procedures for control events.

	* bseprocidl.cc: hacked around BSE_TYPE_MIDI_SIGNAL_TYPE definition
	in idl file. improved overall code readability.

	* bserecords.sfidl: added control event definition, sependant sequence
	and MidiSignalType choice definition.

	* bsessequencer.c: fixup of velocity handling. added support for
	control events.

	* bsestorage.[hc]: added small helper bse_storage_check_parse_negate().

	* bsetype.c: support default Choice pspecs.

	* bseutils.[hc]: added convenience functions bse_part_control() and
	bse_part_control_seq_take_append().

Wed Jul 16 18:05:09 2003  Tim Janik  <timj gtk org>

	* bsepart.c (bse_part_restore_private): fix parsing bug wrg negative
	fine-tune values.

Tue Jul 15 03:34:24 2003  Tim Janik  <timj gtk org>

	* bsepart.[hcp]*: removed bse_part_find_note_at() which caused us to
	fail to find long overlapped notes. bse_part_list_notes_crossing() does
	find all required notes without bugs.

Mon Jul 14 14:37:19 2003  Tim Janik  <timj gtk org>

	* bsepcmdevice-oss.c (bse_pcm_device_oss_close): added third argument
	to ioctl(), since on NetBSD (when soundcard.h is included) it's a
	3-argument macro, reported by collver1 comcast net 
	
Tue Jul  8 02:31:30 2003  Tim Janik  <timj gtk org>

	* bsemidisynth.[hc]: added slot for postprocessing synthesizer.
	default to 16 voices.

Mon Jul  7 16:42:05 2003  Tim Janik  <timj gtk org>

	* bsestorage.c (wstore_data_handle_reader): remove debugging code.

Sat Jul  5 02:49:20 2003  Tim Janik  <timj gtk org>

	* bsesong.[hc]: added pnet property to set postprocessing synthesis
	network per song. added sub synth (null-shortcut) after track merger
	to hold pnet.

	* bsetrack.[hc]: added pnet property and sub synth to support post
	processing synthesis networks like above.

	* bsesubsynth.[hc]: added bse_sub_synth_set_null_shortcut(). this
	enables automatic signal-through connections if no snet is set.

Wed Jun 25 00:18:11 2003  Tim Janik  <timj gtk org>

	* bseserver.proc: seperate ladspa and core plugin loading.

Tue Jun 24 23:25:54 2003  Tim Janik  <timj gtk org>

	* bseserver.proc (register_scripts): fixed memleak in if() branch.

	* bsecategories.c (bse_category_from_id): free category fields before
	overwriting them.

Mon Jun 23 20:33:33 2003  Tim Janik  <timj gtk org>

	* bsejanitor.proc:
	* bsejanitor.[hc]: cleaned up connection shutdown logic. spew connection
	aborts to stderr. reap remote child (with small delay after killing if
	necessary). 

Fri Jun 20 00:00:31 2003  Tim Janik  <timj gtk org>

	* gsldatahandle-mad.c: fix BSE not compiling without libmad,
	reported by Daniel MacDonald <danboid yahoo co uk>.

Thu Jun 19 23:21:39 2003  Tim Janik  <timj gtk org>

	* bsecategories.proc: get rid of debugging junk.

	* bsemidiicontroller.c:
	* bsepcminput.c:
	* bsepcmoutput.c:
	* bsesubinstrument.c:
	* bsesubiport.c:
	* bsesubkeyboard.c:
	* bsesuboport.c:
	* bsesubsynth.c: fix GType ids still being stored in 32bit integers,
	which breaks on alpha where type ids are 64bit.
	tracked down by Sam Hocevar <sam zoy org>.

Tue Jun 17 14:40:26 2003  Tim Janik  <timj gtk org>

	* bseserver.c (engine_init): turn assertion into warning, so we don't
	take down the whole application upon mix frequency changes.

Tue Jun 17 04:33:46 2003  Tim Janik  <timj gtk org>

	* bsecategories.[hc]:
	(categories_match): removed unneccessary value copying.
	(bse_categories_match): match categories via predicate.

	* bsecategories.proc: added bse-categories-match-method() to list
	procedure categories by object.

Mon Jun 16 20:55:48 2003  Tim Janik  <timj gtk org>

	* bsemidisynth.c:
	* bsesong.c: use bse_snet_intern_child() to mark internal children,
	since we also need to keep them alive across dispose.
	
	* bsesnet.c: added bse_snet_intern_child() to mark a child internal
	and to protected from automatic removal at dispose time.
	
	* bsemidisynth.c:
	* bsesubsynth.c: use cross-refs to keep track of snets.
	
	* bsemidisynth.c (bse_midi_synth_list_proxies): 
	* bsesubsynth.c (bse_sub_synth_list_proxies): 
	* bsetrack.c (bse_track_list_proxies): collect synthesis networks (and
	change ::snet property types) of type BseCSynth, not BseSNet (which is
	abstract and includes songs and midi synths).
	
	* bseitem.c (bse_item_gather_proxies): don't gather internal items.

	* bseitem.c: renamed BSE_ITEM_AGGREGATE() to BSE_ITEM_INTERNAL().
	added bse_item_set_internal() to set whether an item is internal
	and made this flag affect whole branches.
	added bse_item_needs_storage() and ->needs_storage(), so items can
	refuse to get stored without flagging themselves as "aggregate".
	don't store undo for internal items. changed callers.

	* bseitem.proc: added bse-item-internal() to check whether an
	item is internal.

	* bseproject.c: made bse_project_create_intern_synth() flag the
	newly created synth as internal.

	* bseeditablesample.c: don't flag editable samples as aggregate.

	* bsesnooper.c: don't flag as aggregate, just refuse storage via
	implementing ->needs_storage().

	* bsewave.c: don't flag as aggregate. just refuse storage for
	empty waves by implementing ->needs_storage().

	* bsedatapocket.c: don't flag as aggregate, implement ->needs_storage()
	instead.

Fri Jun 13 20:01:58 2003  Tim Janik  <timj gtk org>

	* bseitem.proc: use bse_item_exec(), not bse_item_exec_void() to keep
	the return value after procedure execution.

Tue Jun 10 22:08:18 2003  Tim Janik  <timj gtk org>

	* bseitem.c: renamed bse_item_exec_void_proc() to bse_item_exec_void().

	* bseitem.proc: added undo, redo, clear-undo, undo-depth and redo-depth
	procedures.

Mon Jun  9 18:08:27 2003  Tim Janik  <timj gtk org>

	* bsepart.[hcp]*: allocate part ids in LIFO scheme to provide correct
	ids for undo state rollbacks. added bse_part_query_note() and implemented
	undo for modifying procedures.

Mon Jun  9 03:50:49 2003  Tim Janik  <timj gtk org>

	* BseWave undo fixup, we now support full undo on waves by keeping
	referenced data handles in memory.

	* bseitem.c:
	(bse_item_backup_to_undo): backup to BSE_STORAGE_DBLOCK_CONTAINED storage,
	so it may later be turned readable.
	(bse_item_push_undo_storage): turn the undo storage readable instead of
	just handing on text, this keeps data handles intact.
	(undo_restore_item): restore item from BseStorage instead of just text.

	* bsestorage.[hc]: added DBLOCK storage mode which keeps data handle
	references in memory.
	added bse_storage_turn_readable() to read out a previously written to
	storage (requires DBLOCK mdoe).
	reorganized data handle parsing code somewhat, got rid of half-baked
	bse_storage_mem_flush().

Sun Jun  8 19:56:27 2003  Tim Janik  <timj gtk org>

	* bseitem.c:
	* bseproject.c:
	* bsestorage.[hc]: error cosmetics.

Sun Jun  8 17:27:15 2003  Tim Janik  <timj gtk org>

	* bsestorage.[hc]: reimplementation on top of SfiRStore and SfiWStore.
	added compat code for <=0.5.1 binary data handling, removed lots of cruft.

	* bsebindata.[hc]: removed entirely.

	* bseenums.[hc]: removed BseEndianType.

	* gsldatahandle.[hc]: added osc_freq and mix_freq as fixed members to
	data handles. changed constructors and callers accordingly.
	cosmetic fixups to wave format strings.

	* *.[hc]: made mix_freq, osc_freq ordering in argument lists consistent.

	* gslloader.[hc]:
	* gslloader-mad.c:
	* gslloader-wav.c:
	* gslloader-gslwave.c:
	* gslloader-oggvorbis.c:
	* gsldatahandle-vorbis.[hc]:
	* gsldatahandle-mad.[hc]: provide osc_freq and mix_freq in datahandles.

	* bse/gslcommon.c: cosmetic fixups to endianess strings.

	* bsewave.[hc]: changed storage format, since bse_storage_parse_data_handle()
	now stores mix_freq, osc_freq etc. all automatically.
	left compat code in place to parse <=0.5.1 files.

	* bsesong.proc: fix NULL termination in call to bse_container_new_child().

	* bseproject.c: adapt to BseStorage changes. removed cruft.

	* bsedefs.h: removed BseTokenType, there's SfiTokenType. adapt
	BseTryStatement() to SfiStoreParser() signature.

	* *.c: fixup code due to removal of BseTokenType and other BseStorage
	changes.

Wed Jun  4 21:54:51 2003  Tim Janik  <timj gtk org>

	* bseproject.c:
	* bseitem.c: simplify code by using BseStorage methods.

	* bseprocedure.[hc]: cleaned up dead/unused code.

	* bsestorage.[hc]: code cleanups. removed unused mechanisms.

	* bsewave.c: adapt to bse_storage_parse_rest() changes.

Fri May 30 18:55:52 2003  Tim Janik  <timj gtk org>

	* implemented undo for BSE. We've got unlimited undo/redo for most
	functions now, undo is still missing out for: BseDataPocket and
	BsePart. restoring BseWave from undo only works partially.

	* bsewaverepo.proc: made load-file() and remove-wave() undo aware.

	* bseproject.proc: made create-song(), create-midi-synth(), play(),
	create-csynth(), remove-snet(), activate() and start-playback() undo
	aware. renamed ensure-wave-repo() to get-wave-repo(). added undo(),
	redo(), undo-depth(), redo-depth() and clear-undo().
	made restore-from-file() clear undo stack, because we can't maintain
	undo across merging.
	
	* bsesnet.proc: made create-source() and remove-source() undo aware.

	* bsesong.proc: made create-part(), remove-part(), create-track() and
	remove-track() undo aware.

	* bsesource.proc: made set-input-by-id(), unset-input-by-id(),
	set-input(), unset-input(), clear-inputs() and clear-outputs() undo
	aware. added undo-aware set-pos() to set ::pos-x and ::pos-y.

	* bsetrack.proc: changed procedures to use part link IDs.
	made insert-part(), remove-tick() and remove-link() undo aware.

	* bseitem.proc: added group-undo() and ungroup-undo() procedures for
	BSE clients to request undo grouping as well. internally we don#t open
	up actual undo groups for this, that could mess up internal state.
	instead, if group-undo() was called, everytime we're closing an undo
	group internally, we merge it with a previously queued undo group.

	* bsewaveosc.[hc]: fixed up cross links and signal reemissions.

	* bsetype.[hc]: added BSE_TYPE_PACKED_POINTER which is an undo
	implementation specific string type.

	* bsestorage.[hc]: restoring items generally does not queue undo/redo
	steps. added function to save an object entirely to memory.

	* bsetrack.[hc]: added IDs to part links.

	* bsesource.[hc]: added bse_source_backup_ichannels_to_undo(),
	bse_source_backup_ochannels_to_undo() and
	bse_source_input_backup_to_undo() which save i/o channels to undo
	without queueing subsequent redo though. added bse_source_check_input().

	* bseundostack.[hc]: new files, implementing a simple undo stack.

	* bsecontainer.[hc]: added undo aware functions to create/remove
	and uncross items. renamed ::item-removed to ::item-remove.

	* bseglue.[hc]:
	(bglue_proxy_set_property): set properties undo-aware.

	* bseobject.[hc]: changed ::uname setter. basically, we have a new uname
	convention now, unames may not contain ':' and the first character (if
	any) must be >=\007.
	fixed up reemission of property notify signals.

	* bseprocedure.[hc]: added bse_procedure_collect_input_args() which 
	just collects procedurer call args from the stack.

	* bseproject.[hc]: added undo/redo stacks and ::dirty property.
	::dirty doesn't work like expected currently, but provides reliable
	change notification for undo changes.

	* bseitem.[hc]: added bse_item_get_toplevel(), and facilities
	to queue procedure calls to undo/redo stack. added bse_item_undo_open()
	and bse_item_undo_close() which are used to group any undoable
	operation. added ->get_undo() method to retrieve the current
	undo stack. fixed up bse_item_get_project() to work on projects
	as well. cleaned up procedure code.
	added undo aware property setters, the current implementation
	ignores resetting a property to a value it already has (for a limited
	property set at least), which saves the user lots of undo operations.

	* *.c: changed g_object_set() to undo aware bse_item_set() where
	appropriate and marked the intentionaly unchanged rest with /* no undo */

Tue May 27 03:33:52 2003  Tim Janik  <timj gtk org>

	* bseladspa.c: applied patch from Sam Hocevar <sam zoy org> which
	fixes wrong error messages and crashes on some of the cmt.so
	plugins.
	added cosmetic fixups, refined debugging messages, minor optimizations.

	* bseladspa.[hc]: put code under LGPL.

Tue May 27 02:57:00 2003  Tim Janik  <timj gtk org>

	* bsetrack.c (bse_track_list_proxies):
	* bsesubsynth.c (bse_sub_synth_list_proxies): 
	* bsewaveosc.c (bse_wave_osc_list_proxies): 
	* bsemidisynth.c (bse_midi_synth_list_proxies):
	gather proxies with bse_item_gather_proxies_typed(), now
	that BseSNet is abstract and the type checks don't need
	to resort to BSE_TYPE_SNET== hacks anymore.

	* bseitem.c (bse_item_gather_proxies_typed): don't gather
	ancestors of the originating item (unless allow_ancestor
	is passed as TRUE).

Tue May 27 02:22:37 2003  Tim Janik  <timj gtk org>

	* bseproject.proc: added bse-project-remove-snet.

Tue May 27 01:36:56 2003  Tim Janik  <timj gtk org>

	* bseglue.c (bglue_proxy_set_property): warning cosmetics.

	* bseproject.proc: added bse-project-is-active.

Sun May 25 15:04:37 2003  Tim Janik  <timj gtk org>

	* bsecompat.[hc]: added bse_compat_rewrite_type_name() to handle
	types from different BSE file versions.
	handle BseSNet->BseCSynth for 0.5.2.

	* bsecontainer.c: inhibit restauration of abstract child types.

	* bsemididevice.[hc]:
	* bsecontainer.[hc]:
	* bsepcmdevice.[hc]:
	* bseobject.[hc]:
	* bsesource.[hc]:
	* bsesuper.[hc]:
	* bseitem.[hc]: flagged types appropriately as abstract.

	* bsesnet.[hc]: turned BseSNet into an abstract type.

	* bsecsynth.[hc]: new type, deriving from BseSNet to implement
	custom (user) synth functionality.

	* bseproject.proc: provide csynth instead of snet procedures now.

	* bsequery.c: indicate abstract types.

	* bsetype.[hc]: added bse_type_register_abstract().

	* bsestorage.[hc]: implemented bse-version handling.

Tue May 20 18:39:03 2003  Tim Janik  <timj gtk org>

	* tests/magictest.c: moved here from bsemagictest.c.

	* tests/mathtests.c: moved here from gsltests.c.

	* tests/testfft.c: moved here from gslffttest.c.

	* tests/testwavechunk.c: moved here from gslwchunk.c.

	* tests/Makefile.am: added testwavechunk testfft to TESTS so
	make check runs these automatically.

	* removed: bsemagictest.c, gsltests.c, gslffttest.c and gslwchunk.c.

Tue May 20 17:46:12 2003  Tim Janik  <timj gtk org>

	* tests/cutvorbis.c: added test program for ogg/vorbis file cutting.

	* tests/: new directory to accumulate BSE related test programs.

Tue May 20 15:08:01 2003  Tim Janik  <timj gtk org>

	* port code to gcc-3.3.

	* gsldefs.h: provide gcc specific prefetch macros and rename _EXPECT()
	and _REJECT() macros to _EXPECT1() and _EXPECT0() respectively. removed
	parenthesis around macro arguments to catch inline assignments.

	* gslcommon.[hc]: allow precision specification with progress functions.

Sun May 18 04:55:45 2003  Tim Janik  <timj gtk org>

	* bseprocedure.proc: added bse-string-extract-number() to deal with
	command line argumens and midi notes.

	* gslcommon.[hc]: added simple progress api for comand line apps.

	* gsldatahandle-vorbis.[hc]: changed API, now a data handle relates
	to a logical ogg/vorbis stream specified by either the logical stream
	number or a zero-offset relative file section.

	* gsldatautils.h: reduced peek buffer size from 8192 to 2048 for
	better cache utilization.

	* gslloader-gslwave.c: support inlined (binary appendix) raw sample data
	via "rawlink" key word, and added support for inlined ogg/vorbis sample
	data via "ogglink". adjust binary appendix syntax parsing.
	
	* gslwave.header: minor description fixes, describe ogglink and rawlink.

	* gslvorbis-enc.[hc]: Ogg/Vorbis encoder API front end.

	* gslvorbis-cutter.[hc]: Ogg/Vorbis stream cutting implementation
	currently supports tail cutting at sample, packet and page boundaries.

Sun May 11 18:45:40 2003  Tim Janik  <timj gtk org>

	* gsldefs.h:
	* bseenums.[hc]:
	* gslcommon.[hc]: added GSL_ERROR_IS_DIR and BSE_ERROR_FILE_IS_DIR
	errors. return GSL_ERROR_IS_DIR for EISDIR from gsl_error_from_errno().
	special case GSL_ERROR_IS_DIR in gsl_check_file().

Sun May 11 14:22:12 2003  Tim Janik  <timj gtk org>

	* bseitem.c: removed ::seqid-changed signal, added readable property
	::seqid that also emits change notification.

Tue May  6 04:17:19 2003  Tim Janik  <timj gtk org>

	* bsemain.c (bse_init_intern): 
	(bse_init_async): don't override previously set prgnames.

	* bserecords.sfidl: added SampleFileInfo record.

	* bsewaverepo.proc: provide bse-sample-file-info() to retrive
	info about a sample file prior to loading.

Mon May  5 03:52:24 2003  Tim Janik  <timj gtk org>

	* bseglue.c (bglue_proxy_request_notify): canonify signal names before
	attempting matches, fixes remaining "spurious signal" warnings. minor
	optimizations.

Mon Apr 28 22:15:52 2003  Tim Janik  <timj gtk org>

	* gsltests.c (main): added exp() timing loops.

	* gslcommon.c (gsl_init): properly initialize random numbers by
	calling srand() with usec fractions.

Mon Apr 28 05:02:28 2003  Tim Janik  <timj gtk org>

	* zintern/mono-wave.bse: updates to be used by BseTrack.

	* bsetrack.[hc]: support BseWave property concurrently to the
	"snet" property. "wave" tracks are played through an internal
	standard mono synth.

	* bseproject.[hc]: added bse_project_create_intern_synth() to merge
	an internal standard synth into the project.

	* bsestandardsynths.[hc]: renamed bse_standard_synth_lookup()
	to bse_standard_synth_inflate().

	* bsestorage.c (restore_container_child): check container's child
	filter before restoring a child.

	* bsecontainer.[hc]: added check_restore() methods to prevent
	certain children from being restored.

Sun Apr 27 22:23:08 2003  Tim Janik  <timj gtk org>

	* gslosctable.[hc]: added gsl_osc_wave_form_name(), improved debugging
	messages.

	* gsldatautils.[hc] (gsl_wave_file_dump_data): new function to write data
	portion of a WAVE file from a float block.

Sun Apr 27 02:52:31 2003  Tim Janik  <timj gtk org>

	* bsepcmdevice-oss.c: split up debugging messages into "oss" and
	"latency" keys.

	* bsepcmdevice.[hc]: added bse_pcm_device_request() to request
	specific sampling rates and number of channels.

	* bseserver.c: make the mixing frequency preference setting
	actually take effect on the PCM device.

Fri Apr 18 19:48:59 2003  Tim Janik  <timj gtk org>

	* bsepcmwriter.[hc]: new object dumping PCM output to a WAV file.

	* bsepcmmodule.c: route PCM data into a BsePcmWriter if given.

	* bseserver.[hc]: added WAV file name property and support for
	BsePcmWriter.

	* gslloader-wav.c: fixed WAV header file length check.

	* gsldatautils.[hc]:
	(gsl_wave_file_dump_header): new function to write out RIFF/WAVE
	headers, fixing up the file_length logic which was broken in
	gsl_data_handle_dump_wav().
	(gsl_wave_file_patch_length): new function to change the data length
	information in a RIFF/WAVE file after the header was written (changes
	file position pointer).
	(gsl_data_handle_dump): return normal errno.
	(gsl_data_handle_dump_wav): return normal errno, use
	gsl_wave_file_dump_header() to write the wav header.

	* bseproject.c (bse_project_store_bse): use bse_error_from_errno() to
	translate errno to BseErrorType.

Wed Apr 16 19:24:12 2003  Tim Janik  <timj gtk org>

	* bsewaverepo.proc (load_file): fix usage of g_basename().

	* bseobject.c (bse_object_type_register): added missing cast.
	* bseprocedure.c (bse_procedure_type_register): same here.

Sun Apr 13 23:48:07 2003  Tim Janik  <timj gtk org>

	* bsepcmdevice-oss.c (bse_pcm_device_oss_open): fallback to check
	/dev/dsp[0-3] if /dev/dsp couldn't be opened.

Fri Apr 11 14:10:07 2003  Tim Janik  <timj gtk org>

	* bsemididevice-oss.c (bse_midi_device_oss_open): fallback to check
	/dev/midi[0-3] if /dev/midi couldn't be opened.

Sun Apr  6 13:56:09 2003  Tim Janik  <timj gtk org>

	* bsesource.[hc]: added i/o channel identifier to public API.
	fixed up bse_source_class_add_jchannel_ident() and
	bse_source_class_add_ichannel_ident().

	* bseladspamodule.c (bse_ladspa_module_class_init_from_info): 
	actually *use* the port identifier as identifier for i/o channels.

	* bseladspa.c (bse_ladspa_info_port_2str): complete flag list.

Sat Apr  5 17:48:45 2003  Tim Janik  <timj gtk org>

	* bseladspamodule.c: adjust property construction to better hinting
	and pre-/post-process audio signals that have the rate_relative hint
	set.

	* bseladspa.c (bse_ladspa_info_add_port): use the ladspa port index to
	construct a unique port identifier instead of the port name, according
	to a recommendation from Steve Harris <S W Harris ecs soton ac uk>.

	* bseladspa.[hc] (bse_ladspa_info_add_port): provide a sample rate
	relative hint and set frequency hint if we have good indications for
	a frequency control input port.

Fri Apr  4 19:25:52 2003  Tim Janik  <timj gtk org>

	* bseparasite.c (bse_parasite_restore): removed pre-0.5.0 compat
	parsing code.

	* gsldatahandle-vorbis.c: require ogg/vorbis >= 1.0.0rc4 now.
	
	* bseutils.c: documentation fixes.

Fri Apr  4 10:25:00 2003  Tim Janik  <timj gtk org>

	* ladspa.h: added LADSPA API Version 1.1 header file.

	* bseladspa.[hc]: implemented BseLadspaInfo assembler and
	GTypePlugin to load LADSPA plugins.

	* bseladspamodule.[hc]: implemented BseLadspaModule base type
	and derived methods used by BseLadspaModule_* implementations.
	a working LADSPA module is then derived from BseLadspaModule
	using these methods and equipped with BseLadspaInfo.

	* bseserver.proc (register-plugins): register ladspa plugins after
	registering BSE plugins.

	* gslopmaster.c (master_process_job): when integrating nodes,
	flag suspension_update, so the scheduler updates their suspension
	state. also, flag them initially as outputs_suspended, in order to
	trigger reset() method activation prior to the first process()
	call.

Mon Mar 17 07:06:43 2003  Tim Janik  <timj gtk org>

	* bsepcmdevice.[hc]: derive from BseItem, so device can later be valid
	BseServer children and be exported through the middleware.

	* gslwaveosc.c: turn debugging prints into DEBUG() calls.

Thu Mar 13 21:30:14 2003  Tim Janik  <timj gtk org>

	* Makefile.am (gslincludedir): install gsl headers under bse/.

Thu Mar 13 21:13:33 2003  Tim Janik  <timj gtk org>

	* bsepcmdevice-oss.c (bse_pcm_device_oss_open): if opening in read-write
	mode fails, try falling back to write-only mode.

	* gslcommon.c (gsl_error_from_errno): return fallback error for EINVAL.

Thu Mar 13 19:42:30 2003  Tim Janik  <timj gtk org>

	* bsemidisynth.c (bse_midi_synth_init): set sequencer flag on midi
	synths.

	* bsesong.[hc]:
	* bsesuper.[hc]: move sequencer_pending_SL field from song to super.

	* bsessequencer.[hc]: handle sequencing of supers (there's nothing
	to do for non-song supers, but we need to allow having them in the
	sequencer loop).

Thu Mar 13 18:39:10 2003  Tim Janik  <timj gtk org>

	* bseproject.c (bse_project_finalize): urgs, remove project from
	auto-stop list, rather than adding to it.

	* bseparasite.c: fixed newly introduced parasite parsing bugs.

Thu Mar 13 13:51:49 2003  Tim Janik  <timj gtk org>

	* bsestorage.[hc]: added bse_storage_putf(), bse_storage_putd() and
	bse_storage_putr() to store floats, doubles and Reals in a locale
	independent fashion.

	* *.c: fixed storage code by using bse_storage_put{f|d|r}() to store
	float numbers.

	* bsestorage.c (bse_storage_prepare_write): fix bse version storage.

	* bsestandardosc.c (bse_standard_osc_class_init): add SFI_PARAM_FLOAT
	for Real properties which are stored in floats 'cause they don't need
	full double precision.
	
	* bseamplifier.c (bse_amplifier_class_init): remove bogus pspec flags.

Sun Mar  9 09:53:41 2003  Tim Janik  <timj gtk org>

	* bsestorage.c (bse_storage_resolve_item_links): 
	* bsesource.c (resolve_osource_input): fix link resolution messages.

	* bsepcmdevice-csl.[hc]: removed CSL driver code (in
	accordance with stefan).
	
	* bserecords.sfidl: added pspec groups to preferences.

	* bsemain.c (bse_async_parse_args): allow enabling of BSE
	developer extensions via developer-extensions field in
	the config record passed in.

Fri Mar  7 21:44:24 2003  Stefan Westerfeld  <stefan space twc de>

	* bsetype.c: adapted sfidl_xxx macros to pspec group support

Fri Mar  7 14:52:43 2003  Tim Janik  <timj gtk org>

	* *.[hc]: removed old debugging cruft. switched things over
	to SFI debugging functions.
	
	* bsemain.c: debugging options revamp.
	
Fri Mar  7 03:37:47 2003  Tim Janik  <timj gtk org>

	* bsesuper.[hc]: removed cruft. fix time types.

	* bseutils.[hc]: removed already replaced timing functions.

Thu Mar  6 05:59:44 2003  Tim Janik  <timj gtk org>

	* bsetrack.c: removed ::part property hack.
	ignore snet changes while our internal sub synth is prepared
	(locked) since changes have no effect then anyway.

Mon Mar  3 23:17:18 2003  Stefan Westerfeld  <stefan space twc de>

	* bsepcmdevice-csl.c: slightly beautified mutex init code.

Mon Mar  3 22:42:25 2003  Stefan Westerfeld  <stefan space twc de>

	* bsepcmdevice-csl.c: initialize CSL with a mutex, as BSE is
	multithreaded.

Wed Feb 26 22:57:54 2003  Tim Janik  <timj gtk org>

	* bseautodoc.c: provide a pspec nick as blurb if no blurb is given.

	* bserecords.sfidl: added BseSongTiming record.

	* bsesong.[hc]: support tact nominator and denominator properties,
	added BseSongTiming retrieval function and procedure. removed cruft.

	* bsetrack.proc: provide get-part() procedure to lookup a specific tick.
	provide get-timing() for convenience.

	* bsepart.proc: provide get-timing() for convenience.

Sat Feb 22 17:10:34 2003  Tim Janik  <timj gtk org>

	* bsesong.[hc]: added properties for song looping and exported
	son gposition pointer, accompanied by a signal ::pointer-changed
	for realtime updates.

	* bsessequencer.[hc]: support song looping.

Tue Feb 18 17:47:17 2003  Stefan Westerfeld  <stefan space twc de>

	* bseautodoc.c bsebindata.c bseconstant.c bsecontextmerger.c
	bsedatapocket.c bseitem.c bsemagictest.c bseparasite.c
	bsepcmdevice-oss.c bsequery.c bseserver.c bsestandardsynths.c
	bsesubinstrument.c bsesubiport.c bsesubkeyboard.c bsesuboport.c
	bsesubsynth.c bsewave.c gslffttest.c gslfilter.c
	gslloader-oggvorbis.c gslloader-wav.c gslwaveosc.c gslwchunk.c
	zintern/zintern.c: fixes to build without warnings on gcc-3.2.

Tue Feb 18 16:56:22 2003  Tim Janik  <timj gtk org>

	* bsessequencer.c (bse_ssequencer_process_track_SL): don't forget
	following parts when checking whether a track is done.

Tue Feb 18 16:29:34 2003  Tim Janik  <timj gtk org>

	* bsecontainer.c:
	(bse_container_do_remove_item): decrement n_items _after_ uncrossing
	to keep n_items checks in uncrossing logic working.
	(_bse_container_cross_unlink): give precedence to recursively unlinked
	cross references over further existing cross links.
	(_bse_container_uncross_descendant):
	(_bse_container_uncross): reload BseContainerCrossLinks* which might
	have been reallocated during callbacks.

	* bsetrack.c:
	(track_uncross_part): stop after the first part to uncross was found.

Tue Feb 18 01:09:06 2003  Stefan Westerfeld  <stefan space twc de>

	* bsepcmdevice-csl.c: use BSE_PCM_DEVICE_CSL_SUPPORT (which is in the
	BSE namespace) instead of HAVE_LIBCSL

Mon Feb 17 22:52:02 2003  Stefan Westerfeld  <stefan space twc de>

	* Makefile.am: libcsl support

	* bsepcmdevice-csl.[hc]: new PCM device implementation for
	libcsl (Common Sound Layer). This for instance allows using
	beast with aRts.

	* bsepcmdevice-oss.c: bugfix: close filedescriptor when >= 0,
	not when < 0.

Mon Feb 17 18:34:46 2003  Tim Janik  <timj gtk org>

	* bseplugin.c (bse_plugin_register_exports): register choice<=>enum
	transform functions for dynamic enum types.

	* bsestorage.[hc]: keep internal hash table of objects and their unames
	created during parsing. resolve uname paths via internal hash table if
	possible to give storage scope objects precedence over existing objects.
	removed BSE_OBJECT_FLAG_FIXED_UNAME hackery.

Mon Feb 17 15:31:41 2003  Tim Janik  <timj gtk org>

	* bseobject.c:  use global ID allocator.

	* bsesnet.[hc]: nuke per-object id allocator, use global ID allocator.

	* bseutils.[hc]: removed old functions. updated bse_string_hash().
	added global ID allocator.

Fri Feb 14 07:50:29 2003  Tim Janik  <timj gtk org>

	* bsestorage.[hc]: major overhaul. made BseStorage an object.
	moved GObject property storage and parsing logic to here.
	provide highlevel storage and parsing primitives and keep the
	basic storage/parsing logic in a single place (bse_storage_store_item()
	and item_restore_try_statement()). use sfi_storage_scanner_config.

	* bseproject.[hcp]*: adapt to new BseStorage code, simplified parsing
	logic.

	* bsesong.c: removed uneccessary parsing hooks.

	* bseparasite.[hc]: just provide bse_parasite_restore() amd
	bse_parasite_store() and rely on BseStorage to invoke parasite
	parsing/storage code when apropriate.

	* bseobject.[hc]:
	* bseitem.[hc]: removed lots of the complicated parsing and storage
	logic.

	* bsecontainer.[hc]: removed serialization methods.
	just provide bse_container_store_children() to loop over all children
	that need to be stored.

	* bsewave.c:
	* bsepart.c:
	* bsetrack.c:
	* bsesource.c:
	* bsedatapocket.c: cleanup and fix restore_private() implementation.

Thu Feb 13 10:43:23 2003  Tim Janik  <timj gtk org>

	* bsequery.c: support "synthlist" and "synth" qualifiers to retrieve
	dumps of standard synth definitions.

	* bsestandardsynths.[hc]: nuked old synth generation code. added
	bse_standard_synth_get_list() and bse_standard_synth_lookup() to
	retrieve standard synth definitions.

	* zintern/mono-wave.bse: added mono wave synth.

	* zintern/zintern.c: small utility to generate C source to inline
	file contents, supporting libz compression of the file contents.

	* zintern/Makefile.am: added new subdir zintern/ for inlined BSE
	files (synth definitions).

Thu Feb 13 02:22:41 2003  Tim Janik  <timj gtk org>

	* bsemidireceiver.[hc]: provide bse_midi_receiver_voices_pending()
	which also accounts for pending events, instead of
	bse_midi_receiver_has_active_voices().

	* bsesong.proc (find-track-for-part): adapt to using
	bse_track_find_part().

	* bsessequencer.c: split sequencing code into distinct functions for
	songs, tracks and parts. use bse_track_get_part_SL() to step through
	the parts of a track.

	* bsetrack.[hc]: provide bse_track_find_part() to retrieve the tick
	start of a certain part. provide bse_track_get_part_SL() for sequencer
	lookups.
	got rid of ->part_SL member.

Tue Feb 11 06:58:09 2003  Tim Janik  <timj gtk org>

	* bseobject.[hc]: added bse_object_reemit_signal() and
	bse_object_remove_reemit() to forward signal emissions
	from one object to another.
	added convenience functions bse_object_proxy_notifies() and
	bse_object_unproxy_notifies() to forward signals relevant
	for an object reference.

	* bsetrack.c: fixed up cross-references. keep cross
	references on inserted parts, fixup finalization leaks.
	proxy name changes and last-tick changes from parts to
	::changed.

	* bseitem.[hc]: renamed cross-ref to cross-link in public API.
	removed bse_item_list_cross_owners() and bse_item_has_cross_owners().
	bse_item_uncross() now removes _all_ existing cross links,
	bse_item_cross_unlink() now requires uncross_func passed in to
	a previous call to bse_item_cross_link().

	* bsecontainer.[hc]: reworked and cleaned up cross links.
	allow removal of cross-links during uncross_func() invocation.
	removed bse_container_cross_forall().

Mon Feb 10 21:37:54 2003  Tim Janik  <timj gtk org>

	* bseglue.c (bglue_proxy_set_property): handle invalid value
	types with sfi_warn() and do lax value validation.

	* bsessequencer.c (bse_ssequencer_process_song_SL): don't play
	notes of muted tracks.

	* bsetrack.[hc]: added ::muted property to silence a track during
	playback.

Thu Feb  6 20:29:00 2003  Tim Janik  <timj gtk org>

	* bseprocidl.cc: g++-3.2 wants std:: namespacing for strings and sets.

Tue Feb  4 18:20:31 2003  Tim Janik  <timj gtk org>

	* bseitem.proc: provide bse-item-set-name().

Fri Jan 31 19:37:31 2003  Tim Janik  <timj gtk org>

	* bsetrack.[hcp]*: implemented part lists.

	* bsetrack.proc: added track procedures to modified part list.

	* bsepart.[hc]: get rid of ppqn which is provided by songs now.

	* bsesong.[hc]: provide tpqn (ticks per quarter note) and qnpt
	(quarter notes per tact) properties.

	* misc doc fixes.

Thu Jan 23 01:40:09 2003  Alper Ersoy <dirt gtk org>

	* bseautodoc.c: adjusted linebreaks around revision lines.

Wed Jan 22 23:24:50 2003  Tim Janik  <timj gtk org>

	* bsecontainer.[hc]: supply sequential ID with ::item-removed as this
	can't be retrieved afterwards.

	* bsecontainer.proc: export proc to actually fetch an item via its type
	and sequential id.

Tue Jan 21 03:42:08 2003  Tim Janik  <timj gtk org>

	* bsemidireceiver.c (bse_midi_receiver_process_events): keep
	processing events until the specified max_tick_stamp is reached.

	* bseproject.[hc]: bse_project_keep_activated() keep the project
	from automatic deactivation until a certain tick stamp is reached.

	* bsesong.proc: added procedures to find a track for a part, suitable
	for live playing of notes and to synthesize track notes for immediate
	playback.

Mon Jan 20 11:18:02 2003  Tim Janik  <timj gtk org>

	* bseproject.[hcp]: changed playback and activation logic.
	project playback happens in stages activate, start_playback,
	stop_playback and deactivate. a project can be automatically
	stopped due to the sequencer reaching song ends, and a project
	can be automatically deactivated through a timeout.
	export the new interface in procedures.

	* bseglobals.[hc] (bse_idle_timed): added timeout functions.

Thu Jan 16 23:27:51 2003  Tim Janik  <timj gtk org>

	* bseproject.[hcp]*:

	* bsemain.c (bse_main_loop): start sequencer thread.

	* bsemididevice.[hc]: removed cruft.

	* bsemidireceiver.[hc]: added accessor to check whether some
	voices are still active.

	* bsepart.[hc]: keep track of the last tick and export it as
	property. more _SL fixes for functions/memebers protected by
	the sequencer lock.

	* bsemidisynth.c: set early context creation flag.

	* bsesnet.c: maintain user context creation setting.

	* bsesong.[hc]: integrate with sequencer updates.
	(bse_song_init): set early context creation and sequencing flags.

	* bsessequencer.[hc]: start switching sequencer code over from
	songs to supers. detect song playback ends.

	* bsesuper.[hc]: introduce flags to indicate need of early or
	sequencer context creation and need for sequencing. could remove
	auto_activate field after introduction of the flags.

	* bsetrack.c: cause the sequencer to re-check whether a track is
	done after properties were altered.

	* bsewaverepo.c: nuke auto_activate setting.

	* bseserver.[hc]: simplify device management by exporting just
	bse_server_open_devices() and bse_server_close_devices() and
	suport use counting for them.

	* bseserver.proc: scratch run/halt-project procedures since
	projects export the necessary mechanisms themselves now.

Wed Jan  8 20:15:01 2003  Tim Janik  <timj gtk org>

	* bseenums.[hc]:
	* gsldefs.[hc]:
	* gslcommon.[hc]:
	* gsl*.c:
	* bse*.c: error code cleanups, improved error code handling.

Mon Jan  6 00:16:17 2003  Tim Janik  <timj gtk org>

	* bseproject.[hcp]*: introduce activation state. added state
	notification.

Sat Jan  4 15:34:28 2003  Tim Janik  <timj gtk org>

	* bsemidireceiver.c (process_midi_control_L): 
	* bsemidievent.c (bse_midi_signal_default):
	* bserecords.sfidl (GConfig): added config option invert_sustain to
	support sustain pedals which report inverted sustain events.

Fri Jan  3 19:10:03 2003  Tim Janik  <timj gtk org>

	* bsessequencer.[hc]: new song sequencer implementation, based on the
	old song sequencing thread from bsesongthread.[hc].

	* bseproject.c: queue song sequencer jobs to start song playback and
	don't start synthesis networks any earlier than song playback.

	* bsesong.[hc]: use the new song sequencer.

	* gsloputils.[hc]:
	* gslopmaster.[hc]:
	* gslengine.[hc]: implemented engine timers, delayed commits and
	transaction merging.

	* gslengine.[hc]: (gsl_job_add_poll): leak fix, don't forget
	the free_func.

	* bsesongthread.[hc]: removed this.

Tue Dec 31 03:03:39 2002  Tim Janik  <timj gtk org>

	* Makefile.am, toyprof.*: remove toyprof code.

Mon Dec 30 00:42:19 2002  Tim Janik  <timj gtk org>

	* bseglue.c:
	(bglue_proxy_processed_notify):
	(bclosure_notify_marshal):
	(bclosure_marshal): keep objects alive across remote notifications
	via use-count increment.

	* bseitem.[hcp]*: expose bse_item_unuse().

	* bseobject.[hc]: removed pre-GObject compat code, fixed callers.

Thu Dec 26 21:59:32 2002  Tim Janik  <timj gtk org>

	* gslengine.c (gsl_engine_init): provide master thread with user thread
	handle for wakeups.

	* gslopmaster.c (_engine_master_thread): wakeup user thread if jobs
	need to be collected.

	* bseglobals.[hc]: added NORMAL priority for idle handlers.

	* bseserver.[hcp]*: emit ::registration while registering
	scripts and plugins.
	added bse-server-register-scripts() and bse-server-register-plugins()
	procedure which register asyncronously.

	* bsewaveosc.[hc]: pass on the current tick stamp when emitting pcm
	position notification.

Tue Dec 24 04:57:02 2002  Tim Janik  <timj gtk org>

	* bsejanitor.[hc]: emit ::closed once the connection is terminated.

	* *.c: 
	* bsemarshal.*:
	* bseobject.[hc]: remove marshaller generation code, use SFI marshaling.

Tue Dec 24 00:11:50 2002  Tim Janik  <timj gtk org>

	* bsepcmoutput.c:
	* gslopmaster.c: misc bug fixes and adaptions due to SFI changes.

Mon Dec 23 03:35:41 2002  Tim Janik  <timj gtk org>

	* bseglue.[hc]: support new poll fd api. removed GSource integration
	which is being provided by BseJanitor now. provide generic conversion
	functions bse_value_from_sfi() and bse_value_to_sfi(). support context
	destruction. 

	* bsemain.c: let BseJanitor handle connections now.

	* bsescriptcontrol.[hcp]*: removed, purpose filled by BseJanitor now.

	* bseserver.[hcp]*: use BseJanitor instead of script-control, fixed
	bse_server_run_remote() somewhat. provide procedures to register
	scripts and plugins.

	* bswcommon.[hc]: removed entirely.

	* bsescripthelper.[hc]: integrate with BseJanitor, use SFI
	serialization to pass procedure args via client message. removed
	comwire dispatcher cruft.

	* bsejanitor.[hcp]*: implemented client connection manager object,
	based on the old script-control object.

	* bseprocedure.[hc]:
	* mkcproc.pl:
	* *.proc: got rid of DATE argument to procedures, support multiple
	authors.

Tue Dec 17 08:27:20 2002  Tim Janik  <timj gtk org>

	* gslfilehash.c: locking fixes.

	* gslopmaster.c: handle wakeup pipe from gsl_engine_init().

	* gslengine.c: create a pipe to wakeup the master thread
	in gsl_engine_init(), since the threading layer doesn't
	provide a pipe anymore.

	* bsesnet.c: use bse_idle_remove().

	* bseserver.[hc]: use BSE's main loop context for GSources.

	* bse.h: added public prototypes.
	* bsemain.[hc]: cleaned up intialization routines.
	* *.c: changed callers.

	* bsemain.[hc]:
	(bse_init_async): start asyncronous BSE thread.
	(bse_init_glue_context): provide a glue context connected to
	the asyncronously running BSE thread.
	(bse_init_intern): function resembling the old bse_init(), left
	in place for internal utilities.

	* bseglobals.[hc]: provide bse_idle_remove() and attach idle
	handlers to BSE's main loop context.

	* bseglue.[hc]: completed glue layer table implementations, fixed
	signal handling.
	(bse_glue_context_create): create glue contexts together with a glue
	decoder and a main loop source.

	* bsescripthelper.[hc]:
	* bsescriptcontrol.[hc]: disabled code that has yet to be replaced.

Fri Dec 13 08:08:34 2002  Tim Janik  <timj gtk org>

	* gslcommon.[hc]: moved thread layer and memory block allocator from
	here into SFI.

	* *.[hc]: adapted callers accordingly.

Thu Dec 12 15:36:16 2002  Tim Janik  <timj gtk org>

	* remove gslglue.[hc], gslgluecodec.[hc] and gslgluesignal.c which
	are replaced by new SFI code.
	
	* gslcommon.[hc]: removed GslRing code, we have SfiRing now.
	* *.[hc]: changed callers.

	* remove unused gslconvert.[hc].
	
	* removed gslglib.[hc], gslglibhash.cc and gslglibhashtest.cc
	 which GSL doesn't support anymore.
	
Tue Dec 10 03:30:14 2002  Tim Janik  <timj gtk org>

	* bsecomwire.[hc]: removed these files, communication went into Sfi.

	* *.[hc]: ported BseComWire uses over to SfiComWire.

Mon Dec  9 07:15:40 2002  Tim Janik  <timj gtk org>

	* bsewaveosc.c (bse_wave_osc_set_property): changing waves is very
	expensive, so ignore resetting the same value.

	* gslloader-gslwave.c: support inlined data handles through a
	new keyword "binlink".
	* gslwave.header: added description for "binlink".

	* gsldatahandle.[hc]: added gsl_wave_format_bit_depth() and
	gsl_wave_format_byte_width() as public API, added
	gsl_wave_handle_new_zoffset() to refer to first-zero-byte offset.

	* gslfilehash.[hc]: added gsl_hfile_zoffset() to retrieve and
	cache offset of first zero byte in a file.

	* gsldatautils.[hc]: return -errno in case of failure from
	gsl_data_handle_dump() and gsl_data_handle_dump_wav().
	added gsl_data_handle_dump_wstore() which adds data handle
	to the binary appendix of a SfiWStore.

Sun Dec  8 05:46:32 2002  Tim Janik  <timj gtk org>

	* bsegconfig.[hc]: nuked object implementation, implemented
	global configuration based on BseGConfig record.

	* bseglobals.[hc]: config/gconfig cleanups.

	* bserecords.sfidl: added BseGConfig record.

	* bseserver.[hcp]*: added bse-preferences property, load
	rc-file, offer procedure to save rc-file.

Sat Dec  7 17:49:04 2002  Tim Janik  <timj gtk org>

        * gsldatacache.c (gsl_data_cache_from_dhandle): fix dcache loop
        iterations.

        * bseautodoc.c:
        * bsemidivoice.c:
        * bsesnet.c:
        * bsesongthread.c:
        * bsesource.c:
        * gslcommon.c:
        * gslcommon.h:
        * gsldatacache.c:
        * gslgluecodec.c:
        * gslmagic.c:
        * gslopschedule.c:
        * gsltests.c: fix arg ordering in gsl/sfi_ring_walk().

Wed Dec  4 16:32:07 2002  Tim Janik  <timj gtk org>

        * bse/gslloader.[hc]: add gsl_wave_file_info_loader().

        * bse/bseautodoc.c: Fixed @revision placement at bottom (alper).

Tue Dec  3 02:44:39 2002  Tim Janik  <timj gtk org>

	* bseautodoc.c: added --seealso argument.

Tue Dec  3 01:33:31 2002  Tim Janik  <timj gtk org>

	* bseautodoc.c: fixes from alper for document font.

Tue Dec  3 01:02:58 2002  Tim Janik  <timj gtk org>

	* bsetype.c: fixed pspec default hints.

Sun Dec  1 22:44:42 2002  Stefan Westerfeld  <stefan space twc de>

	* bseprocidl.cc: support "Neutral" for choices.

	* bseutils.c: changed resizing of note sequences to to use the
	sfidl generated code - default to SFI_KAMMER_NOTE instead of
	SFI_NOTE_VOID

Sun Dec  1 05:10:12 2002  Tim Janik  <timj gtk org>

	* bseobject.c (bse_object_do_set_property): 
	* bsesuper.c (bse_super_set_property): use g_strdup_*strip* if needed.

	* bseutils.[hc]: removed bse_strdup_stripped().

Sun Dec  1 02:42:49 2002  Stefan Westerfeld  <stefan space twc de>

	* bseprocidl.cc: capitalized keywords Info, Const, Out, In.

	* Makefile.am: generate public API to bse.sfidl with bseprocidl.

Sat Nov 30 22:42:33 2002  Tim Janik  <timj gtk org>

	* bse*.[cp]: fix pspec_note constructors.
	
	* bseconstant.c: fix void note properties.

Sun Dec  1 00:08:00 2002  Stefan Westerfeld  <stefan space twc de>

	* Makefile.am: match new sfidl options

	* bseitem.proc: property is an sfidl keyword, renamed parameter

Sun Nov 24 22:52:04 2002  Tim Janik  <timj gtk org>

	* bsewave.c (bse_wave_dispose): NULLify freed values.
	* bsewave.proc: add wave chunk accessors.

	* bseautodoc.c: minor line spacing tweak fro alper.

Sun Nov 24 02:26:14 2002  Tim Janik  <timj gtk org>

	* Makefile.am: reorder sources to speed up parallel compilation.

	* bseautodoc.c: identify and dump records and sequences as
	boxed type names. fix up missing pointer indirection for sequences
	in dumped types.

	* bsecontainer.c: patched up serialization keywords with compat code.
	bseproject.c: same here, serialization fixes.

	* bseobject.c: minor serialization fix.

	* bseparasite.c: add compat code for module positions.

	* bseprocedure.c: storage API adaptions.

	* bserecords.sfidl: fixup types and docs for icons and BseNoteSequence.

	* bsestorage.[hc]: fixup serialization by using SFI. got rid of old
	unused code.

	* bsewave.c: set/get property fixes.

Wed Nov 13 23:28:28 2002  Stefan Westerfeld  <stefan space twc de>

	* bseprocidl.cc: remove BSE_ from enum value names, to avoid
	double namespacing

Wed Nov 13 20:14:06 2002  Stefan Westerfeld  <stefan space twc de>

	* bsecategories.c: don't put null pointers as icons, as copying
	them does not work

Tue Nov  5 08:44:40 2002  Tim Janik  <timj gtk org>

	* bsescriptcontrol.c (bse_script_control_class_init): 
	* bsedatapocket.c (bse_data_pocket_class_init): 
	* bsewaveosc.c (bse_wave_osc_class_init): 
	* bsepart.c (bse_part_class_init): 
	urg, move TYPE_UINT signal arguments to TYPE_INT, since
	UINTs can't be serialized. hope that this doesn't introduce
	subtle breakage.

Tue Nov  5 05:34:53 2002  Tim Janik  <timj gtk org>

	* bseautodoc.c: patch from Alper Ersoy for structure markup.

Mon Nov  4 11:36:16 2002  Tim Janik  <timj gtk org>

	* bserecords.sfidl: provide BLURBs and HELPs for some records.

	* bseautodoc.c (show_structdoc): add ability to dump structure
	documentation.

	* bseautodoc.c (show_procdoc): fix C argument names so they contain
	'_' not '-'. change order of scheme and C prototypes.

	* bseautodoc.c: applied patch from alper ersoy which uses new
	reference documentation texi macros.

Mon Nov  4 07:24:12 2002  Tim Janik  <timj gtk org>

	* bsetrack.c (bse_track_finalize): remove the aggregate midi receiver
	in finalize, not dispose.

	* bsecontainer.c (bse_container_remove_item): allow removal of items
	during finalization phase by explicitely catching ref_count==0.

	* bsesnet.c (bse_snet_release_children): only remove non-aggregate
	children.

	* bseglue.c (bglue_proxy_notify): don't export
	::notify(SfiProxy,GParamSpec*), but
	::property_notify(SfiProxy,const gchar*) as GObject
	property notification signal.
	(bglue_describe_iface): don't export iface signals.

	* bseitem.[hc]: s/ITEM_STORAGE_IGNORE/ITEM_AGGREGATE/, changed
	related files.

Mon Nov  4 00:00:20 2002  Tim Janik  <timj gtk org>

	* bseobject.c (bse_object_do_get_icon): return a static BseIcon, and
	not freed data (bse_categories_from_type() fix).

	* bsecategories.c:
	(bse_categories_from_type): 
	(categories_match): properly copy category fields, so static data
	doesn't get freed with the returned category sequence.

	* bsesource.c: introduce x/y position properties.

Sun Nov  3 21:00:25 2002  Tim Janik  <timj gtk org>

	* bsecontainer.c (container_release_children): provide default impl,
	so chaining from derived classes works.

Sun Nov  3 19:08:25 2002  Tim Janik  <timj gtk org>

	* bsesource.c: preserve vital data across dispose() and
	free in finalize().

	* bseitem.c (bse_item_set_parent): dispose items that are
	unparented.

	* bsemidisynth.c: remove internal children in finalize(), not
	dispose().

	* bseproject.c: remove children in release_children().

	* bsesong.c: remove children in release_children() and internal
	children in finalize().

	* bsesuper.c (bse_super_finalize): only remove from global super list
	upon finalize(), not dispose().

	* bsecontainer.c (bse_container_dispose): invoke release_children() if
	no use_count is being held on the container.

Sun Nov  3 07:03:42 2002  Tim Janik  <timj gtk org>

	* bseglue.c (bglue_proxy_notify): 
	* bseglue.c (fetch_proxy): connect normal signals !RUN_AFTER and proxy
	release notification as !RUN_AFTER, so the signal has a chance of being
	delivered to user code before the glue layer is informed about proxy
	releases.
	release notification still doesn't work properly, regardless.

	* bserecords.sfidl:
	* bsecategories.c: assign unique IDs to categories.

	* bseobject.c (bse_object_from_id): use SfiUStore instead of a hash
	table for object id maintenance.

	* bseobject.[hc]: remove ::destroy signal and method.
	emit ::release upon ->dispose().

	* bseitem.[hcp]*: don't emit ::set_parent() anymore. auto-remove items
	from containers upon dispose. run ->dispose() if an item is orphaned,
	i.e. lost its parent and has no use_count.

	* bsecontainer.c: remove destroy() method.

	* *.c: const fixes, turned destroy() implementations into dispose()
	or finalize().

Sat Nov  2 00:06:12 2002  Tim Janik  <timj gtk org>

	* bse.h: remove all include files, we'll only export a handfull
	of public functions now.

	* *.c, *.cc: fixup includes.

	* bseglue.c (bglue_proxy_list_properties): fix off-by-one array
	access.

	* bseserver.c: disable BSE internal glue context.

Fri Nov  1 17:51:26 2002  Tim Janik  <timj gtk org>

	* bseglue.c: fix sginal -> glue event delivery.

Sun Nov  3 00:01:20 2002  Stefan Westerfeld  <stefan space twc de>

	* Makefile.am: switch to sfidl long options

Sat Nov  2 22:00:52 2002  Stefan Westerfeld  <stefan space twc de>

	* bsetype.c: sfidl_pspec_(Rec|Seq) -> sfidl_pspec_Boxed(Rec|Seq)

Sat Nov  2 00:05:20 2002  Stefan Westerfeld  <stefan space twc de>

	* bsecategories.proc: need to have a boxed type for returning
	BseCategorySeq

	* bseprocidl.cc: generate code to define choices, class forward
	declarations and class help strings

Thu Oct 31 18:27:52 2002  Stefan Westerfeld  <stefan space twc de>

	* bserecords.sfidl: added a documentation example.

Wed Oct 30 00:49:04 2002  Tim Janik  <timj gtk org>

	* bseautodoc.c: apply patch from Alper Ersoy to change generated
	texi format.

Tue Oct 29 00:23:16 2002  Tim Janik  <timj gtk org>

	* bseautodoc.c: new program, generate texinfo procedure documentations.

Mon Oct 28 04:38:42 2002  Tim Janik  <timj gtk org>

	* bseglue.c (fetch_proxy): export proxy references if a proxy
	has a parent or a use count.

	* bseserver.c (bse_server_init): add an internal static use count
	on the server singleton.

Sun Oct 27 23:12:03 2002  Stefan Westerfeld <stefan space twc de>

	* bseprocidl.cc: use Bse namespace, MAXINT/MININT support

	* bserecords.sfidl: removed typedef to match new sfidl syntax

	* bsetype.c: sfi_pspec_* -> sfidl_pspec_*

Sun Oct 27 16:52:33 2002  Tim Janik  <timj gtk org>

	* *.c: fix _log_scale() pspec usage.

	* bsecategories.proc: introduce bse-categories-match().

	* bseglue.[hc]: adapt to new glue layer code in SFI.

	* bseobject.[hc]:
	* bseparam.[hc]: remove old log-scale code.

	* bseprocedure.proc: introduce bse-type-blurb().

	* bsescripthelper.c:
	* bseserver.c:
	* bseprocidl.cc: fix glue context creation.

	* bsesource.proc: introduce BseSource+has-outputs().

Thu Oct 24 18:02:41 2002  Tim Janik  <timj gtk org>

	* moved gbsearcharray.h into SFI.

	* fix gbsearcharray.h usages.

Sun Oct 27 00:35:01 2002  Stefan Westerfeld <stefan space twc de>

	* bseprocidl.cc: use "signal" rather than "signal void" in the
	sfidl file, as we only have signals without return value.

Sat Oct 26 23:09:34 2002  Stefan Westerfeld <stefan space twc de>

	* Makefile.am bseprocidl.cc: new program that builds an sfidl file
	containing all classes/procedures found by introspection
	
	* bsecategories.proc bsecontainer.proc bseitem.proc bsepart.proc
	bseproject.proc bseserver.proc: put return values into the appropriate
	boxed types (i.e. BSE_TYPE_PART_NOTE_SEQ) and use boxed param specs.
	This allows bseprocidl to figure out the type correctly.

Sun Oct  6 06:32:19 2002  Tim Janik  <timj gtk org>

	* bsecategories.[hc]:
	* bsecategories.proc: switch this over to SFIDL generated structures
	and implement procedures to query categories.

	* bseinstrument.h[hc]: don't compile this anymore.

Sat Oct  5 02:34:19 2002  Tim Janik  <timj gtk org>

	* bseeditablesample.proc: use SfiFBlock for return values from
	collect-stats() and read-samples().

	* bseprocedure.proc (bse-note-to-freq): 
	* bseserver.proc (describe-note), (note-from-freq), (note-from-string),
	(construct-note): use generated BseNoteDescription instead of
	BswNoteDescription.

	* bsecontainer.proc (list-items):
	* bsecontainer.[hc] (bse_container_list_items):
	* bseproject.proc (match-items-by-uname): 
	* bseitem.[hc] (bse_item_gather_proxies), (bse_item_list_proxies):
	* bseitem.proc (list-proxies):
	* *.c (->list_proxies):
	use BseProxySeq instead of a proxy iter to list items.

	* bseproject.proc (list-uname-paths): 
	* bseproject.[hc] (bse_project_list_upaths): 
	use BseStringSeq instead of a string iter.
	
	* bsepart.[hc]:
	* bsepart.proc: use BsePartNote and BsePartNoteSeq instead
	of BswIterPartNote in the interfaces.

Fri Oct  4 09:35:24 2002  Tim Janik  <timj gtk org>

	* *.[hc]: removed a bunch of code that went into SFI.

	* bsecompat.h: provide short-term compatibility defines.

Wed Oct  2 06:50:39 2002  Tim Janik  <timj gtk org>

	* bseitem.proc (get-type): return the type as interface
	name rather than gulong.
	* bseproject.proc: same for list-uname-paths() and
	match-items-by-uname().

	* *.c: changed nearly all param_spec_*() conmstructors from
	GLib and Bse variants over to their Sfi counterparts.

Wed Sep 25 17:51:56 2002  Tim Janik  <timj gtk org>

	* bseprocedure.c (bse_procedure_init): ref and sink the procedures
	param specs.

Sun Sep 15 06:02:16 2002  Tim Janik  <timj gtk org>

	* bsebindata.h:
	* bsecontainer.h:
	* bseexports.h:
	* bseitem.h:
	* bsescriptcontrol.h:
	* bsesuper.h: fix extern "C" and constants in structures to fix
	compilation with C++ sources.

	* bseglue.[hc]:
	* gslgluecodec.[hc]:
	* gslglue.[hc]:
	together with Stefan Westerfeld, started out to revise the glue
	layer implementation.
	don't operate on GslGlueValue and GslGlueParam in place, but
	make them seperately allocated objects in their own respect.
	turn GslGlueSeq into a ref counted structure.
	implement deep-copy variants.
	implement constructors for the various data structures.
	implement simplisitic garbage colleciton boundary which frees
	all temporarily kept values returned from the glue layer.

	* *.c: fixed assorted code according to glue layer changes.

Thu Sep 12 01:57:36 2002  Tim Janik  <timj gtk org>

	* bsestandardosc.c: implement standard_osc_reset().

	* gsloscillator.[hc]: added gsl_osc_reset() for module resets.

	* bsebiquadfilter.c: fix reset function name.

	* bseamplifier.c: reorder GUI fields.

Sat Sep  7 16:00:47 2002  Tim Janik  <timj gtk org>

	* bseenums.[hc]: get rid of BSE_ERROR_USER_* values.

	* bseprocedure.[hc]: remove exec status signalling code.

	* bsescriptcontrol.[hcp]*: maintain script_name and proc_name
	fields. remove error_status. add ::progress signal.

	* bseserver.[hc]: remove ::exec-status signal and related code.
	add ::script-start and ::script-error signals and proper
	handling code.
	(bse_server_run_remote): fix ref count leakage on script controls.

	* bsescripthelper.[hc]: adapt to BseServer and
	BseScriptControl changes.

	* *.c, *.proc: remove procedure exec status skipping/blocking code.

Mon Sep  2 06:17:55 2002  Tim Janik  <timj gtk org>

	* bseitem.c (bse_item_store_property): fix missing newline in
	output.

Fri Aug 30 10:29:33 2002  Tim Janik  <timj gtk org>

	* gslmagic.[hc]: added gsl_magic_list_brute_match() to facilitate
	exhaustive matches.

	* gsltests.c: add ring sorting test.

	* gslcommon.[hc]: provide gsl_ring_split(), gsl_ring_sort() and
	gsl_ring_tail().

Fri Aug 30 03:18:09 2002  Tim Janik  <timj gtk org>

	* *.[hc]: update copyrights and license headers.

Fri Aug 23 13:39:59 2002  Tim Janik  <timj gtk org>

	* gslopschedule.c (update_suspension_state): 
	* gslopmaster.c: suspension update and reset() invokation fixes.
	whenever we change node->local_suspend or node->outputs_suspended,
	update node->needs_reset.
	* gsl-mplan.txt: keep a note about remaining suspension bugs.

	* gslwaveosc.c (gsl_wave_osc_process): auto-trigger oscillator
	if no sync input is present.
	(gsl_wave_osc_config): reset sync level if the new config caused
	a retrigger.
	(gsl_wave_osc_reset): new function to reset filter state and
	saved signal levels.

	* bsewaveosc.c: slight rename, implement wosc_reset() function
	to retrigger the oscillator.

	* bsetrack.[hc]: support user setting for number of voices.

Thu Aug 22 04:24:58 2002  Tim Janik  <timj gtk org>

	* bsesongthread.c: support multiple tracks per song.

	* gslopschedule.c (update_suspension_state): update
	suspension flag before recursing into cycles that may
	lead back to an object up in the stack trace.

Thu Aug 15 21:21:46 2002  Tim Janik  <timj gtk org>

	* Makefile.am: add mkcproc.pl to EXTRA_DIST.

	* bsestandardosc.c (bse_standard_osc_update_modules):
	pass on transaction.

Thu Aug  8 18:14:48 2002  Tim Janik  <timj gtk org>

	* gslmagic.c (magic_create): fix out-of-bound string access.

Wed Aug  7 11:20:59 2002  Tim Janik  <timj gtk org>

	* toyprof.h: flag conditional enum ToyprofBehaviour to be skipped by
	the glib-mkenums.

Tue Aug  6 18:48:13 2002  Tim Janik  <timj gtk org>

	* bsepart.h:
	* bseinfo.c:
	* bseconstvalues.h:
	* bseserver.proc:
	* bseutils.[hc]:
	* bswcommon.[hc]:
	* bseglobals.[hc]:
	* gslmath.[hc]: s/halftone/semitone/

	* bsemain.c: adjust dcache node size to 4000 so the node's data plus
	padding will normally fit into a page.

	* gsldatacache.c: wow, gross buggyness in caching logic detected. we
	badly miscalculated the current cache size and thus triggered lots of
	sensless cache sweeps. fixed updating of aged nodes in case of
	GSL_DATA_CACHE_PEEK, introduced AGE_EPSILON which prevents sensless
	aging when frequently accessing the same block, added low_persistency
	flag for dcaches that don't really need to cache data (figured through
	gsl_data_handle_needs_cache()). altered caching logic so we do a
	moderately good job at distributed node sweeping around the upper
	cache memory mark. fixed documentation.

	* gsldatahandle-mad.c: 
	* gsldatahandle-vorbis.c: 
	* gsldatahandle.[hc]: introduce recurse() method on data handles which
	has to be implemented for all data handles that use other data handles
	by invoking a user supplied callback on them. introduce ojob() method
	which can be implemented by data handles to support certain optimization
	jobs. remove coarse_seek() method, if this is really required, it can
	be implemented as an optimization job.

	* gsldatahandle.[hc]: introduce gsl_data_handle_needs_cache() which
	figures whether a data handle will actually benefit from caching (not
	true for data handles which don't do IO themselves, e.g. because they
	are using static memory, a dcache or other data handles).

	* gsldatahandle-mad.c: 
	* gsldatahandle-vorbis.c: 
	* gsldatahandle.c (wave_handle_ojob): return TRUE for the
	GSL_DATA_HANDLE_NEEDS_CACHE ojob query.

	* bseconstant.c (bse_constant_class_init): plug string leakage.

	* bsewaveosc.c (pcm_pos_access_free): plug leakage of position struct.

Sun Aug  4 21:01:56 2002  Tim Janik  <timj gtk org>

	* gslloader-mad.c (_gsl_init_loader_mad): flag this loader with
	GSL_LOADER_SKIP_PRECEEDING_NULLS to deal with broken mp3 files.

	* gslmagic.[hc]: implement gsl_magic_list_match_file_skip() which
	allowes for checking magics in files after an initial offset.

	* gslloader.[hc]: support GSL_LOADER_SKIP_PRECEEDING_NULLS loader flag
	to skip preceeding 0s before attempting magic matches.
	this is implemented as a worst case fallback mechanism to deal with
	some broken mp3 files.

Sun Aug  4 11:56:27 2002  Tim Janik  <timj gtk org>

	* gslwavechunk.c: add fix from stefan so tail and head blocks are
	actually read out.

	* gslwavechunk.[hc] (struct _GslWaveChunk): rename ->start and ->end
	fields to ->first and ->last since they both point to the first/last
	position meant to be read out within that block (rather than the start
	and upper boundary of the block).

Sat Aug  3 17:16:13 2002  Tim Janik  <timj gtk org>

	* bsepcmdevice-oss.c (bse_pcm_device_oss_open):
	* bsemididevice-oss.c (bse_midi_device_oss_open): translate errno
	via bse_error_from_errno().

	* bseserver.[hc]: fallback to null midi device if the real
	midi device can't be opened.

	* gsl-mplan.txt: fix typos.

	* gsldatahandle-vorbis.c: adapt to changes in ov_read_float() in
	libvrobis v1.0.0.

Fri Aug  2 18:21:19 2002  Tim Janik  <timj gtk org>

	* bseitem.[hc]: add per-class list_proxies() method to retrieve a list
	of possible proxies for object properties.
	add list_proxies() function and procedure.
	bse_item_gather_proxies(): new convenience function to add predicate
	filtered proxies to an iterator.

	* bsemidisynth.c: support list_proxies() for synth net property.

	* bseproject.[hc]: provide bse_project_get_wave_repo().

	* bsesubsynth.[hc]: lock synth net property during playback, catch
	infinite recursion during context creation. support list_proxies() for
	synth net property.

	* bsetrack.[hc]: support list_proxies() for synth net and part properties.

	* bsewaveosc.c: support list_proxies() for wave property.

Tue Jul 30 01:20:48 2002  Tim Janik  <timj gtk org>

	* bsewaveosc.[hcp]*: support percentual seekage.

	* gslwavechunk.c: fix uint/GslLong bug and non-loop initialization for
	enter mem block.
	
	* gsl*.[hc]: miscellanous const fixes.

	* gslloader-oggvorbis.c (_gsl_init_loader_oggvorbis): add MIME
	types application/x-ogg and audio/x-vorbis.

Sat Jul 27 18:17:49 2002  Tim Janik  <timj gtk org>

	* Makefile.am: distcheck-fixing: include -I., prefix
	deps with srcdir, fix file arguments wrg srcdir
	prefixing.

	* mktypes.pl:
	* bsetype.h: fixup builtin type macros.

	* gslmakefile.inc: add missing files.

Sat Jul 27 12:48:07 2002  Tim Janik  <timj gtk org>

	* bswcommon.[hc]: support callback notification from
	bsw_register_scripts() and bsw_register_plugins().

Sat Jul 27 06:26:10 2002  Tim Janik  <timj gtk org>

	* gsldatahandle.[hc]: redesigned some basic things.
	data handles correspond to samples now, they carry n_values,
	n_channels and bit_depth, provided accessors for those and
	the data handle name. these values are only valid for opened
	data handles now though, implementations have to fill in a
	setup structure upon openening to provide those values.
	(gsl_data_handle_new_mem): new data handle for constant data
	since gsl_data_handle_new_insert() doesn't allow a NULL src_handle
	anymore.

	* gslwavechunk.[hc]: life time redesign. wave chunks are ref counted
	now and have to be explicitely opened.

	* gslfilehash.c: remove debugging code.

	* gslloader.c: adapt to new wave chunk API.

	* bseeditablesample.[hcp]*: adaptions accroding to the new wave chunk
	API. users have to explicitely open and editable sample now.

	* gslloader-gslwave.c:
	* gsldatautils.c:
	* gsldatahandle-vorbis.c:
	* gsldatahandle-mad.c:
	* gsldatacache.c:
	* bsestorage.[hc]: adaptions to the new data handle API.

	* bsewave.[hc]: adaptions to the new data handle and wave chunk API.
	callers must explicitely announce interest in the wave chunk index now.

	* bsewaveosc.[hc]: use new BseWave API, cleanup and fix object
	reference handling. use new GslWaveChunk API.
	(wmod_process): pass NULL for non-connected input buffers.

	* gslwaveosc*.[hc]: fix read out of constant default frequency,
	frequency signal and modulation signal updates and the frequency
	argument to gsl_wave_osc_retrigger() (was expected as signal frequency).

	* gslwchunk.c: test case fixup according to new APIs.
	
	* some ChangeLog cleanups.

Thu Jul 25 01:12:51 2002  Tim Janik  <timj gtk org>

	* gslfilehash.[hc]: new files, implementing GslHFile, an MT-safe
	pread() wrapper FILE type which shares unix file descriptors (to
	reduce usage thereof), and GslRFile, piggyback implementation
	on top of GslHFile that supports the more common read()+seek() API.

	* gsldatahandle.[hc]: use GslHFile for raw wave handles.
	nuke data handle caching code. remove mtime from data handles.
	make gsl_data_handle_open() and associated method return GslErrorType
	instead of errno.

	* gsldatahandle-vorbis.c: translate ogg/vorbis error codes into
	GSL error codes. use GslRFile instead of unix FILE*.

	* gsldatahandle-mad.c: use GslHFile instead of unix file descriptors.

	* gslcommon.[hc]: provide gsl_error_from_errno(), get rid of
	gsl_check_file_mtime(). sync gsl_strerror() with new error codes.

	* *.c: adaptions due to gsl_wave_handle_new() changes.

	* bseenums.[hc]: sync errors with new GSL errors.
	use gsl_error_from_errno() from bse_error_from_errno().

	* gslmultiwave.[hc]: remove unused code.

	* gsldatahandle.[hc]: instead of gsl_data_handle_new_translate() with
	mildly inconvenient parameters, offer gsl_data_handle_new_crop() and
	gsl_data_handle_new_cut() with intuitive arguments.

Tue Jul 23 07:47:55 2002  Tim Janik  <timj gtk org>

	* bse.h:
	* Makefile.am: remove (currently) unused code from build setup:
	BseInstrument, BseEffect*, BsePattern*.

	* bseconstvalues.[hc]: new files, taking over many constants and note
	related macro definitions from bseglobals.[hc].

	* bsemain.c: initialize GSL with proper kammer frequency/note.

	* bseutils.[hc]: removed duplicated constants, added
	bse_note_fine_tune_from_note_freq ().

	* bswcommon.[hc] bswprivate.h: change BswPartNote to have a note
	and a fine_tune field instead of frequency.

	* bsetype.h:
	* bseparam.[hc]: don't introduce BSE_TYPE_NOTE as fundamental
	type, having a pspec variant is sufficient. added convnience
	function to easily create pspecs for notes and frequencies.

	* bsesongthread.c:
	* bsepart.[hcp]*: ported this over from using frequencies to
	using notes.

	* bsesong.[hcp]*: remove dependancies on unused code.

	* bsemath.h: added more accurate constants for 2^(1/12),
	ln(2^(1/12)) and ln(2^(1/1200)), minor cleanups.

	* bseglobals.[hc]: removed math constants. provide a constant,
	high-accuracy semitone factor table and fine tune factor table
	at compile time. got rid of 16bit-fixed semitone factor table.
	removed lots of MIN/MAX defines, note, fine tune and frequency
	macros.

	* bseglue.c: BseNote fixes.

	* bseconstant.[hc]: remove unused sequencer methods.

	* *.c: constant fixes/adaptions, use new param spec constructors.

	* bseinfo.c: added lots of (inactive) debugging code to check
	note/frequency/table validity.

Sun Jul 21 04:39:59 2002  Tim Janik  <timj gtk org>

	* bseglobals.[hc]: provide saner (and clearer) GSource priorities
	and bse_idle_*() helper functions to install async handlers at
	the various priority levels.

	* *.c: use bse_idle_* functions to queue async handlers.

	* bsepart.[hcp]*: provide notes with event ids, select notes by
	ids and not by range.
	
Mon Jul 15 05:07:37 2002  Tim Janik  <timj gtk org>

	* bsecontextmerger.[hc]: new internal module which merges signal
	outputs of multiple module contexts.

	* bsemidimodule.[hc]:
	* bsemidisynthinput.[hc]: remove old midi voice implementation modules.

	* bsetrack.[hc]: first start at implementing tracks for songs, which
	arrange song parts.

	* bsemidivoice.[hc]: internal wrapper objects for midi receiver modules.

	* bsecontainer.[hc]: added class method to list children for context
	creation propagation (overriden by BseSNet context branch
	implementation).

	* bseenums.[hc]: remove MIDI related enums.

	* bseglobals.[hc]:
	* gslcommon.[hc] (gsl_init):
	fix MIDI note number for kammer note.

	* bseglue.[hc]: support boxed->GslGlueSequence conversions. fix up
	record and sequence usage.

	* *midi*.[hc]: remove old BseMidiDecoder code.

	* bsemidievent.[hc]: remove old MIDI channel/note/decoder implementations.
	use float values for MIDI event fields.
	add event constructors, remove global MIDI notifier hook.
	add MIDI_SIGNAL enum and default values for the various control
	signals supported per midi channel.

	* bsemidiicontroller.[hc]: adaptions to work with the new MIDI_SIGNAL
	enum and MidiReceiver.

	* bsemidinotifier.[hc]: adaptions to work with the new MidiREceiver.

	* bsemidireceiver.[hc]: actually deploy the new midi receiver
	implementation. added event processing implementation, support float
	values for midi event fields.
	(bse_midi_receiver_push_data): translate system time to engine ticks
	here. process newly enqueued events (this might need to change).
	add API to push and process event structures.
	implement midi control value module.
	reimplement midi voice and switch modules, make use of the engine's
	new virtual module implementation.
	implement midi notifier hooks per midi receiver.
	support continuous midi controls (convert LSB and MSB part to float).
	support "all sound off" and "all notes off" control triggers, abuse
	"local control switch" for debugging output of active voices.
	support sustain pedal for active voices.
	move BseMidiEvent structure back into bsemidievent.[hc].

	* bsemidisynth.[hc]: implement multiple midi voices via branch
	contexts. got rid of the maximum_voices=4 limitation. this also
	requires midi voice synth networks to properly put out the
	"done" signal to figure reusable voices. get rid of "clicks"
	at note boundaries when reusing voices by means of the engine's
	reset() method for modules.

	* bseobject.[hc] (bse_object_debug_name): debugging convenience
	function which describes (partly invalid) object references.

	* bsepart.[hcp]*: support selection rectangle.

	* bseprocedure.proc: add convenience procedure to convert notes into
	frequencies.

	* bseserver.[hcp]*: remove MidiDecoder code, properly support
	BseMidiReceiver.

	* bsesnet.[hc]: added bse_snet_context_clone_branch() and
	bse_snet_context_is_branch() to support context branches for
	selected modules within a synthesis network.

	* bsesong.[hc]: implement voices via MidiReceiver modules
	and context branches.
	* bsesong.proc: add procs for track addition/removal.

	* bsesongthread.[hc]: implement playback of part notes via
	midi note on/off events. fetch part via BseTracks.

	* bsesource.[hc]: added convenience macro bse_source_must_set_input()
	fo rinternal module connections.
	support setting of context data for sources with 0 input and output
	channels. to be used by BseSNet solely (for context branches).
	bse_source_collect_inputs_recursive() traversal function to construct
	a list of modules that form inputs of a given modules.

	* bsesubsynth.[hc]: pass on MidiReceiver per context to custom synth
	networks.

	* bswcommon.[hc]: support iterator->GslGlueSequence conversion.

	* gslcommon.[hc]: 
	add flow job debug key.
	(gsl_time_system): retrieve system time in micro seconds.
	(gsl_tick_stamp_last): get the last tick stamp update together with
	the system time of that update.

	* gslgluecodec.c:
	* gslgluesignal.c:
	* gslglue.[hc]: don't fix the element type of sequences.
	ref-count records (should do the same at least for sequences).
	use sequences for compound signal/procedure arguments.
	support field names in record implementation (should use quarks
	for efficiency).

	* gslopnode.h:
	* gslengine.[hc]:
	* gslopmaster.[hc]:
	* gslopschedule.[hc]:
	* gsloputils.[hc]: change GSL Engine license to GPL.

	* gslengine.[hc]: more documentation. make/flag thread-safe functions.
	make garbage collection explicit.
	(gsl_module_new_virtual): really implement cirtual modules.
	(gsl_engine_dispatch): garbag collect here.
	(gsl_engine_tick_stamp_from_systime): translate system time to engine
	tick stamps, based on the last tick stamp update.

	* gslopnode.h:
	* gslopmaster.[hc]: update output stream connected flags during within
	scheduler.
	clenup pending flow jobs when discarding engine modules.
	reimplement resumption implementation.
	fixup flow job implementation.
	implement stream virtualization for virtual modules.
	implement module suspension.

	* gslopnode.h:
	* gslopschedule.[hc]:
	support scheduling virtual modules and ouput stream connected flag
	updates.

	* gsloputil.[hc]: implement proper flow job and garbage collection.

	* gsl-mplan.txt: document virtual modules.

Wed Jul  3 05:34:10 2002  Tim Janik  <timj gtk org>

	* bsemidireceiver.[hc]: new MIDI event handling core which creates
	the required engine modules on demand (not currently deployed).

	* bsemain.[hc]: delay plugin initialization and initialize MIDI core.

	* bsemididevice-oss.c: pipe event data into the new midi receiver.

	* bsemididevice.[hc]: add BseMidiReceiver property.

	* bsemidievent.[hc]: rename, this code is scheduled for removal once
	the new MIDI core is deployed.

	* bseproject.c: create synth nets together with a default MIDI
	receiver.

	* bseserver.[hc]: add API to manage default MIDI receiver.

	* bsesnet.[hc]: add API to maintain an associated MIDI receiver
	per context.

	* bsesubsynth.c: create contexts on the target snet with the
	MIDI receiver and midi_channel from the current context of
	the sub synth.

	* gsl-mplan.txt: describe reset(), describe suspension,
	fix consumer node definition, TODO cleanups.

	* gslcommon.[hc]: add gsl_ring_insert_sorted().

	* gslopmaster.[hc]:
	* gslopschedule.[hc]:
	* gsloputil.[hc]:
	* gslengine.[hc]: implement first stab at virtual modules (not
	yet completed). complete suspension and resume job implementations.

Wed Jun 19 03:47:45 2002  Tim Janik  <timj gtk org>

	* incorporated fixes/changes suggested by stefan and
	Hans Meine <hans_meine gmx net>.

	* gsldatahandle-mad.c (create_seek_table): fix // comments.

	* gslengine.h: 
	* gslopmaster.c: sigh, remove const integer fields from structures,
	this is simply not C++ compatible.

	* gslloader.[hc]: make GslWaveFileInfo a ref-counted structure.

Thu Jun 13 07:28:34 2002  Tim Janik  <timj gtk org>

	* bsemidinotifier.[hcp]*: new object, emitting notification of incomming
	MIDI events.

	* bsescriptcontrol.[hcp]*: new object, proxying running scripts and
	allowing for user side control of scripts.

	* *.c: more i/o channel name fixups.

	* bsebindata.c: code cleanups.

	* bsecategories.c: check type name syntax.

	* bsecomwire.[hc]: removed temporary hacks, slight fixup to
	random request id generation.

	* bsecontainer.proc: added lookup procedure to find a named child
	of a container.

	* *.proc: const cleanups.

	* bseenums.[hc]: added user error enum values.

	* bseitem.proc: added is_a check procedure.

	* bsemidimodule.c:
	* bsemididevice-oss.c: changes due to new timestamped and thread-safe
	MIDI decoder API.

	* bsemidievent.[hc]: midi decoder API extensions to provide
	time stamped MIDI events. explicitely marked mutex-affected
	functions and implemented thread-safety measures.

	* bseobject.[hc] (bse_object_do_dispose): set the
	BSE_OBJECT_FLAG_DISPOSED flag on objects, since we don't support
	resurrection in general.
	(bse_object_class_add_dsignal): allow addition of detailed signals.
	(bse_object_from_id): don't hand out disposed objects.

	* bseparasite.c: fixed string-escaping bug.

	* bsepart.[hc]: for now, limit the maximum tick count to 0x7fffffff,
	which is a valid signed integer.

	* bsescripthelper.[hc]: properly support the GslGlue layer and
	BseScriptControl.

	* bseserver.[hcp]*: support container usage of the server.
	moved script handling into bsescriptcontrol.c.
	implment procedure to retrieve a MIDI notifier obejct.

	* bsesongthread.c: silence debugging output.

	* bsesource.proc: allow setting a module's input by name.
	added more getters for channels.

	* bsestorage.c: fix string escaping bug.

	* bswcommon.c: added handler to convert a BswNoteDescription
	into a GslGlueRecord.

Wed Jun 12 06:31:34 2002  Tim Janik  <timj gtk org>

	* GSL Glue layer introduction. the code is mature enough for
	our scheme bindings, but still evolving.

	* gslglue.[hc]: new files implementing the GslGlue layer.
	the GslGlue layer is a presumably simple API abstraction
	which allowes acces to foreign object systems with notification
	signals, object properties and object procedures.

	* gslgluecodec.[hc]: serialization/deserialization layer
	which allowes GslGlue to be used from remote processes
	transparently.
	
	* gslgluesignal.c: implementation of signal notification.

	* bseglue.[hc]: new file, imlpementing the GslGlueVTable backend
	for BSE.

Mon May 27 16:45:48 2002  Tim Janik  <timj gtk org>

	* glib-extra.[hc]: remove the buggy and old g_strdup_quoted() function.
	changed callers to use g_strescape (string, NULL) instead.

	* bsequery.c (show_procdoc): fallback to procedure blurb if there's
	no help available.

	* mkcproc.pl: support procedure BLURBs.

	* gslcommon.[hc]: added function to return main thread handle.

	* gsl*.[hc]: nuked GslPollFD, use GPollFD instead.

Mon May 27 08:34:28 2002  Tim Janik  <timj gtk org>

	* bseprocedure.c (call_proc): provide the procedure execution status
	from the procedure's BseErrorType output if any.

	* bseprocedure.[hc]: allow NULL values for
	bse_procedure_marshal_retval() and bse_procedure_unmarshal_retval().

	* bseserver.[hcp]*: added ::user-message signal with wrapper function
	bse_server_user_message(). added bse_server_run_remote() to start
	a script interpreter. added bse_server_queue_kill_wire() to kill the
	connection to a currently running child process. added interpreter
	wire dispatch source to handle remote connections from the main loop.
	renamed script-status to exec-status.

	* bsestorage.[hc]: fix precision in float/double value storage.
	fix validation of storage values to support G_PARAM_LAX_VALIDATION.

	* bseutils.[hc]: provide documentation for bse_search_path_*().

	* bswcommon.h[hc]: added bsw_register_scripts().
	moved bsw_type_name_to_sname() into this place.

	* bseplugin.[hc] (bse_plugin_dir_list_files): simply use
	bse_search_path_list_files() to find plugin libraries.

	* bseparam.c (param_note_validate): fix validation code to revert
	to BSE_NOTE_VOID.

	* bsemain.c (bse_init): record the current directory for spawning
	child processes.

	* bsemagictest.c (main): use bsw_register_plugins() to load plugins.

	* bsecategories.c (category_strip_toplevels): added /Scripts/ toplevel
	category.

	* bsescripthelper.[hc]: implementation of script registration (currently
	limited to scheme) and wrapper stubs to invoke script functions as
	BseProcedure.

	* bsecomwire.[hc]: implementation of communication stubs to spawn a
	child and talk with it through pipes.
	
	* bseprocedure.proc: implement utility procedures, mostly for scripts.

	* bsehelloworld.proc: remove bse-progressor a left-over from test-cases
	of an old procedure concept.

	* bsestorage.c (bse_storage_parse_param_value): fix negating unsigned
	ints bug in FLOAT or DOUBLE parsing.

Wed May 22 07:49:50 2002  Tim Janik  <timj gtk org>

	* bsequery.c: use bsw_register_plugins() to load plugins and convert
	procedure names to scheme names for --procdoc.

	* bseplugin.[hc]: fix const for bse_plugin_check_load().

	* bse.h: added missing files.

	* bseprocedure.[hc]: added bse_procedure_eval() to call procedures from
	strings, and bse_procedure_marshal_retval() and it's counterpart
	bse_procedure_unmarshal_retval() to store/retrieve procedure call returns
	in/from strings.

	* bsestorage.c (bse_storage_parse_param_value): allow pspec to be NULL.

	* bswcommon.c (bsw_proxy_get_type): register value transform functions
	for BswProxy <-> BseObject. added bsw_register_plugins() to reduce
	duplication of this code. added function that should go into glib:
	g_type_name_to_cname(), g_type_name_to_sname(), g_type_name_to_cupper(),
	g_type_name_to_type_macro().

Tue May 21 08:13:51 2002  Tim Janik  <timj gtk org>

	* final object reference cleanup. get rid of ulocs, allow freeform
	name for objects with the exception of ":" and uniqueness within
	children of a container. BseObject just has an ::uname property
	for this purpose now, and no ::name or ::uloc properties anymore.

	* bseobject.[hc]: ::uloc/::name/::uname cleanup and changes. virtualize
	property storage.
	
	* bsecontainer.[hc]: store child references as strings with apropriate
	prefix (bse-container-restore).
	introduce retrieve_child() class function to resolve a (type,uname) pair
	into an existing or a new child.
	removed bse_container_item_from_handle(), bse_container_item_from_path()
	and bse_container_make_item_path(). introduced:
	bse_container_retrieve_child(): same purpose as the new class function.
	bse_container_resolve_upath(): resolve a colon seperated list of unames,
	by following the associated named objects (children).
	bse_container_make_upath(): construct an upath for a (non-immediate)
	child of a container.

	* bseitem.[hc]: remove bse_item_make_handle() and
	bse_item_make_uloc_path().

	* bsecontainer.[hc]:
	* bseitem.[hc]: remove unused PARENT_REF hack.

	* bseproject.[hc]:
	* bsewaverepo.[hc]: moved single-child-per-project hack into
	bseproject.c and cleaned this up some.

	* bsestorage.[hc]: disallow storing/parsing object values through
	bse_storage_put_param()/bse_storage_parse_param_value().
	introduced bse_storage_put_item_link() and bse_storage_parse_item_link()
	for this purpose, where the latter takes a function for deferred
	invocation to resolve object references after all have been created.
	added bse_storage_input_text() and bse_storage_warn_skipc().

	* bseitem.c: implement bse_item_store_property() and
	bse_item_restore_property() to implement object properties via
	BseStorage's _item_link functions.

	* bsedatapocket.c: handle object links according to the new storage API.

	* bse*.[hc], bse*.proc: various uname/upath/uloc fixes. changed
	BseStorage uses to store/retrieve object references via
	bse_storage_put_item_link() and bse_storage_parse_item_link().

Sun May 19 23:57:10 2002  Tim Janik  <timj gtk org>

	* bswcommon.[hc], bswprivate.h: reworked the iterators.
	we now have BswIter as an abstract base, which introduces generic
	iterator functions. there's no boxed iterator type, instead, each
	boxed type that needs an iterator has to be implemented from scratch
	(failry easy though). with that, we currently just need BswIterPartNote.

	* bse*.[hc]: fixes due to iterator changes.

Sat May 18 02:18:00 2002  Tim Janik  <timj gtk org>

	* bswcommon.[hc]: renamed BseSequence to BswNoteSequence and moved it
	into this file.

	* bsesequence.[hc]: removed these files.

	* bsestorage.[hc]: storage format fixups:
	- valid boolean values: #t, #f, #T, #F
	- store notes as strings
	- store flags as lists
	- store BswNoteSequence as list of notes

	* bseparasite.[hc]:
	* bsedatapocket.c: fix character storage, using #\c.

	* bsestorage.[hc]: added bse_storage_parse_eval() to parse
	procedures.

	* bsemain.c: make sure the server is alive.

Fri May 17 20:56:39 2002  Tim Janik  <timj gtk org>

	* gsl*.*: incorporate fixes from stefan.

Thu May 16 23:15:33 2002  Tim Janik  <timj gtk org>

	* bseserver.h: introduced ::script_status signal for GUI notification,
	(not that we could currently execute scripts ;) this is currently used
	to notify about procedure exit codes via BSE_SCRIPT_STATUS_PROC_END.

	* bseprocedure.[hc]: procedure API and implementation cleanups.
	
	* bsestorage.[hc]: some additions to store procedures.
	
	* *.c: misc fixes due to procedure changes.

Tue May 14 21:36:51 2002  Tim Janik  <timj gtk org>

	* bsesource.c: defer resolution of the input
	channel until resolve_dinput() and provide a better error
	message.

	* documentation fixes.

Tue May 14 04:17:08 2002  Tim Janik  <timj gtk org>

	* bsestandardosc.c (bse_standard_osc_class_init): channel order fixup.
	* bseamplifier.c (bse_amplifier_class_init): same here.

Mon May 13 23:27:47 2002  Tim Janik  <timj gtk org>

	* icons/biquad.c:
	* bsebiquadfilter.c: fix the biquad filter icon.

Mon May 13 23:06:49 2002  Tim Janik  <timj gtk org>

	* gslmakefile.inc: added $(PERL) invocation fix from stefan.

Mon May 13 22:07:36 2002  Tim Janik  <timj gtk org>

	* gslengine.[hc], gslopmaster.c: reserve space for
	process_defer() in GslClass and provide a reconnect()
	class function, serving as notifier when a module got
	reconnected. adapted related code portions.
	added sub sampling argument to gsl_engine_init().

	* bsestandardosc.c: boost up the range of modulatable
	octaves to 5.

	* gslfilter.[hc]: fix argument ordering of _eval()
	functions. added lowpass and highpass biquad types.

	* gslloader-wav.c: skip unknown sub-chunk rather than
	aborting.

	* gslsignal.[hc]: added implementation of
	GslFrequencyModulator which can prerender a frequency
	buffer out of various frequency modulation settings/inputs.

	* bsebiquadfilter.[hc]: new filter implementation, supporting
	biquad filter types and frequency and gain (modulation) input
	signals.

Sun May 12 20:48:34 2002  Tim Janik  <timj gtk org>

	* bsepcmoutput.c (bse_pcm_output_context_connect): connect to
	joint channels of the internal PCM output module.

	* bsepcmmodule.c: use joint input channels for the internal PCM
	output module.

Fri May 10 17:46:01 2002  Tim Janik  <timj gtk org>

	* gslsignal.h: provide gsl_approx_exp2() to approximate 2^x.
	gsl_signal_exp2() is supposed to be deprecated.
	gsl_approx_exp2() has slightly greater error within -0.5..0.5,
	but is faster and covers a wider range.

Fri May 10 17:41:11 2002  Tim Janik  <timj gtk org>

	* gslieee754.h: make gsl_ftoi() operate on floats and provide
	gsl_dtoi().

Wed May  8 00:34:09 2002  Tim Janik  <timj gtk org>

	* gslmath.h: accuracy fixes of constants, added more constants.

Mon May  6 13:01:28 2002  Tim Janik  <timj gtk org>

	* icons/instrument.xcf: use a speaker different from the
	PcmOutput icon for sub instruments.

Sun May  5 20:31:57 2002  Tim Janik  <timj gtk org>

	* bsewaveosc.[hcp]*: moved this here from ../plugins/ because
	it introduces procedures and otehr core components rely on it.

Sun May  5 08:07:39 2002  Tim Janik  <timj gtk org>

	* bsemidievent.[hc]: provide initialization values other than 0
	for pitch_bend, voume and balance on all MIDI channels.
	allocate the channel controls with the decoder.

Sun May  5 06:18:17 2002  Tim Janik  <timj gtk org>

	* bseamplifier.[hc], bseamplifier-aux.c: new amplifier module, BSE's
	VCA equivalent.

	* gslincluder.c: add facility to reject certain cases with GSL_INCLUDER_REJECT().

	* gslsignal.[hc]: add approximation functions for atan1(), and all
	four quadrants of a circle.

Wed Apr 24 08:13:26 2002  Tim Janik  <timj gtk org>

	* bsesource.c (bse_source_reset): before invoking the ->reset() method,
	wait_on_trans()-action completions unconidionally.

	* bseproject.c (bse_project_stop_playback): eeek, forgot to
	wait_on_trans() after dismissing contexts, before calling
	bse_source_reset().

	* gsldatahandle.[hc]: for consistency, change:
	s/gsl_data_handle_new_reversed/gsl_data_handle_new_reverse/.

	* gsldatahandle.c (gsl_data_handle_new_dcached): make use of
	the padding around a node's value block.

	* gslopmaster.[hc]:
	* gslengine.[hc], gslopnode.h:
	* gslopschedule.[hc]:
	* gsloputil.[hc]:
	major namespace cleanup.

Sun Apr 21 21:10:17 2002  Tim Janik  <timj gtk org>

	* bseglobals.[hc]: change fine-tune to match GSL fine-tune
	cent table.

	* bsesource.[hc]: complete joint channel implementation.

	* bsestandardosc.[hc]: add fine-tune property, allowing
	for slight detunes of multiple oscillators.

	* gslopnode.h:
	* gsloputil.c:
	* gslopschedule.c:
	* gslopmaster.[hc]:
	* gslengine.[hc]: complete joint channel implementation.
	NULL terminate the jstream gfloat**values; pointer array.

	* gsloscillator.h:
	* gsloscillator-aux.c: implement oscillator fine-tune.
	* gsloscillator.c: fix sync-update clicks.

	* gslsignal.[hc]: implement semitone cent fine-tune factor
	table, available as gsl_cent_factor().

Tue Apr 16 12:51:17 2002  Tim Janik  <timj gtk org>

	* bsesnooper.[hc]: move this module from plugins to BSE.

	* bsesubiport.[hc]: virtual sub network input ports.

	* bsesubiport.[hc]: virtual sub network output ports.

	* bsesubkeyboard.[hc]: convenience virual input for instruments.

	* bseinport.[hc], bseoutport.[hc], bsemidikeyboard.[hc]:
	scratch these, they are replaced by the new modules now.

	* bsesubinstrument.[hc]: convenience virual output for instruments.

	* bsecategories.[hc]: provide leaf index of category names.

	* bsesnet.[hc]: provide functions to test for registered port names
	and provide notification when port names got unregistered.

	* bsesource.c:
	(bse_source_set_context_imodule):
	(bse_source_set_context_omodule):
	(bse_source_set_context_module):
	be laxer about module IO checks, only demand the
	GSL module has at least as many input/output channels as the
	BseSource.

	* bsestandardsynths.c: use the new modules.

	* *.c: category fixes.

Mon Apr 15 14:43:18 2002  Tim Janik  <timj gtk org>

	* bsestandardosc.h (enum): get rid of BSE_STANDARD_OSC_NONE.

Mon Apr 15 09:43:15 2002  Tim Janik  <timj gtk org>

	* gslosctable.[hc]: create anti-aliased filter tables for the
	following wave forms: sine, triangle, saw, peak, moog saw and
	square/pulse variants.

	* gsloscillator.[hc], gsloscillator-aux.c: new oscillator code,
	supporting sync out and various inputs: freq, freq modulation,
	sync and pulse width modulation. the wave to use for oscillation
	is supplied via a GslOscTable.

	* gslincluder.c: helper file for sources that need to comile
	various forms of the same function.

	* gslcommon.[hc]: supply debug keys for the debug options.

	* gslieee754.h: mark gsl_ftoi() GNUC_CONST.

	* gslsignal.h: mark gsl_signal_exp2() GNUC_CONST.

	* gbsearcharray.h: minor naming fix.

	* bsemidiicontroller.[hc]: provide midi control inputs.

	* bseconstant.c: allow logarithmic scaling of the input values
	as frequencies.

	* bseenums.h: provide BseMidiControlType enum.

	* bsemain.c: use GSL supplied debug keys.

	* bsemidimodule.c: fix BSE_MIDI_SIGNAL_PITCH_BEND setting, so we put out
	values between -1 and +1 for this.

	* bsestandardosc.[hc]: use new GSL oscillator code for this (and
	support all its bells and whistles).

Fri Apr 12 04:45:04 2002  Tim Janik  <timj gtk org>

	* gsl-fftconf.sh (gsl_power2_fftc_big): fix a missing NULL check to skip
	first fft stage on input values.
	(gsl_power2_fftsr): invoke gsl_power2_fftc_big() with n_cvalues instead
	of n_values like we do for all other ffts as well.

Mon Apr  8 14:04:30 2002  Tim Janik  <timj gtk org>

	* gsldefs.h: define if_expect() and if_reject() if GSL_EXTENSIONS
	is defined, to make these usable in third-party code.

	* gslsignal.[hc]: added windowing functions to implement the
	windows: blackman, cos, bartlett, hamming, sinc and rectangle.

Fri Apr  5 07:42:16 2002  Tim Janik  <timj gtk org>

	* gsldatahandle-mad.c: disable file contents if !GSL_HAVE_LIBMAD.

	* gslloader-mad.c (_gsl_init_loader_mad): don't register the MAD MPEG
	loader if !GSL_HAVE_LIBMAD.

Fri Apr  5 06:45:29 2002  Tim Janik  <timj gtk org>

	* gsldatahandle-mad.[hc]: libmad based mp3 datahandle implementation.

	* gslloader-mad.c: gsldatahandle-mad.[hc] based mp3 loader.

	* gslcommon.[hc]: introduce new debugging mechanism and rework
	GSL messages.

	* gslop*.[hc], gslengine.[hc]: fixup old debugging code.

	* gsldatautils.[hc]: new function gsl_data_find_block().

	* bsesnet.[hc], bsesnet.proc:
	got rid of BSE_SNET_FLAG_FINAL. introduced BSE_SNET_FLAG_USER_SYNTH
	to indicate user editable synthesis networks.
	disallow procedures to modify a synthesis network unless
	BSE_SNET_FLAG_USER_SYNTH or BSE_DVL_EXT are set.

Thu Apr  4 23:02:54 2002  Tim Janik  <timj gtk org>

	* bseinport.[hc], bseoutport.[hc]:
	* bsesubsynth.[hc], bsemidikeyboard.[hc]: use the new BseSNet port API.

	* bsemain.c (bse_init): initialize random numbers properly.

	* bsemidievent.c: add debugging for note on/off events.

	* bsesnet.[hc]: rewrote port handling, changed API.
	provide bse_snet_create_context() to create contexts with an ID provided
	by the snet. added simple ID allocation algorithm to reuse freed IDs.

	* bsesongthread.c: some cleanups.

	* bsesource.[hcp]*: allow only one i/o module for all i/o channels now.
	add more jstream support (still not complete though).
	API cleanups and simplifications.
	redid context management code so context IDs are freely assignable by
	synthesis networks.
	(bse_source_set_context_omodule): allow resetting the module to NULL.
	(bse_source_set_context_imodule): allow resetting the module to NULL.
	
	* bseinport.c:
	* bseoutport.c:
	* bsesubsynth.c: fix port name changes during playback.
	
	* gbsearcharray.h: new file from/for GLib with binary searchable array
	implementation.

Sun Mar 31 19:44:44 2002  Tim Janik  <timj gtk org>

	* bseitem.c (bse_item_uncross): new function to remove a cross reference
	by invoking the cross notifier.

Sat Mar 30 05:57:45 2002  Tim Janik  <timj gtk org>

	* bsepart.[hc], bsepart.proc: new song related object which stores a
	list of notes to play.

	* bsestandardosc.[hc]: moved and renamed plugins/bsesimpleosc.[hc]
	to BseStandardOsc since BSE needs a default oscillator.

	* bsestandardsynths.[hc]: new file, adding functions that construct
	standard synthesis components for songs.

	* bsesong.proc: provide procedures to create/delete child components.

	* bseglobals.[hc], bsegconfig.[hc]: remove outdated definitions.

	* bseinstrument.[hc]: some cleanups. provide synthesis networks
	for song to play.

	* bseitem.proc: added procedure to retrieve an item's sequential ID.

	* bsemain.c: define _XOPEN_SOURCE 600 only if
	GSL_HAVE_MUTEXATTR_SETTYPE is > 0, since this seems to break random
	stuff on some systems.

	* bsepattern.c: remove old defines, soon to be deprecated.

	* bseserver.proc: fix loader lookup, provide procedures to
	examine notes.

	* bsesong.[hc]: add support for BsePart.

	* bsesongthread.[hc]: start supporting BsePart.

	* bseutils.c: some cleanups.

	* bswcommon.[hc]: added uspport for iterators over boxed types.
	added boxed types BswPartNote and BswNoteDescription.

	* gslcommon.c: made gsl_alloc_report() more elaborate.
	(gsl_thread_new): do _not_ create joinable threads.
	initialize _gsl_init_loader_mad().

	* gslloader.[hc]: changed GslLoader, so we support lists of
	file extensions, file magics and mime types.

	* gslloader-wav.c:
	* gslloader-oggvorbis.c: 
	* gslloader-gslwave.c: prefix function names with loader
	name. adapt code to GslLoader changes.

	* gslloader-wav.c: add "audio/wav" mime type, fix file magic to
	demand PCM format.

	* gslmagic.[hc]:
	(magic_parse_test): off-by-one error in string tests.
	(magic_parse_type): fix *short data size. disable "size" type. fix
	errors for mask handling.
	(magic_create): improve warnings.
	(magic_read_data): fix *short byte swapping.

	* bsemagictest.c: some minor improvements.

Tue Mar 26 12:22:12 2002  Tim Janik  <timj gtk org>

	* removed unneeded files: bsechunk.[hc], bsehunkmixer.[hc],
	bsebuffermixer.[hc] and bsecapture.[hc].

	* bseobject.[hc]:
	(bse_object_class_add_signal):
	(bse_proxy_marshaller_lookup): mandate specification of a BswProxy
	marshaller besides the normal marshaller when introducing signals.
	provide lookup facility to retrieve the proxy marshaller of a signal.

	* *.c: changed class_init() function which introduce signals to provide
	a proxy marshaller.

Thu Mar 21 08:36:55 2002  Tim Janik  <timj gtk org>

	* gslmakefile.inc: sort things out, document interfacing, generate
	gslconfig.h from configure.in checks. provide install hook for GSL
	headers.

	* Makefile.am: adapt to changes in gslmakefile.inc.
	install gsl headers correctly.

	* bsemain.c: define _XOPEN_SOURCE to 600 to make use of Unix98
	pthread API. provide a pthread function vtable for GSL upon
	GSL init if we have pthread available.

	* gslcommon.[hc]: together with stefan, fix alignment problems in the
	memblock caching allocator which lead to segfaults on solaris.

	* gslcommon.[hc]: slim down the implementations for mutexes, recursive
	mutexes and conditions. allow pluggable thread function table for these
	constructs which allow direct use of pthread functions if they are
	available. fixed up condition initialization and timed wait
	implementation.

	* gsldatacache.c: fix GslCond usage.

	* gslglib.c:
	* gsldefs.h: cleanups, use gslconfig.h values.

	* gslengine.h, gslopmaster.c: fix assignment of const structure fields.

	* gsloputil.c: together with stefan, fix and majorly improve the
	constant value block cache algorithm. fix GslCond usage.

Sun Mar 10 10:08:32 2002  Tim Janik  <timj gtk org>

	* bseeditablesample.[hc], bseeditablesample.proc: new object
	exporting the necesary interface to edit samples, i.e.
	GslWaveChunks. (or at least, it'll soon gain interface additions
	towards this end).

	* bseitem.[hc]: export bse_item_use() for non-item procedures.

	* bseplugin.[hc]: fix type registration order, so newly introduced
	procedures can use newly introduced objects.

	* bseserver.proc: supply a procedure to check for loader matches.

	* bsewave.proc: added procedure to retrieve a BseEditableSample.

	* bswcommon.[hc]: made BseIcon into a BswIcon structure, so this
	can be shared and exported through the wrapper code.
	introduced BswValueBlock, which is basically a ref-counted array
	of floats.

	* gsldatacache.[hc]: support checking for presence of nodes without
	affecting the number of queued nodes (schrooedingers katze ;)
	fix dhandle naming.

	* fix BseIcon vs. BswIcon.

Wed Feb 13 18:12:16 2002  Tim Janik  <timj gtk org>

	* gsltests.c: 
	* gslfilter.c: applied patch from stefan with bug fixes and doc
	additions.

Wed Feb 13 17:32:45 2002  Tim Janik  <timj gtk org>

	* bsecontainer.proc: add list-items() procedure.

	* bsecontainer.[hc]:
	* bseitem.[hc]:
	* bseproject.[hc]:
	fix functions returning lists of values.

	* bseproject.proc: added procedures for item handling via
	uloc paths.

	* bseitem.proc: bug fixes. provide get-uloc-path().

	* bsedatapocket.c: omit extraneous changed notification from
	_bse_data_pocket_entry_set().

	* bsedatapocket.proc: bug fixes.

	* bsestorage.[hc]: export scanner convenience macros.

	* gslloader-wav.c:
	* bsewave.c: disable debugging output.

Tue Feb 12 06:42:33 2002  Tim Janik  <timj gtk org>

	* bswcommon.[hc] bswprivate.h: provide low-level glue code at the
	BSE layer, to reduce wrapping complexity.
	implement BswVIter, a value iterator which is used to return
	lists of values from procedures.

	* bsedatapocket.c:
	(bse_data_pocket_do_store_private): 
	(bse_data_pocket_do_restore_private): implement storage and parsing
	abilities.

Tue Feb 12 06:40:09 2002  Tim Janik  <timj gtk org>

	* bseproject.c (bse_project_find_item): fix bad uninitialized variable.

Mon Feb 11 22:31:37 2002  Tim Janik  <timj gtk org>

	* gsltests.c (main): applied changes from stefan to support filter
	function scans.
	changed file test to use gsl function.

	* gslloader-wav.c: remove junk code.

	* gslglib.[hc]: more compat stuff from stefan.

	* gslfilter.[hc] (gsl_filter_sine_scan): added filter scanning
	function from stefan.

Mon Feb 11 18:20:57 2002  Tim Janik  <timj gtk org>

	* bseitem.proc: add common-ancestor() procedure.

	* bseobject.[hc]: add bse_object_class_set_param_log_scale() to set
	logarithmic scale parameters for a proeprty.

	* bseparam.[hc] (bse_param_spec_set_log_scale): support logarithmic
	parameters on property scales. add bse_param_spec_get_log_scale()
	for read-out.

	* bseproject.[hc]: remove useless bse_project_add/remove_super()
	functions.
	support ordinary items (non-supers) as children of a project.
	add new function bse_project_find_item().

	* bseproject.proc: ad procedure get-data-pocket() to retrieve a
	named data pocket object from a project.

	* bsequery.c: minor improvement to procedure doc generation.

	* bsetype.h: flags cleanup.

	* gslcommon.[hc]: support gsl_thread_self() for the main thread
	in a way that's also suitable for aRts.

	* gsldatautils.c: fix peekbuffer fill size.

	* gsldatautils.c: minor speed improvement for tailmatch_score_loop().

	* gslfilter.c: fox band pass/stop filter scaling, so that b[0]==1.0.

	* gslfilter.[hc]: implement filter evaluation routine for first direct
	canonical form.

	* gslieee754.h: use static inline instead of extern inline in the GCC
	case, so this works with --finstrument-functions.

	* gslloader-gslwave.c: correctly handle relative chunk file paths.

	* gslloader-wav.c: fix gcc-ism.

	* gslloader.h: make loop_start/end GslLongs.

	* gslmath.c: up the default %f precision in stringifaction.

	* gsltests.c: support multiple file names for the wave-scan command.

	* gslwavechunk.[hc]: add strngification functions for GslWaveLoopType.

	* gslwaveosc.h: fix FIXMEs.

	* bsecontainer.c (uncross_ref): important fix to only invoke
	uncross notifier when uncrossing, not when unreffing the cross
	ref.

	* bsedatapocket.[hc] bsedatapocket.proc: new object to hold view
	specific, generic data. currently lacks storage ability.

Wed Feb  6 04:52:37 2002  Tim Janik  <timj gtk org>

	* bsestorage.c (bse_storage_parse_param_value): allow floats when
	parsing int/uint, to ease backwards compatibility.

Wed Feb  6 04:38:01 2002  Tim Janik  <timj gtk org>

	* gslfilter.[hc]: added gsl_iir_filter_eval() plus _change and
	_setup variants to calculate IIR filters (second canonical
	direct form).

	* gslmakefile: fix tschebyscheff type II steepness in the
	gsltestoutput rule.

Tue Feb  5 04:32:04 2002  Tim Janik  <timj gtk org>

	* remove bsesample.[hc] from the tree as it's hopelessly
	outdated and has been superceeded by BseWave.

	* removed bsevoice.[hc], though songs don't work yet, they
	don't use BseVoice anymore.

	* added BseSequence, a new property type (boxed) containing
	sequences of notes.

	* bsesong.c: fix auto activation property.

	* gslopmaster.c: eeek, added a FIXME about not freeing flow
	jobs when discarding modules.

Sun Feb  3 23:01:45 2002  Tim Janik  <timj gtk org>

	* bseitem.[hc]:
	* bseprocedure.[hc]: support procedures up to BseObject.

	* bseobject.proc: new file to implement BseObject+is_a().

	* *.c:
	* bseobject.[hc]: changed object->name to object->uloc, a non
	user-editable propety which is a unique identifier for the
	objects whithin its container. added a simple string property
	object::name that has no uniquenes or character constrains
	anymore.

	* bsecontainer.[hc]: nuke item_seqid() and get_item() methods,
	we solve this once and for all here and don't need special casing
	in derived objects anymore.
	sequential ids are now handed out per exact type of a child in
	a container.

Sat Feb  2 12:22:11 2002  Tim Janik  <timj gtk org>

	* bseproject.[hc]:
	(bse_project_store_bse): add argument on whether to save wave
	files per reference or inlined.
	BseProject+store-bse: provide a procedure to actually store
	a project.

	* bsestorage.h: added a flag and macro BSE_STORAGE_SELF_CONTAINED()
	to indicate that objects shouldn't store references.
	* bsestorage.c: convert sample data via gsl_conv_from_float_clip().

	* bsewave.c: fix up the raminings of deciding between inlined storage
	or file references, works with BSE_STORAGE_SELF_CONTAINED() now.

Sat Feb  2 11:22:10 2002  Tim Janik  <timj gtk org>

	* bsemididevice-null.[hc]: new NULL midi device. basically allowes
	beast to operate with PCM without the need for /dev/midi.

Sat Feb  2 09:21:39 2002  Tim Janik  <timj gtk org>

	* gslcommon.[hc] (gsl_check_file): new function for elaborate
	error messages.

	* gsldatautils.[hc] (gsl_data_handle_dump_wav): dump a data handle
	as .wav file.
	const fixes for gsl_conv_*().

	* bsepcmdevice-oss.c (oss_device_write): use
	gsl_conv_from_float_clip() to improve accuracy and speed.

	* gsldatahandle.h: add hooks for linear read data handles,
	provide GSL_DATA_HANDLE_READ_LINEAR() to identify them and
	introduce GslDataHandleFuncs.coarse_seek() to reposition
	such handles.

	* gsldatahandle-vorbis.[hc]: Ogg/Vorbis data handle. using this
	with dcaches is suboptimal currently as dcaches warp back in pcm
	positions on block boundaries. so this should be used in conjunction
	with a linear-read-buffer handle only (which is of course not yet
	implemented ;).

	* gslloader-gslwave.c: GslLoader implementation for Ogg/Vorbis files.

	* gslopmaster.c (master_process_flow): assert that rounding mode is
	round-to-nearest, if this assertion is triggered, some software
	didn't cleanup after itself and should be fixed.

	* gsldatautils.c (gsl_data_handle_dump): clip values before saving,
	to avoid nasty value wraps.

	* gsldatautils.h: gsl_conv_from_{float|double}*() use gsl_ftoi()
	for the rounding now, which is more accurate and, at least on i386,
	slightly faster.

	* gslieee754.h: provide fpu rounding functions, most importantly
	gsl_ftoi() to round a float to interger in round-to-nearest mode.
	we also have gsl_fpu_setround()/gsl_fpu_restore() now, to force
	round-to-nearest mode, but that shouldn't be necessary as it's
	the default for ieee754 (and on i387).

Fri Feb  1 02:43:38 2002  Tim Janik  <timj gtk org>

	* gslfilter.[hc]: 
	* gslmath.[hc]: moved frequency/epsilon z/s plane transformations
	from gslmath.* to gslfilter.*.

	* gslfilter.[hc]: added gsl_filter_tscheb2_steepness_db() and
	gsl_filter_tscheb2_steepness() from stefan, which calculate the
	required steepness factor for gsl_filter_tscheb2_rp() and variants
	thereof.

Fri Feb  1 02:11:07 2002  Tim Janik  <timj gtk org>

	* bseconstant.[hc]: support stamped flow jobs to set an output by
	frequency, value or note.

	* gslopmaster.c (master_handle_flow_jobs): implement rudimentary flow
	job handling.
	(master_process_locked_node): handle flow jobs, fix output buffer
	virtualization for partial calculations (this is SLOW, desperately
	needs fixing).
	fixed stupid mistake where flow jobs weren't sorted by their tick_stamps
	upon insertion.

	* gslengine.h (struct _GslOStream): removed zero_initialize:1 flag
	from ostreams as modules can easily memset(,0,) themselves and the
	engine just becomes slower by checking this.

	* bsesong.c (song_set_n_channels): grmm, initialize channel constants
	with 0.0 (not the default 1.0).

	* bsesongthread.c: major timing fixes.

	* bseserver.[hc]: removed API/implementation about a magic-matched
	loader procedures (loaders are plugged into GSL now).

	* bsewave.[hc] (bse_wave_load_wave): new function to load a defined
	set of chunks from a wave in a file, uses the GslLoader.

	* bsewave.proc (load-wave): simply use bse_wave_load_wave() and get
	rid of the GValueArrays passed in.

	* bsesource.[hc]: provide bse_source_flow_access_modules() to commit
	access flow jobs.
	removed unused bse_source_access_imodules() and
	bse_source_update_imodules() functions.

	* bseutils.[hc]: provide bse_darrays_match_freq() that operates
	on GDArray instead of value arrays.

	* gslcommon.h: define GSL_MAX_TICK_STAMP.

Thu Jan 31 17:43:46 2002  Tim Janik  <timj gtk org>

	* bsepcminput.[hc]: new module, providing recording abilities,
	(still has latency issues though).

	* bsecapture.[hc]: disabled this (outdated) module, i.e. don't
	enter a category for it.

	* bsepcmoutput.[hc]: code fixes and cleanups.

	* bsepcmdevice-oss.c:
	* bsepcmdevice.[hc]: provide number of values read upon reading
	from a pcm handle.

	* bsepcmmodule.c: provide pcm input module.
	* bseserver.[hc]: use/support pcm input modules.

	* bsesong.[hc]: create left/right mixer.

	* bsesource.c: fix stupid bug that caused deletion of some
	source links to fail.

	* gslopmaster.c: consumer list handling fixes.

Thu Jan 31 01:15:24 2002  Tim Janik  <timj gtk org>

	* gslloader-wav.c: deal gracefully with overlong headers.

	* bseconstant.c: fix variable names.
	
	* bsewave.[hcp]*: export n_channels.
	
Tue Jan 29 15:16:51 2002  Tim Janik  <timj gtk org>

	* gslengine.[hc], gslopmaster.c: make consumer property a per module
	property, changable via gsl_job_set_consumer().
	
	* *.c: changed modules accordingly to set consumership where
	necessary.

	* bsesubsynth.[hc]: make number of input/output channels compile time
	configurable.
	
	* bsesong.[hc]: more work on the required synthesis network.
	
	* *.[hc]: s/BSE_ITEM_NEVER_STORE/BSE_ITEM_STORAGE_IGNORE/.

Fri Jan 25 07:13:25 2002  Tim Janik  <timj gtk org>

	* bseconstant.[hc]: moved this from ../plugins/ to here, since
	we refer to it from the core. changed module to deal with multiple
	outputs.

Thu Jan 24 11:04:41 2002  Tim Janik  <timj gtk org>

	* bseenums.[hc]: added more source conneciton errors, removed
	unneeded errors.

	* bsesource.[hc]: add joint (multi-connect) input channels.
	this still needs implementing on the engine side, i.e.
	jchannel->jstream, but the BSE side of things should be fully
	intact.

	* bsesource.proc: added a couple more procedures to let
	callers deal with ichannels and jchannels correctly.

Thu Jan 24 05:59:45 2002  Tim Janik  <timj gtk org>

	* gsl*.*: applied a good bunch of build fixes, and gcc-ism fixes
	and aRts special casing patches from stefan.

	* gsltests.c: feature fir aproximation, this still needs fixing though.

Thu Jan 24 01:13:47 2002  Tim Janik  <timj gtk org>

	* mkcproc.pl: output #line directives after stripping a comment.

	* gslwchunk.c: don't implement your own data handle. reduce
	stack size usage so this works in threading mode as well.
	fix ping-pong loop specification.

	* gslwavechunk.c: fix ping-pong loop assertions.

	* gsltests.c: use new loader API for wave file scan.
	
	* gslmagic.[hc]: new implementation of a magic(5) matcher,
	required by GslLoader. (formerly, this code was in bsemagic.[hc]).

	* gslloader.[hc]: new loader API implementation.
	(gslloader.c used to be a non-functional test program, removed
	that setup.)
	FIXME: should we fallback to other loaders after the first failed?
	FIXME: datahandle/dcache integration is somewhat suboptimal currently.

	* gsldefs.h: moved GslErrorType enum to here, added a couple
	of new structure prototypes.

	* gslglib.h: provide "GSL" log domain.

	* gsldatautils.c: fix gcc-isms.

	* gsldatahandle.[hc]: redid cache implementation, made it generic
	by supporting a hash structure filled in by data handle implementations
	to use as cache keys. provide public API cache entry points.
	fixed logic in data handle creation functions that could cause leaks
	under rare circumstances.
	provide gsl_wave_format_to_string() and gsl_wave_format_from_string(),
	formerly in gslwavedsc.[hc]).
	removed GslDataHandleLoader proposal API.
	FIXME: there needs to be decided how to handle mtime correctly.
	(gsl_wave_handle_new_cached): removed this as public API.
	(gsl_wave_handle_new): don't create a translation handle if not
	required.

	* gslcommon.[hc]: updated errors. provide gsl_byte_order_to_string()
	and gsl_byte_order_from_string() (formerly in gslwavedsc.[hc]).
	bootup .gslwave and .wav loaders.

	* bsewaverepo.proc: use new GslLoader API to load waves.

	* bsewaverepo.c: strip junk.

	* bsewave.proc: use new GslLoader API to load waves.
	renamed gslwave-loader to load-wave.

	* bsewave.c: use new load-wave procedure.

	* bseserver.[hc]: use GSL magics now.

	* bsemagictest.c: use GSL magics now, loader adaptions.

	* bseinfo.c: silence compiler.

	* bseenums.[hc]: merged GSL errors into BSE errors.

	* bsecategories.c: support new /Modules/ toplevel category.

	* bsemagic.[hc]: files removed.

	* gslwavedsc.[hc]: nuked files.

	* gslloader-wav.c: new file, implementing a RIFF/WAVE file loader.

	* gslloader-gslwave.c: new file, implementing a .gslwave file loader,
	most code migrated from gslwavedsc.[hc].

	* gslwave.header: updated this to reflect syntax changes, mainly, for
	raw sample chunks, byte_order, format and n_channels have to be the
	same for all chunks.

	* gslwaveosc-aux.c: don't abort on non-mono dirstrides. the oscillator
	still needs fixing to let the user specify the channel to use for
	playback.

Tue Jan 15 17:27:02 2002  Tim Janik  <timj gtk org>

	* bsecontainer.c (forall_prepare): ignore already prepared
	children.

	* bseparam.h: grr, gimme bse_param_spec_boolean().

	* bseproject.c (bse_project_prepare): give preparation precedence
	to BseWaveRepos, so synth modules can fetch their wave index
	from BseWave in BseSource.prepare().

	* gslfilter.[hc]: added gsl_filter_fir_approx() from stefan, which
	approximates an FIR filter from a frequency transfer function, given
	in freely-spaced transfer function samples.
	get rid of GSL_SIGNAL_EPSILON and GSL_SIGNAL_KAPPA.

	* gslmath.h: provide GSL_LN2.

	* gslopmaster.c: added debugging/trace facility to catch the slowest
	module in the current schedule.

	* gslsignal.[hc]: new file to aid signal processing. provides macros
	to test for signal edges and changes. also provides gsl_signal_exp2(),
	a fast but limited approximation of exp2f().

	* gslwaveosc*.[hc]: seperated wave oscillator code out of
	plugins/bsewaveosc.c into independantly callable functions. fixed up
	the code somewhat and added modulation.
	this is still missing an LP->LP transformation function in gslfilter.h
	to adjust the filter during modulation.

Sat Jan 12 11:22:18 2002  Tim Janik  <timj gtk org>

	* bseinstrument.[hc]: get rid of old sample and synth inputs. support
	BseWave now. removed a bunch of old/dead code.

	* bsesong.[hc]: create partial (non-savable) synthesis modules to
	play a song now.

	* gslfilter.[hc]: do gsl_trans_zepsilon2ss() in the public filter
	functions automatically, so users are to pass epsilon in z-space
	now, as they are to pass frequencies in z-space already.
	commented out an assertion that triggers an internal compiler error
	(bug reported to gcc-bugs).
	adjusted steepness argument for tschebyscheff type II filters, so
	it's a real factor, based on the first frequency given.

Fri Jan 11 06:17:23 2002  Tim Janik  <timj gtk org>

	* bsecontainer.h: provide object flags user shift macro.
	
	* *.c: reset TypeInfo prealloc configurations.
	
	* bseinstrument.c: tiny cleanup.
	
	* bsemain.[hc]: provide sequencer mutex.
	
	* bsepattern.c: insert sequencer locks as apropriate.
	
	* bsepatterngroup.c: same here.
	
	* bsepcmoutput.c: doh, fix off-by-one buffer access.
	
	* bsesnet.[hc]: change code to allow derivation.
	
	* bsesong.[hc]: derive from BseSNet. protect portions
	by sequencer lock. spwan sequencer thread upon playback.
	
	* bsesource.c: fix parser warning about failing connections.
	
	* bsestorage.c: fix off-by-one string access.
	
	* bsesuper.h: provide object flag user shift macro.
	
	* gsl-mplan.txt: updates, mention flow jobs.
	
	* gslcommon.[hc]: fix gsl_delete_struct/gsl_delete_structs.
	(gsl_ring_find): nw function to find data in a ring.
	(gsl_thread_new): return a thread handle.
	(gsl_thread_self): same here.
	(gsl_thread_sleep): sleep until timeout expires or woken up.
	(gsl_thread_aborted): should the thread abort?
	(gsl_thread_queue_abort): queue abort event on a thread.
	(gsl_thread_abort): abort a thread and wait until it finished.
	(gsl_thread_wakeup): wake up a sleeping thread.
	(gsl_thread_awake_after): queue wakeup of self after a certain
	tick_stamp.
	(gsl_thread_awake_before): queue wakeup of self before a certain
	tick_stamp.
	(gsl_thread_get_pollfd): retrieve wakeup pollfd for self.
	(gsl_tick_stamp): return current tick stamp counter.
	(GSL_TICK_STAMP): get current tick stamp counter without
	lock protection (should be used within GModule only).
	
	* *.c: gsl_delete_struct*() adaptions.

	* gsldefs.h: provide GslThread handle.
	(if_reject): if() statement that is unlikely to succeede.
	(if_expect): if() statement that is likely to succeede.
	
	* gslengine.c: fix stream buffer allocations.
	doc fixes. added proper tick_stamp support.
	(gsl_flow_job_access): queue a time stamped flow job on
	a module to access module data.
	(gsl_flow_job_suspend): queue a time stamped flow job on
	a module to suspend it.
	(gsl_flow_job_resume): queue a time stamped flow job on
	a module to resume it.
	
	* gslopnode.h: buncha renaming and fields order changing.
	added flow jobs.
	
	* gslopmaster.c: removed master node list code. handle
	flow jobs. misc fixes. changed wakeup mechanism.
	walk unscheduled nodes with flow jobs at the end of dispatching.
	
	* gslopschedule.c: care of keping master node list sorted. dump
	schedule for debugging once it changed.
	
	* gsloputil.[hc]: plugged memleak. removed gross over-allocation
	of buffers. handle flow job trash queue. added function for
	master node list maintenance: _gsl_mnl_remove(), _gsl_mnl_integrate()
	and _gsl_mnl_reorder(). the list is partially sorted now.
	(gsl_engine_garbage_collect): do proper trash collection from
	user thread. removed old wakeup code.
	
	* gslfilter.h: added GSL_SIGNAL_EPSILON and GSL_SIGNAL_KAPPA
	to compare valid signals against.
	
	* gslmath.[hc]: make gsl_bit_depth_epsilon() return doubles.
	
Thu Dec 20 06:40:04 2001  Tim Janik  <timj gtk org>

	* gslmath.[hc]: include gslieee754.h.
	(gsl_bit_depth_epsilon): grumble, make this return doubles.

	* gslieee754.h: new file, containing all the necessary bits to provide
	and check for inf/nan, normal and subnormal numbers on ieee754 floats
	and doubles.

Fri Dec 14 08:49:49 2001  Tim Janik  <timj gtk org>

	* bsemididevice-oss.c: use BseServer IO watch to monitor device.
	this should have its own thread some day, but for now a high
	prioritized main loop source is pretty fine already.

	* bsepcmdevice.[hc]: support setting watermarks on pcm handles.

	* bsepcmdevice-oss.c: fix up to PCM changes.

	* bsepcmmodule.c: yay, fixup poll function, finally! supports
	watermark now.

	* bseserver.[hc]: added pcm_latency property. implemented io watch
	handlers through a main loop source for now, should be a thread
	someday.

Fri Dec 14 04:09:52 2001  Tim Janik  <timj gtk org>

	* gslengine.c (gsl_engine_prepare): fix loop filling for the
	threaded case, we don't need to be processed at all, so return
	a timeout of -1.

Wed Dec 12 04:44:08 2001  Tim Janik  <timj gtk org>

	* fft.h: added tentative float convenience wrapers.

	* gslwavedsc.[hc]: added stringification and parsing functions for
	byte order and wave format.

	* gslcommon.[hc]: added gsl_ring_length(), gsl_ring_nth(),
	and gsl_ring_nth_data(), fixed other gsl_ring_* functions.

	* gsldatautils.h: add double conversion variants gsl_conv_from_double,
	gsl_conv_from_double_clip and gsl_conv_to_double.

Tue Dec 11 01:17:43 2001  Tim Janik  <timj gtk org>

	* gsldatautils.[hc]: new files containing general sample data/
	data handle utility functions, some of these functions are
	based on code from Stefan Westerfeld.
	(gsl_data_detect_signal): detects signal start and end position within
	a data handle.
	(gsl_data_find_sample): find sample values or ranges thereof within
	a data handle.
	(gsl_data_find_tailmatch): determine loop points to aproximate a data
	handle's tail.
	(gsl_data_handle_dump): write out data handle contents to a file
	descriptor.
	(gsl_data_handle_peek_value): function to read a single sample out of a
	data handle. needs temporary peekbuffer variable to perform block-wise
	reads behind the scenes.

	* gsllooper.[hc]: removed these files.

	* gsldatahandle.h: added wave format loader hook proposal.

Tue Dec 11 00:52:02 2001  Tim Janik  <timj gtk org>

	* FFT mania:

	* gsl-fftgen.pl: perl script to generate speed-optimized fft
	calculating routines.

	* gsl-fftconf.sh: configuration file to invoke gsl-fftgen.pl,
	and to provide public FFT routine frontends.

	* gslfft.h: publically exported FFT function header file.
	* gslfft.c: autogenerated FFT calculation code.

	* gslffttest.c: test code for FFT accuracy.

Mon Dec 10 23:01:44 2001  Tim Janik  <timj gtk org>

	* changes done together with Stefan Westerfeld.

	* gslmath.[hc]:
	(gsl_complex_reciprocal): new function to compute the reciprocal
	value of a complex number.
	(gsl_complex_id): new function, returning the passed in complex number.
	(gsl_poly_mul): function changed and fixed to deal with variable length
	polynomials and work in place.
	(gsl_cpoly_mul): complex variant of gsl_poly_mul().
	(gsl_float_sign): extract sign of a float or double.

	* gslfilter.[hc]: scratched old filter variants.
	(gsl_filter_butter_rp):
	(gsl_filter_tscheb1_rp):
	(gsl_filter_tscheb2_rp): new functions to compute roots and poles for
	butterworth, and the both tschebyscheff types filters.
	(gsl_filter_butter_lp):
	(gsl_filter_tscheb1_lp):
	(gsl_filter_tscheb2_lp): added lowpass filter functions.
	(gsl_filter_butter_hp):
	(gsl_filter_tscheb1_hp):
	(gsl_filter_tscheb2_hp): added highpass filter functions.
	(gsl_filter_butter_bp):
	(gsl_filter_tscheb1_bp):
	(gsl_filter_tscheb2_bp): added bandpass filter functions.
	(gsl_filter_butter_bs):
	(gsl_filter_tscheb1_bs):
	(gsl_filter_tscheb2_bs): added bandstop filter functions.

	* gsltests.c: support new filter types.

Mon Nov 26 10:04:42 2001  Tim Janik  <timj gtk org>

	* bsecontainer.c: fix things to not cast GType into UINT.
	* bseobject.c: 
	* bseserver.c:
	* bseproject.c: same here.

Mon Nov 26 05:08:50 2001  Tim Janik  <timj gtk org>

	* gsldatahandle.[hc] (gsl_data_handle_new_insert):  implemented new
	handle for insertion of a small fixed value block.

	* gslmath.[hc] (gsl_bit_depth_epsilon): new function for epsilons at
	certain bit depths.

Sun Nov 25 23:47:16 2001  Tim Janik  <timj gtk org>

	* gsl*.[hc]: applied patch from stefan to use g_newa() instead
	of g_alloca() and fix other minor portability issues.

Sun Nov 25 23:36:57 2001  Tim Janik  <timj gtk org>

	* bsetype.h: fix fundamental type IDs accoring to recent
	glib changes.

Wed Nov 14 10:37:24 2001  Tim Janik  <timj gtk org>

	* gslcommon.[hc]: add more error types.
	
	* gslconvert.[hc]: preliminary UTF8 conversion.

Wed Nov 14 08:36:41 2001  Tim Janik  <timj gtk org>

	* gsl*.[hc]: applied heavily modified patch from stefan to make
	things more portable and get rid of various GCC-isms.

Wed Nov 14 03:37:14 2001  Tim Janik  <timj gtk org>

	* bsequery.c (show_procdoc): s/param_get/param_spec_get/.

Tue Nov 13 01:44:01 2001  Tim Janik  <timj gtk org>

	* gsllooper.[hc]: minor fixes.

Mon Oct 29 22:45:37 2001  Tim Janik  <timj gtk org>

	* gsldatahandle.h: provide GSL_DATA_HANDLE_OPENED() to
	check whether a handle is open.
	added bit_depth member to GslDataHandle, so the information
	about the number of significant bits doesn't get lost by using
	floats.

	* gsldatahandle.c: implement reversed data handle.
	gsl_data_handle_open(): return errno instead of GslErrorType
	(so code portions that want to, can produce more elaborate
	messages).
	(gsl_data_handle_read): fixed a bug with boundary alignment.
	(gsl_data_handle_common_init): added bit_Depth argument, so
	an apropriate format can be choosen at save time.
	
	* gsldefs.h: nuke GSL_BYTE_ORDER, we have G_BYTE_ORDER even
	in the glib-compat code.

	* gsllooper.[hc]: renamed gsl_loop_find_tailmatch to
	gsl_data_find_tailmatch() should probably have a gsldata.[hc]
	file for this.
	added gsl_data_find_sample() to search for a certain sample
	in a GslDataHandle.
	provide gsl_data_peek_value() which is a macro to be used to
	extract single data samples from a GslDataHandle (it needs a
	user supplied stack buffer GslDataPeekBuffer which needs to be
	0-initialized). this avoids wiritng custom buffering code
	over and over when looping over a data handle's values.

	* gslwave.header: provide a sample for how gslwave headers
	are structured.

	* gsltests.c: add midi2freq function.

Mon Oct 29 22:40:52 2001  Tim Janik  <timj gtk org>

	* gslcommon.c (gsl_init): don't crash on NULL options.
	

Sat Oct  6 14:27:39 2001  Tim Janik  <timj gtk org>

	* gslglibhash.cc: new GHashTable implementation in c++ from
	stefan, that doesn't use SGI specific classes.

	* gslglibhashtest.cc (main): new file from stefan to test hashtable.
	
	* bseitem.proc: add procedure to retrieve type blurb of an item.

Thu Sep 27 13:10:43 2001  Tim Janik  <timj gtk org>

	* MANY fixes, new APIs and cleanups.

	* we're now using GSL, a common sound stuff backend for, at this
	point, at least aRts and BSE. GSL comes with an abstraction to
	sound file handles, file caches (that're designed for asyncronous
	prereading), wavechunk looping, multi-sample waves and a flow
	module operation engine. there're little docs on this yet, however
	for the engine, the public guts are in engine.h and gsl-mplan.txt
	gives a conceptual overview of the engine.
	the core rationale for GSL is code sharing between BSE and aRts
	to reduce required effords by both projects, and for the engine
	specifically, the need to process modules of huge networks and
	cycles tehreof, asyncronously and efficiently with full support
	for multi processor systems.

	* rough summary:
	- we're using GSL now for data file caching, format conversion
	  and similar things and filter calculation.
	- we're just having GObject and GLib as BSE dependancy again,
	  as the GObject move is completed now and remains of blib got
	  backmerged into BSE.
	- we're using the GSL engine at the core now. most things work
	  again or better, except for songs. songs have to be implemented
	  a whole lot differently using engine concepts, the exact outcome
	  of this is not yet clear.
	- a basic midi backend is supplied now
	- BSE objects now just generally serve as templates for GSL module
	  networks to be created. this allowes for the same synthesis network
	  object to be plugged into different contexts and be realized
	  multiple times.
	- instead of BseSample, samples are now gotten from BseWaveRepo
	  and BseWave now, which deals with samples, multi-samples and
	  collection thereof via GSL.

Sun Nov  5 02:30:38 2000  Tim Janik  <timj gtk org>

	* Makefile.am: parallel build fix, bseenum_arrays.c wouldn't get
	initially created.

	* mktypes.pl: include perl script name when dieing. to figure parent
	types, just match /_type_register_static/ so we catch bse_ and g_.

Sun Jul 23 02:57:16 2000  Tim Janik  <timj gtk org>

	* bsesongsequencer.c (bse_song_sequencer_step_row): seperated code for
	row stepping, we do the checking of the bse_effect_jump_sequencer()
	return values on the fly now.

	* bseeffect.c (bse_effect_jump_sequencer): don't return a boolean value
	on whether the arguments changed.

Mon May 29 02:37:01 2000  Tim Janik  <timj gtk org>

	* bsepattern.c: save and load effect list with notes.

	* bseeffect.[ch]: object framework cleanup, we really just derive from
        BseObject and that's it. provide class methods for effect settings.
	scratched the BseEffectType idea, we use real methods instead of
	hardcoded object type special casing in sequencer and front ends.

	* bseeffectfinetune.c:
	* bseeffectpatternbreak.c:
	* bseeffectbalance.c:
	* bseeffectnotevolume.c: completed effect implementation.

	* bseeffectpatternjump.c:
	* bseeffectvolumedelta.c: unimplemented, still on hold.

	* bsevoice.[hc]: fine_tune bug squeezed (API cleanup), support arbitrary
	effect settings.

	* bsesongsequencer.c (bse_song_mixer_activate_voice): inserted effect
	hooks for sequencer stepping and initial voice setup.

Sat May 27 16:16:01 2000  Tim Janik  <timj gtk org>

	* bsevoice.c (bse_voice_make_poly_and_renew): simply reset voices that
	haven't started playing yet.

	* mkenums.pl (parse_entries): urg, don't hang on multi line comments,
	but read them up.

Fri May 26 07:58:14 2000  Tim Janik  <timj gtk org>

	* bsepattern.[hc]: provide effect management functions:
	(bse_pattern_note_get_n_effects): number if effects on note.
	(bse_pattern_note_get_effect): get effect by index.
	(bse_pattern_note_find_effect): get effect by type.
	(bse_pattern_note_actuate_effect): install effect type.
	(bse_pattern_note_drop_effect): drop effect type.

	* bsecategories.c (category_strip_toplevels): handle /Effect toplevel
	categories.

	* bse.h: only export the BseEffect basis type to the rest of the world.

Thu May 25 02:56:18 2000  Tim Janik  <timj gtk org>

	* bsebuffermixer.[hc]: 
	* bsebuffermixercore.c: mixer function cleanup, implemented cubic
	interpolation.

Wed May 24 06:40:11 2000  Tim Janik  <timj gtk org>

	* bsebuffermixercore.c: squeezed half_step thinko in linear
	interpolation. optimized linear interpolation by trading a
	multiplication for a bitshift.

	* bsevoice.c (bse_voice_set_note): set BseMixSource's block_padding
	field from the munk's bin_data object.

	* bsebuffermixer.[hc] (struct _BseMixVolume): added block_padding field,
	since certain interpolation can only be run with sufficient start and
	end padding on the sample data.

	* bsestorage.c (bse_storage_create_rblock): set bin data padding on
	newly created bin_data objects to BSE_DFL_BIN_DATA_PADDING.

	* bsebindata.[hc]: support zero padding at start and end of data block
	by a certain amount of bytes.
	(bse_bin_data_set_byte_padding): set padding if no data was
	allocated yet.

Tue May 23 18:17:24 2000  Tim Janik  <timj gtk org>

	* bseenums.h (enum): new enum BseInterpolType.

	* bseinstrument.[hc]: made the interpoltion field an enum.

Fri Apr 28 21:27:16 2000  Tim Janik  <timj gtk org>

	* bseobject.c (bse_object_add_notifier_i): list all valid characters in
	call to g_strcanon().

Thu Apr 20 00:35:20 2000  Tim Janik  <timj gtk org>

	* bsecontainer.c (bse_container_do_remove_item): remove child source's
	input/output channels, regardless of the prepared state of the
	container.

Thu Apr 13 01:11:22 2000  Tim Janik  <timj gtk org>

	* bseobject.c (bse_object_do_shutdown): assert no further ref_count
	increments.

Tue Apr 11 04:02:47 2000  Tim Janik  <timj gtk org>

	* ported everything BSE over to the new GLib type system.

	* BseParam* got nuked.

	* *.[hc]: port over to use GValue instead of BseParam, use
	GParamSpec* and BParamSpec structures instead of BseParamSpec*
	and BseObjectParamSpec.
	pitfall: [bg]_param_spec_* () creation functions in general
	take minimum, maximum, default_value, stepping_rate now (swapped
	stepping_rate and default_value from the old bse_param_spec_*()
	functions).

	* *.[hc]: port objects over to GType and GObject, most objects
	perform their cleanups in BseObjectClass.destroy() now.
	finalize() got moved to GObject.
	shutdown() got moved to GObject and shouldn't normally be
	used by object implementations.
	BseObject is a derived type of GObject now.

	* bseobject.[hc]: apart from porting this over to GObject derivation,
	a bunch of its implementation vanished, such as parameter set/get
	facilities, reference counting and finalization.
	nuked old BseInterface cruft.

	* bseprocedure.[hc]: port over to GValue from BseParam, that means
	in/out values are now matched by position, and automated value
	conversion is performed where applicable.

	* bsestorage.[hc]: port over from BseParam to GValue. we still
	provide all means for loading and saving in this place, rather
	than implementing it as virtual functions in the ParamSpec
	classes. to switch() identify the non-fundamental param types,
	we now use BLib's B_SEQ_PARAM_* id facility.

	* bsetype.[hc]: nuked most of the rest of the file contents,
	all param types are now introduced and implemented in BLib.

	* miscellaneous related code cleanups.

Mon Apr  3 17:05:32 2000  Tim Janik  <timj gtk org>

	* bsemagic.[hc]: file magic implementation to figure file types
	from contents. provides simple TRUE/FALSE match results, optimized
	for running multiple match types on a single file.

	* bseexports.h:
	* bseplugin.[hc]: started out on load/save handler plugin
	facilities.

	* bseplugin.h: provided one liner descriptions for the complex
	macro magic we use for loading plugins.

Sun Apr  2 04:53:12 2000  Tim Janik  <timj gtk org>

	* Makefile.am: removed glib-* entries that went into blib.
	* glib-*.[hc]: files removed.

Fri Apr 28 21:33:52 2000  Tim Janik  <timj gtk org>

	* glib-extra.h: more adaptions for GLib 1.3.1 compatibility.
	* glib-extra.c (g_strcanon): only allow characters passed as
	valid_chars.

	* glib-gparam.c (g_param_spec_internal): 
	* glib-gparam.c (g_param_spec_hash_table_lookup): list all valid
	characters in call to g_strcanon().

Mon Apr 17 20:45:50 2000  Tim Janik  <timj gtk org>

	* glib-gobject.c (g_object_base_class_finalize): oops, don't unset
	n_params prior to destructing them.

Tue Apr 11 04:28:10 2000  Tim Janik  <timj gtk org>

	* fixed a coupole of bugs in the initial parameter/object
	implementations, after getting beast running on GObject and GValue.

	* btype.[hc]: miscellaneous B* type stuff, provide sequential
	is for B_TYPE_PARAM_* types, so code can switch() on them.

Fri Apr  7 04:27:49 2000  Tim Janik  <timj gtk org>

	* glib-gobject.[hc]: completed parameter set/get implementations,
	along with asyncronous parameter changed notification queue.

Mon Apr  2 02:07:55 2000  Tim Janik  <timj gtk org>

	* bparam.[hc]: BParamSpec implementations, some of them are just
	simple extensions of the GLib parameter specifications.

Sun Apr  2 04:54:36 2000  Tim Janik  <timj gtk org>

	* glib-includes.h: mangle GLib extension files together.

	* glib-gobject.[hc]: GObject implementation, that is facilities
	for setting/getting quarked data and reference counting.

	* glib-gparamspecs.[hc]: first actuall parameter implementations
	for GLib, so far we have: char, uchar, bool, int, uint, long,
	ulong, enum, flags, float, double, string and object. each of these
	GParamSpecs is a new instantiatable type in its own respect,
	so the .c file derives 13 new types from G_TYPE_PARAM and
	defines over 50 (*2) conversion facilities.

	* glib-gvaluecollector.h: generic varargs handling stubs for
	GParamSpecs, private header file (does get installed for
	inclusion into user code though).

	* glib-gvalue.[hc]: GValue functionality implementation.

	* glib-gparam.[hc]: basis GParamSpec implementation for
	the virtual base type G_TYPE_PARAM.

        * glib-genums.[hc]: enum/flags type implementation, based on
	bseenum.[hc].

	* glib-extra.[hc]: GLib additions, including 1.3 compatibility
	routines and various other functions, from string manipulation
	over list manipulation up to a unix signal GSource.

	* glib-gtype.[hc]: GLib Type System implementation, heavily
	based on BSE's dynamic type system.

Tue Mar 28 14:39:38 2000  Tim Janik  <timj gtk org>

	* bsestorage.c (bse_storage_put_bin_data): corrected byte order
	bugs when saving.

	* bsebindata.c (bse_bin_data_set_values_from_fd): correct some
	byte order bugs. this object still needs some clean ups.
	(bse_bin_data_init_values): new function to pre-initialize the
	object with a specified number of 0 values.

Tue Mar 28 05:38:07 2000  Tim Janik  <timj gtk org>

	* glib-gobject.[hc]: GObject implementation.

	* builtin_bsepattern.c: capitalize procedure categories.

Sat Mar 25 10:31:40 2000  Tim Janik  <timj gtk org>

	* glib-genums.[hc]: new files, takling over most of the bseenum.[hc]
	functionality.

	* bsequery.c: quickly added facility to iterate over the
	fundamental types.

	* bseplugin.c (bse_plugin_register_types): register enums and flags
	types inline.

	* *.[hc]: port over to G_TYPE_ENUM and G_TYPE_FLAGS.

Fri Mar 24 09:19:55 2000  Tim Janik  <timj gtk org>

	* bsetype.[hc]: ported the BSE type system over to use the GLib
	one, bsetype.c is now < 200 lines, hoehoe ;)

	* *.[hc]: port over from BSE to GLib type system.

Fri Mar 24 06:00:07 2000  Tim Janik  <timj gtk org>

	* glib-gtype.[hc]: finished GLib Type System implementation, now
	on to the testing.

Mon Mar 13 00:05:37 2000  Tim Janik  <timj gtk org>

	* bsesongsequencer.c (bse_song_sequencer_step): handle songs with
	empty playlists (pattern==NULL). we still simply loop the song
	at the end though...

	* bsepatterngroup.[hc] (bse_pattern_group_get_nth_pattern): new function
	to return pattern by play index.

	* bsesong.c (bse_song_get_pattern_from_list): implemented this in
	terms of fetching the current pattern to play from the pattern groups.

Sun Mar 12 16:07:50 2000  Tim Janik  <timj gtk org>

	* bseinstrument.c (bse_instrument_class_init): disabled synthesis
	input facility.
	* bsesinstrument.c (BSE_BUILTIN_TYPE): don't register a category
	for this object yet.

Fri Mar 10 22:48:33 2000  Tim Janik  <timj gtk org>

	* bsesong.c: 
	* bsesnet.c:
	* bseheart.c:
	* bsesample.c:
	* bsepattern.c:
	* bseinstrument.c:
	* bsepatterngroup.c:
	* bseeffectfinetune.c:
	* bseeffectnotevolume.c:
	* bseeffectpatternjump.c:
	* bseeffectvolumedelta.c:
	* bseeffectpatternbreak.c:
	preallocation adjustments.

	* bseglobals.h (BSE_PREALLOC_N_SUPERS): added object preallocation
	defines so memory can be trimmed if desired.

	* bseutils.c (bse_icon_ref_static):
	s/bse_icon_static_ref/bse_icon_ref_static/ and changed callers.
	
	* TODO: cleanups.

Wed Mar  8 14:57:50 2000  Tim Janik  <timj gtk org>

	* bsepatterngroup.c: implemented bse_pattern_group_store_private()
	and bse_pattern_group_restore_private() to store tha pattern list.

	* bsesong.c: implemented bse_song_restore_private(),
	bse_song_store_after() and bse_song_restore() to save and load
	the pattern group list.

	* bseobject.[hc]: semantic change, substituted store_termination()
	method with store_after(), so second stage saving can be used
	in the same way as store_private() (derived widgets can store
	stuff even after chaining the parent handler).
	(bse_object_store): after invoking store_after(), store
	the actual termination.

Wed Mar  8 12:28:19 2000  Tim Janik  <timj gtk org>

	* bsesong.c (bse_song_remove_item): remove references to
	removed pattern from pattern groups.

Mon Mar  6 23:47:46 2000  Tim Janik  <timj gtk org>

	* bsesong.[hc]: added pattern group support:
	bse_song_get_default_pattern_group(),
	bse_song_insert_pattern_group_link(),
	bse_song_insert_pattern_group_copy() and
	bse_song_remove_pattern_group_entry().
	
	* bsepatterngroup.[hc]: new maintenance object to keep track of
	patterns, grouped together for arranger parts.

	* bseitem.[hc] (bse_item_queue_seqid_changed): made seqid_changed() an
	async notification.

Tue Feb 22 07:28:03 2000  Tim Janik  <timj gtk org>

	* builtin_bsepattern.c: added Tools/Fill random procedure, formerly
	in fldbsepattern.c as a test procedure.

Tue Feb 22 04:58:22 2000  Tim Janik  <timj gtk org>

	* bsebuffermixer.[hc]: new files, containing abstracted and optimized 
	BseMixValue buffer mixing functions, based on the former song mixing
	core.
	* bsebuffermixercore.c: actuall mixer function implementation, compiled
	multiple times with different optimization setups.

	* bsehunkmixer.[hc]: removed BseMixValue related mixing functions,
	s/bse_hunk_clip_mix_buffer()/bse_hunk_clip_from_mix_buffer()/.

	* bsesongsequencer.c: moved a bunch of the former bsesongmixer.c
	fucntions here, cleaned code up a bit by using bse_mix_buffer_*()
	functions.
	temporarily disabled synth instruments.

	* bsevoice.[hc]: major cleanups and rewrites, use BseMix* type
	structures for certain value sets. some preparation for note effect
	support.

Wed Feb  9 12:58:48 2000  Tim Janik  <timj gtk org>

	* bseparam.[hc]: major parameter cleanups, scratched the param_group,
	param_id and parent_type memebers so params are more appropriate for
	general use.

	* bseobject.[hc]: changed the way we store per-class parameter specs,
	so we can still suply a param_id and a param_group, and have the
	object_type for hash lookups.
	got rid of the IN_PARAM_CHANGED flag.
	we pass the param_id as a seperate argument to the classes
	get_param() and set_param() functions now.
	(bse_object_class_get_n_param_specs):
	(bse_object_class_get_param_spec): accessors for param specs.

	* *.c: changed all get_param() and set_param() functions accordingly.

Wed Feb  9 03:17:18 2000  Tim Janik  <timj gtk org>

	* bseparam.c (param_exchange_lookup): a conversion rule for
	BSE_TYPE_PARAM_UINT <=> BSE_TYPE_PARAM_UINT was missing.
	optimized exchange function table lookups by returning
	param_exch_copy() right away for equal types.
	(bse_param_values_exchange): validate parameters after exchanging.

Wed Feb  9 00:53:20 2000  Tim Janik  <timj gtk org>

	* bsepattern.h (struct _BsePatternClass): put a comment to not confuse
	people about current_channel and current_row.

Tue Feb  8 09:23:25 2000  Tim Janik  <timj gtk org>

	* bseutils.[hc]: return the referenced icon from bse_icon_static_ref()
	and bse_icon_ref().

	* bsesnet.c:
	(BSE_BUILTIN_TYPE): don't add to categories.
	(bse_snet_class_init): 
	(bse_snet_do_get_icon): return synthesis network icon.

Mon Feb  7 02:57:43 2000  Tim Janik  <timj gtk org>

	* bsepattern.[hc]: reintroduce bse_pattern_select_note() and
	bse_pattern_unselect_note() to modify note selections on individual
	notes.
	(bse_pattern_restore_selection): use bse_pattern_select_note() or
	bse_pattern_unselect_note() so notifiers get invoked.
	(bse_pattern_has_selection): new function to quickly check whether
	selected notes are present at all.

	* bsedefs.h: introduced BseNotify_note_selection_changed() notifier.

Thu Feb  3 09:19:49 2000  Tim Janik  <timj gtk org>

	* glib-extra.[hc]:
	s/signal/usignal/ for glib's unix (user) signal loop source.
	compat code to make g_datalist_id_remove_no_notify() return
	the data for !1.3.1 glib.

	* bseobject.[hc]:
	* bsesource.c:
	* bseparasite.c:
	* bsecontainer.c:
	qdata_remove_no_notify fixups.

Wed Feb  2 23:59:48 2000  Tim Janik  <timj gtk org>

	* builtin_bsepattern.c (multi_select_exec): added Select/All,
	Select/None and Select/Invert procedures.

	* bsepattern.[hc]: revamped selection API, we only store the
	selection for procedure invokations now.

	* bseexports.h: 
	* bseprocedure.[hc]: added private_id field to procedure class and
	export type for multipurpose procedures.

Wed Feb  2 05:37:02 2000  Tim Janik  <timj gtk org>

	* bsepattern.[hc]:
	(bse_pattern_unselect_except): new (internal) function.

	* *.c: altered seom copyright years.

Tue Feb  1 02:35:04 2000  Tim Janik  <timj gtk org>

	* bsepattern.[hc] (bse_pattern_modify_note): disentangle note selection
	from note modifications.

	* builtin_bsepattern.c: change accordingly.

Mon Jan 31 19:09:37 2000  Tim Janik  <timj gtk org>

        * bsesongsequencer.[hc]:
        * bsesongmixer.c:
        * bsevoice.[hc]: play bsesinstrument blocks for synthesis instruments,
        we still have some fading problems here.

Thu Jan 27 19:20:45 2000  Tim Janik  <timj gtk org>

	* bsesnet.c:
	(bse_snet_remove_item): don't reset items, let BseContainer take
	care of this.

	* bseproject.c: only rprepare/reset the prject itself for playback, the
	rest is taken care off by the BseContainer implementation.

	* bsecontainer.c:
	(bse_container_prepare): prepare all BseSource children.
	(bse_container_reset): rest all BseSource children.
	(bse_container_do_add_item): prepare items if necessary.
	(bse_container_do_remove_item): reset item if necessary, clear input
	and output channels for non-container children.

Mon Jan 24 20:07:48 2000  Tim Janik  <timj gtk org>

	* bseobject.c (bse_object_queue_param_changed): do param_changed
	notification fully asyncronous from an idle handler (not only
	compressed for multiple param specs).

	* bseproject.[hc]:
	(bse_project_list_nick_paths):
	(bse_project_item_from_nick_path): new functions to list nick path of
	all items of a specific type contained in this project, and to find
	the items again from their nick paths.

	* bseitem.[hc] (bse_item_make_nick_path): create an item path made up of
	object names only.

	* bsecontainer.c: fixed uncross bug.

	* bsesongsequencer.[hc]:
	* bsesongmixer.c:
	* bsevoice.[hc]:
	recoded the voice allocation scheme, so we keep the association of
	poly voices with their original channels.
	major source cleanups, fixed a bunch of bugs.
	added support for voice inputs from other objects than samples.

	* bsesong.[hc] (bse_song_update_sequencer): provide possibility for
	external sequencer syncronization.

	* icons/mic.*:
	* bsecapture.[hc]:
        moved capturing source from plugin dir to BSE proper.
        
	* bsepattern.[hc]: s/BseNote/BsePatternNote/.
        *.[hc]: bunch of BsePatternNote fixups and signedness corrections for
        notes in general.

        * bseglobals.h:
        * bsecontainer.c:
        * bseheart.c: priority fixups.
        
Mon Jan 17 15:01:11 2000  Tim Janik  <timj gtk org>

	* bsedefs.h:
	* bsecontainer.c: provide asyncronous notification of cross-link
	changes through a "cross_changes" notifier.

	* glib-extra.[hc]: added g_slist_remove_any() to walk the whole list
	and remove items, in case an item got added twice or more times.
	added G_STRLOC macro that expands to a string, describing its current
	source file location.

	* bseitem.[hc]: supply bse_item_has_cross_owners() and
	bse_item_list_cross_owners(), the return value needs to be
	g_list_free()ed, no references are held on the items though.

	* bsecontainer.[hc]: implemented bse_container_cross_forall() to walk
	all cross references (do *not* modify the cross references during
	execution of this function).

	* bsesongmixer.c (bse_song_mixer_activate_voice): deal with NULL samples
	in instruments.

	* bsesongsequencer.c:
	* bsesongmixer.c (bse_song_mixer_fill_buffer): namespace fixups.

Mon Jan 17 12:59:16 2000  Tim Janik  <timj gtk org>

	* bsechunk.[hc]: provide bse_chunk_get_trigger_state() that returns
	whether a specified track of a chunk carries a positive trigger signal
	or not.

Mon Jan 17 11:07:16 2000  Tim Janik  <timj gtk org>

	* bsehunkmixer.h: provide BSE_CLIP_SAMPLE_VALUE().

	* bsehunkmixer.c: make use of BSE_CLIP_SAMPLE_VALUE().

	* bseglobals.h: provide BSE_MIX_FREQ_f, BSE_TRACK_LENGTH_f,
	BSE_MIX_FREQ_d and BSE_TRACK_LENGTH_d.

Sun Jan 16 06:36:54 2000  Tim Janik  <timj gtk org>

	* bsecontainer.[hc]:
	(bse_container_shutdown): destroy remaining cross references.
	(bse_container_do_remove_item): uncross item when removing it.
	(bse_container_cross_ref): install a cross reference.
	(bse_container_cross_unref): destroy a cross reference.
	(bse_container_uncross_item): destroy all cross references that
	contain item (or any of its children) and another item that
	is not part of the hirarchy branch spawned by item.

	* bseitem.[hc]:
	(bse_item_cross_ref):
	(bse_item_cross_unref): new functions to maintain cross references
	(a special kind of weak reference between two hirarchy branches)
	between items within the same project.

	* bseinstrument.c (bse_instrument_set_param): use cross references to
	keep a pointer to the sample.

Sat Jan 15 18:42:28 2000  Tim Janik  <timj gtk org>

	* bsemixer.[hc]: 
	* bsehunkmixer.[hc]: renamed bsemixer.[hc] to bsehunkmixer.[hc].
	added bse_hunk_clip_mix_buffer() and bse_mix_buffer_fill().

	* bseheart.c (bse_heart_mix_chunks): use bse_hunk_clip_mix_buffer().
	* bsesongsequencer.c (bse_song_sequencer_fill_hunk): same here.

	* bsesnet.[hc]: added master volume (finally!).

Fri Jan 14 01:11:47 2000  Tim Janik  <timj gtk org>

	* bsepcmdevice-alsa.c: added compatibility defines for ALSA lib < 0.5.0
	to alias snd_pcm_playback_drain(), snd_pcm_channel_flush() work around
	lack of snd_card_get_longname() and snd_card_get_name().
	fixed up the rest to work with 0.5.0.

Thu Jan 13 18:12:51 2000  Tim Janik  <timj gtk org>

	* bsedevice.[hc]: new object, taking over part of BsePcmDevice's
	responsibilities as its parent type.

	* bsepcmdevice.[hc]:
	* bsepcmdevice-oss.[hc]:
	* bsepcmdevice-alsa.[hc]: minor adaptions because of the hirarchy
	change.

Wed Jan 12 23:11:31 2000  Tim Janik  <timj gtk org>

	* bseplugin.[hc]: exported enum types support.

	* bseexports.h: provide support for auto-generated exported enum
	types.

	* bseenums.[hc]: provide bse_enum_type_register() and
	bse_enum_complete_info() to register exported enums.

	* bsestorage.c (bse_storage_parse_param_value): humpf, flags value
	parsing case was missing.
	(bse_storage_put_param): store enum values by names to avoid
	ambiguities.

	* mkenums.pl (parse_trigraph): allow white spaces in nick names.

Sun Jan  9 22:58:42 2000  Tim Janik  <timj gtk org>

	* mkenums.pl: enforce real trigraphs (again), so /*< skip >*/
	is recognized while /* < skip > */ is not.

	* *.h: bunch of trigraphs adapted.

Sun Jan  9 13:42:01 2000  Tim Janik  <timj gtk org>

	* bsegconfig.c (bse_gconfig_do_default_revert): 
	(bse_gconfig_revert): walk *all* classes when reverting the parameters,
	not only the topmost one.

	* bseobject.c (bse_object_do_set_name): don't pass destroy notifier when
	name == NULL.

Sun Jan  9 12:49:29 2000  Tim Janik  <timj gtk org>

	* bsegconfig.[hc]: moved the BseGConfig object from bseglobals.[hc].
	implement object functions as methods in class so they can be overridden.

	* bseglobals.[hc]: cleanups, provide private interface for BseGConfig.

	* bseenums.[hc] (bse_error_from_errno): new function to map errno values
        to BSE_ERROR_* values.

Fri Jan  7 23:15:08 2000  Tim Janik  <timj gtk org>

	* bsepcmdevice-alsa.c (bse_pcm_device_alsa_retrigger): use ALSA's
	snd_pcm_channel_go() to retrigger input and output.

	* bseheart.c (bse_heart_dispatch): be a bit laxer in overrun detection,
	i.e. allow two (+1) extra input chunks.

	* bsepcmdevice.[hc]: scratched obsolete in_playback() method.

	* bsepcmdevice-alsa.c (bse_pcm_device_alsa_setup): operate in
	non-blocking mode.

	* bsepcmdevice-alsa.c (bse_pcm_device_alsa_update_state): fixed bug,
	return amount of bytes left to write.

Tue Jan  4 20:25:44 2000  Tim Janik  <timj gtk org>

	* bsetype.[hc] (bse_type_next_base): new function that works like
	bse_type_parent() but in the opposite direction for a given
	parent<->child inheritance path.

Mon Jan  3 17:08:08 2000  Tim Janik  <timj gtk org>

	* Makefile.am: removed bseconfigpaths.h build rule.
	removed building of TAGS file for now.

Thu Dec 30 19:19:22 1999  Tim Janik  <timj gtk org>

	* bsestorage.[hc]: prefix flag values, provide one to flag default
	value storage.

	* bseobject.c (bse_object_do_store_private): save object parameters
	even if tehy default when BSE_STORAGE_PUT_DEFAULTS (storage).

Thu Dec 30 05:47:24 1999  Tim Janik  <timj gtk org>

	* bseheart.[hc] (bse_heart_unregister_all_devices): provide function to
	perform necessary cleanups after all sources got detached.

Wed Dec 29 22:41:27 1999  Tim Janik  <timj gtk org>

	* bseglobals.[hc]: added BseGConfig object that exports the BseGlobals
	values through its parameter interface, and provides notification for
	when BseGlobals are locked/unlocked.

	* bseglobals.c (bse_globals_unlock): clear up hunk/chunk memory pool
	when BseGlobals are unlocked.

	* bseheart.c: squeezy squeezy, the GSource was stealing a BseHeart ref
	count that it didn't own.

	* bsepcmdevice-oss.c (bse_pcm_device_oss_update_state): grr, the es1371
	driver in 2.3.34 can report audio_buf_info.bytes greater than
	audio_buf_info.fragsize * audio_buf_info.fragstotal, which could
	cause int wrap arounds in calculations we perform.

Wed Dec 29 14:36:17 1999  Tim Janik  <timj gtk org>

	* bseheart.[hc]: completely revised the GSource part according to
	docs/bse-heart.txt, highlights are over- and under-run detection
	with retriggering and variable latency setting.
	(bse_heart_mix_chunks): changed semantics, we unref and free the
	chunk list now and return a newly created chunk.

	* bsepcmdevice.[hc]: removed a lot of cruft such as the _iready() and
	oready() interfaces and the capture cache.
	implemented high level data processing API with input and output queues
	according to docs/bse-heart.txt. added ability to retrigger input and
	output for over-/under-run situations.
	
	* bsepcmdevice-oss.c:
	* bsepcmdevice-alsa.c: bug fixes, minor adaptions to the BsePcmDevice
	structure changes, more debug messages.

Sun Dec 26 18:51:35 1999  Tim Janik  <timj gtk org>

	* bseobject.[hc]: finally introduce a get_icon() class function and
	provide icon_changed notification if necessary.

Wed Dec 22 18:57:10 1999  Tim Janik  <timj gtk org>

	* bsepcmdevice-oss.c (bse_pcm_device_oss_open): 
	(bse_pcm_device_oss_setup): open() the device always non-blocking, since newer
	kernels apparently don't return EBUSY upon opening anymore.

Tue Dec 21 06:54:26 1999  Tim Janik  <timj gtk org>

	* bseobject.[hc] (bse_object_get_name_or_type): added convenience function.

Fri Dec 17 16:57:59 1999  Tim Janik  <timj gtk org>

	* bseparam.[hc]: added parameter nick name for GUI uses.
	* *.c: bunch of adaptions to bse_param_spec_*() calls to supply nick names.

Fri Dec 17 08:48:29 1999  Tim Janik  <timj gtk org>

	* bsemixer.[hc] (bse_hunk_fill): new function to fill a hunk with a
	value.

Thu Dec 16 10:08:25 1999  Tim Janik  <timj gtk org>

	* bseplugin.c (bse_plugin_dir_list_files): return a sorted list of
	file names.

Sun Dec 12 09:06:29 1999  Tim Janik  <timj gtk org>

	* bsesource.c (bse_source_set_input): don't calc history here,
	we do that on demand.

Sun Dec 12 04:50:19 1999  Tim Janik  <timj gtk org>

	* bsepcmdevice-oss.c (bse_pcm_device_oss_open): start playback with
	read() here already, normally select(in) should do, but that is not
	the case for pseudo-OSS drivers in the kernel.

	* bsepcmdevice-oss.c (bse_pcm_device_oss_update_caps): fixed bug with
	max_fragment_size readout, this could stop OSS card drivers from
	working if they supported all fragment sizes we check for.

	* <sigh> duplex still doesn't work correctly here, this defers further
	work until i got a new machine that *does* work in duplex mode. it's
	certainly not the fault of all the 3 soundcards and 5 drivers that i
	eventually tested here ;(

Sat Dec 11 05:34:17 1999  Tim Janik  <timj gtk org>

	* bsetype.h (BSE_DUMMY_TYPE): install a dummy type, needed when normal
	type defs had to be disabled.

	* bsepcmdevice-alsa.[hc]: first implementation of an ALSA based pcm
	driver.

Fri Dec 10 16:19:51 1999  Tim Janik  <timj gtk org>

	* bsesource.c (bse_source_default_skip_chunk): hm, changed ckip_chunk()
	semantics, reinvoking calc_chunk() doesn't really go along with
	different source cycle indices. unless we change skip_chunk() to be
	comprehensively called for all BseHeart sources before the global
	index is increased, one basically can't call ref_chunk() from
	this method.

Fri Dec 10 08:26:00 1999  Tim Janik  <timj gtk org>

	* bsesnet.c (bse_snet_reset): reset all sources that we serve
	as a container for.

	* bsesource.c: we prepare isource in two cases, for osources that
	are already prepared and get a new isource, for osources that are
	currently being prepared and have isources as input.
	we mostly do not reset sources anymore.

Thu Dec  9 23:55:00 1999  Tim Janik  <timj gtk org>

	* bsepcmdevice.[hc]:
	(bse_pcm_device_iready):
	(bse_pcm_device_oready):
	return number of writable blocks instead of just boolean.
	(bse_pcm_device_write): 
	(bse_pcm_device_read): 
	adjust left space appropriatedly.

Thu Dec  9 16:34:15 1999  Tim Janik  <timj gtk org>

	* bsesource.[hc]:
	(bse_source_do_cycle): 
	(bse_source_do_prepare): 
	(bse_source_calc_history): 
	cleanups/optimizations to the ochannel history buffer. fixed a bug
	introduced with recent cleanups that completely disabled history.
	(bse_source_do_shutdown): do proper cleanups through function calls,
	and don't reinvent the wheel all over ;)

Thu Dec  9 03:23:30 1999  Tim Janik  <timj gtk org>

	* bsesource.c (bse_source_set_input): don't allow shortcircuiting
	within the same source (BSE_ERROR_SOURCE_BAD_LOOPBACK).

	* bseenums.[hc]: BSE_ERROR_STREAM_* cleanups.

	* bsechunk.[hc]: return chunk->hunk from bse_chunk_complete_hunk() 
	for convenience.

Sat Dec  4 23:48:57 1999  Tim Janik  <timj gtk org>

	* bseproject.[hc]: added functions
	(bse_project_start_playback): retrigger playback for all supers.
	(bse_project_stop_playback): reset all currently playing supers.

	* bsesnet.c:
	(bse_snet_prepare): lock object (and globals).
	(bse_snet_reset): unlock object (and globals).

	* bsesong.c:
	(bse_song_prepare): lock object (and globals).
	(bse_song_reset): unlock object (and globals).

	* bsesongsequencer.c: no need to do locking in
	bse_song_sequencer_destroy() and bse_song_sequencer_setup() that's what
	the BseSource PREPARED state cares about.

	* bsesource.c (bse_source_reset): finally got around to implement
	this function ;)

Sat Dec  4 20:59:22 1999  Tim Janik  <timj gtk org>

	* got rid of a bunch of dead sources: bsetext.[hc], bsestream.[hc],
	bsefilestream.[hc], bsenullstream.[hc], bsepcmstream.[hc],
	bsepcmstream-oss.[hc] and bsemaster.[hc].
	removed olaf's testmixer.c, look at ../test/testmixer.bse.

Sat Dec  4 16:30:14 1999  Tim Janik  <timj gtk org>

	* bsesource.[hc]: introduce (*skip_chunk)() member function. per cycle
	we now guarrantee that either calc_chunk() or skip_chunk() gets called
	per output channel. even if no output sources are connected to this
	channel.
	(bse_source_do_prepare): 
	(bse_source_do_reset): attach/detach to from BseHeart.

Fri Dec  3 23:44:22 1999  Tim Janik  <timj gtk org>

	* bsesource.[hc]: source flag cleanups, introduced *attached flags for
	BseHeart.

	* bsemain.c (bse_parse_args): construct the debug keys from generated
	enum list.

	* *.[hc]: generic objetc flags cleanups, s/BSE_DEBUG/BSE_IF_DEBUG/.

Thu Dec  2 21:36:00 1999  Tim Janik  <timj gtk org>

	* bsesource.[hc]: removed pausing junk.
	(bse_source_do_cycle): don't cycle input sources, this is done
	centrally by BseHeart now.

	* bseheart.[hc]: added pcm device registry.

Wed Dec  1 23:53:23 1999  Tim Janik  <timj gtk org>

	* bseheart.[hc]: started out on a new bse core engine, based on
	bstmaster.[hc] and bsemaster.[hc].

	* bseenums.[hc] (BseErrorType): cleaned up some of the stream error
	enums, added device errors enums.

Wed Dec  1 22:57:24 1999  Tim Janik  <timj gtk org>
	
	* bsepcmdevice-oss.[hc]: pcm device backend for OSS (based on
	duplex.c and bsepcmstream-oss.[hc]).
	
	* bsepcmdevice.[hc]: new base type for dealing with pcm devices
	(code redesigned, based on bsestream.[hc] and bsepcmstream.[hc]).

Sat Nov 27 09:11:32 1999  Tim Janik  <timj gtk org>

	* bseobject.c (bse_object_class_init): install parasite parsers.

	* bseparasite.c:
	(store_parasite_list): 
	(parasite_parser): implemented storing/parsing abilities for parasites.

	* bseobject.[hc]: cleaned up the custom parser interface.
	(bse_object_do_try_statement): feature custom parsers.
	(bse_object_store): emit store when storing.

Sat Nov 27 05:40:45 1999  Tim Janik  <timj gtk org>

	* bsestorage.c (bse_storage_flush_fd): terminate with newline if we
	don't have binary data.

	* bsesource.c:
	(bse_source_do_store_private): store input links here.
	(bse_source_do_restore_private): restore input links (deferred until
	project emits complete_restore).

	* bsesource.[hc]: new functions bse_source_get_ochannel_id and
	bse_source_get_ichannel_id to get channel ids from their names.

	* bseproject.c (bse_project_restore): emit complete_restore upon
	completion.

	* bsecontainer.c (bse_container_store_termination): eeek, need to chain
	parent class handler here.

Tue Nov 23 23:55:49 1999  Tim Janik  <timj gtk org>

	* bseparasite.[hc]: started parasite implementation. only floats
	are featured currently, and we need saving/parsing hooks.

	* bseobject.[hc] (bse_object_kill_qdata_no_notify): remove a certain
	data poriotn without notification.

Sat Nov 20 12:27:21 1999  Tim Janik  <timj gtk org>

	* bseparam.h (BseParamBits): added BSE_PARAM_HINT_RADIO.

	* bseutils.[hc]: added bse_note_from_freq(), bse_note_to_freq() and
	bse_note_to_tuned_freq(), we use the constants from bseglobals.c.

	* bseglobals.h (BSE_MAX_NOTE): changed this to 123=dis+7=19912.127Hz,
	so we stay below BSE_MAX_OSC_FREQ_d (and below 22050).
	added BSE_MAX_OSC_FREQ_d=20000 and BSE_MIN_OSC_FREQ_d=1/20000.

	* bseglobals.c (BSE_LN_OF_2_RAISED_TO_1_OVER_12_d): added constant for
	ln(2^(1/12)).

	* bsesource.c (bse_source_do_reset): 
	* bsesource.c (bse_source_init): default initialize ->index with 0 not
	-1, so we are always greater than ->start.

Sun Nov 14 19:44:51 1999  Tim Janik  <timj gtk org>

	* bseglobals.h: eeeek, bad change necessary: BSE_KAMMER_NOTE is actually
	A' not A-0, and it's MIDI code is actually 57, not 69. this displaces
	all saved songs by one octave, but there are hopefully not too much of
	them out there yet ;)

Sun Nov 14 05:52:23 1999  Tim Janik  <timj gtk org>

	* bsesnet.c (bse_snet_calc_chunk): use bse_hunk_mix () to do the
	mixing for us.

	* bsemixer.c (bse_hunk_mix): don't multiply added values of a qualified
	pointer with sizeof (*pointer).

Sun Nov 14 05:28:37 1999  Tim Janik  <timj gtk org>

	* bsepcmstream-oss.c (pcm_stream_oss_open_dsp): disable duplex for now.

	* bsedefs.h: make sure we have PI, BSE_MAX_SAMPLE_VALUE and
	BSE_MIN_SAMPLE_VALUE defined. oh, and i recently added BSE_EPSILON
	and BSE_EPSILON_CMP to provide generic double/float comparision
	against a certain quantity (BSE_EPSILON=1e-6).

Sat Nov 13 04:40:45 1999  Tim Janik  <timj gtk org>

	* bsepcmstream-oss.c: reordered stuff so initialization actually works
	with OSS as well.

Fri Nov 12 04:41:59 1999  Tim Janik  <timj gtk org>

	* bsemixer.[hc]: new files to cover common mixing requirements for
	hunks (maybe also generic buffers at a later point).
	this file is a good candidate to get partly generated upon compilation
	time in the future.

	* bsechunk.c (bse_hunk_free): reordered arguments so n_tracks comes
	always first.
	(bse_hunk_copy): same here.

Fri Nov 10 16:04:08 1999  Tim Janik  <timj gtk org>

	* bseenums.[hc]: minor fixes/additions to BSE_ERROR_ enum values.

	* bsepcmstream-oss.c: use new BSE_ERROR_ enum values.

Mon Nov  8 22:09:49 1999  Tim Janik  <timj gtk org>

	* bsepcmstream-oss.c (pcm_stream_oss_open_dsp): set blocking behaviour
	prior to any ioctl()s.
	(pcm_stream_oss_set_dsp): set BSE_PCMSA_FRAGMENT_SIZE right at the
	beginning (probably still not enough for OSS).

Mon Nov  8 02:42:44 1999  Tim Janik  <timj gtk org>

	* bsepcmstream.[hc]: 
	* bsepcmstream-oss.c: added an incredibly bad hack for the microphone
	source to plugin. this does give me the opportunity to test stuff untill
	the pcm side is redesigned.

Mon Nov  8 02:01:31 1999  Tim Janik  <timj gtk org>

	* bseobject.h (BSE_NOTIFY): don't notify objects that are destroyed.
	* bseobject.c (bse_object_do_shutdown): notify object of ::destroy,
	allthough it is of course destroyed (prevent the BSE_NOTIFY()
	sanity check for destroyed objects in this case).

	* bsesnet.[hc]: make the sole input channel we have a multi track
	channel (well, actually only stereo for the moment).
	(bse_snet_calc_chunk): mix input hunk to stereo if necessary.

	* bsesource.[hc]: added max_n_tracks field to BseSourceIChannelDef.
	enforced further usage of the BSE_SOURCE_*() macros, instead of direct
	class usage. renamed the class-> ichannels and ochannels fields to
	ichannel_defs and ochannel_defs to keep distinction to the ->ochannels
	member in sources (and because these are actually *definitions* only).
	moved BseSourceInput ->history field, this actually belongs into the
	BseSourceIChannelDef structure.
	got rid of the history argument to bse_source_set_input() and the
	->add_input() member function that way.
	made BSE_SOURCE_ICHANNEL_DEF() and BSE_SOURCE_OCHANNEL_DEF() return
	pointers.
	(bse_source_ref_state_chunk):
	(bse_source_ref_chunk): reduced code duplication by moving 98% percent
	of the code into an inlined bse_source_fetch_chunk().
	(bse_source_fetch_chunk): guard against negative indices.
	(bse_source_do_prepare): recalc history for all output channels.
	(bse_source_do_remove_input): notify the output source about io_changed.
	(bse_source_get_input): new function to return input handle for a given
	channel.

	* bseenums.[hc]: added BSE_ERROR_SOURCE_TOO_MANY_OTRACKS
	error case.

Sun Nov  7 08:12:21 1999  Tim Janik  <timj gtk org>

	* bsesnet.c (N_RAND_BLOCKS): uhg, don't kill my speakers with that
	test sound.

Sun Nov  7 03:05:39 1999  Tim Janik  <timj gtk org>

	* bsesnet.[hc]: create a mono input channel.

Sat Nov  6 19:21:06 1999  Tim Janik  <timj gtk org>

	* bsesource.c: notify outside world when input/output channels got
	added/removed. we simply notify "io_changed" in this case for now.

	* bseobject.c (bse_object_do_destroy): squeezed a bug that had been
	causing random crashes recently. basically, we left invalid pointers
	in the object name hash table.

Sat Nov  6 05:55:59 1999  Tim Janik  <timj gtk org>

	* icons/snet.xcf: 
	* icons/snet.c: slight color change.

Fri Nov  5 04:49:05 1999  Tim Janik  <timj gtk org>

	* bsesnet.[hc]: added necessary bits to serve as output source.

	* bsechunk.[hc] (bse_hunk_copy): new function to alloc a new hunk filled
	with sample data.

	* bsesource.h:
	renamed BSE_SOURCE_ICHANNEL() to BSE_SOURCE_ICHANNEL_DEF() and
	renamed BSE_SOURCE_OCHANNEL() to BSE_SOURCE_OCHANNEL_DEF().
	introduced BSE_SOURCE_OCHANNEL() to return a pointer to the source's
	output channel connection.

	* bsesource.c: pass normal ochannel_ids to calc_history as well,
	instead of hackery 0-starting indices. use BSE_SOURCE_OCHANNEL() over
	the place, instead of direct strcuture member adressing.

Wed Nov  3 21:50:38 1999  Tim Janik  <timj gtk org>

	* bseenums.[hc]: don't return const strings, this is extremely annoying.

	* bseplugin.c (bse_plugin_get_export_spec): fixed a bad bad bug here,
	we were walking the export specs by sizeof(BseExportSpec) instead of
	the appropriate sizeof(BseExportObject) or sizeof(BseExportProcedure),
	depending on what type of specs we actually handle. this led to only
	the first type being recognized (which was moderatedly mild, could
	have insanely crashed instead ;).

Wed Nov  3 20:05:14 1999  Tim Janik  <timj gtk org>

	* bsecategories.c (bse_categories_register_icon): category icons stay
	alive throughout a program's life time.

	* bseobject.c (bse_object_get_icon): removed icon cruft from object
	class and simply provided bse_object_get_icon(). there might be a
	notifier someday to indicate that an object's icon should get
	refetched.

	* bseutils.h: provide simple refcounting functions for BseIcons,
	facilitate permanent icon ref_counts.

Sun Oct 31 16:20:49 1999  Tim Janik  <timj gtk org>

	* bsestorage.c (bse_storage_parse_bin_data): eeek, fixed a bad bad bug.
	we weren't saving/restoring the current parsing position around binary
	block reads.
	(bse_storage_ensure_bin_offset): 
	(bse_storage_restore_offset): retrieve/restore current file offset.

Fri Oct 29 11:27:47 1999  Tim Janik  <timj gtk org>

	* bseplugin.c: minor const correctness fixes.

Fri Oct 15 02:09:24 1999  Tim Janik  <timj gtk org>

	* bsemain.c (bse_parse_args): added --bse-debug and --bse-no-debug args
	and featuring of BSE_DEBUG and BSE_NO_DEBUG environment variables.

	* bseobject.c: wrapped up NOTIFY and OBJECTS debugging stuff.

	* bsetype.c: wrapped up CLASSES debugging stuff.

Fri Oct 15 00:20:30 1999  Tim Janik  <timj gtk org>

	* icons/Makefile.am: 
	* icons/Makefile.icons: setup ./icons subdirectory.

Fri Oct 15 00:00:41 1999  Tim Janik  <timj gtk org>

	* bsesnet.c: add category with ugly test-icon for an internal object.

Thu Oct 14 23:28:27 1999  Tim Janik  <timj gtk org>

	* bseutils.[hc]: added bse_icon_from_pixdata() to create a new icon
	structure from a pixdata buffer (and decode the run-length encoding).

Wed Oct 13 06:05:55 1999  Tim Janik  <timj gtk org>

	* Makefile.am: adapted some stuff so loging domains and fallback
	plugin names are featured for builtin plugins as well.

Tue Oct 12 20:15:34 1999  Tim Janik  <timj gtk org>

	* bseplugin.[hc]: recognize predefined plugin names, only evaluate
	plugin-name specification for strings for builtin_* plugins, create
	their symbols from their underscored file name.
	removed some export stuff.
	added object type support for plugins.

	* bseexports.h: moved lots of new stuff here, fixed up object types.

	* mkbuiltinlist.pl: output the actuall file name of builtin plugins
	as symbol part (with non-identifier chars converted into '_').

Fri Oct 8 15:04:40 1999  Tim Janik  <timj gtk org>

	* bseprocedure.[hc]: removed proecedure category implementation,
	adapted code to work with bsecategories.[hc].

Thu Oct  7 00:17:38 1999  Tim Janik  <timj gtk org>

	* glib-extra.[hc]:
	nuked g_pattern_spec_init() and g_pattern_spec_free_segs() in favour of
	g_pattern_spec_new() and g_pattern_spec_free() which create and free a
	newly allocated structure. also cleverly optimized g_pattern_spec_new()
	by counting tail and head wildcards and jokers. from these numbers, we
	can make better judgement whether to match from tail or head and also
	got rid of a bunch of strchr() calls.

Wed Oct  6 23:53:07 1999  Tim Janik  <timj gtk org>

	* bsecategories.[hc]: new files, implementing a more general
	categorization approach. intended to take over the procedure category
	administration and feature object categories as well (see also
	docs/bse-categories.txt on this topic).

Tue Oct  5 13:49:57 1999  Tim Janik  <timj gtk org>

	* bseexports.h: added export structure for objects.
	* bseplugin.h: extended macro magic to feature object types.
	* bseplugin.c: register, reinit, unload and complete exported
	and builtin object types.

Fri Oct  1 07:29:32 1999  Tim Janik  <timj gtk org>

	* bsemaster.c (bse_master_do_cycle): added ability to mix multiple
	stereo songs together.

	* some const corrections.

Thu Sep 30 09:18:58 1999  Tim Janik  <timj gtk org>

	* bsesample.c (bse_sample_do_shutdown): 
	* bsepattern.c (bse_pattern_do_shutdown): 
	* bseinstrument.c (bse_instrument_do_shutdown): 
	* bsesong.c (bse_song_do_shutdown): 
	* bseproject.c (bse_project_do_shutdown):
	remove/release items/objects in shutdown handler, rather than destroy.

	* bseobject.c (bse_object_unlock): release global lock *after* the
	->unlocked class method has been invoked.

	* bseobject.[hc]: changed destruction mechanism to using an intermediate
	->shutdown method. this eases class destruction, shutdown is invoked
	prior to the object's destroy notification and one ref_count is at least
	being held. once the final reference count dropps, the ->destroy method
	is actually invoked.
	(bse_object_set_valist): 
	(bse_object_set_param): check for non-destroyed object first.

	* bsecontainer.[hc] (bse_container_add_item_unrefed): new function for
	containers to manage (non-destroyed) items, without holding an extra
	ref count on them, we use destroy notification from BseItem for cleanup.

	* bseitem.c (bse_item_do_shutdown): remove item from container in
	->shutdown instead of ->destroy.

	* bsesource.c: added some !destroyed checks.
	(bse_source_do_shutdown): use ->shutdown instead of ->destroy.

Sat Sep 27 12:30:02 1999  Tim Janik  <timj gtk org>

	* bsesnet.[hc]: new super type to manage source networks (skeleton
	only).

Wed Sep 22 06:24:00 1999  Tim Janik  <timj gtk org>

	* bsetype.[hc]: lots of code cleanups and bug fixes over the last few
	days. significantly changed allocation system, so TypeNodes are not
	themselves relocatable anymore (certain structure parts are though).
	nodes get allocated with their supers list in one piece now.

Thu Sep 16 09:14:19 1999  Tim Janik  <timj gtk org>

	* bsetype.[hc]: started out on bse_type_class_lastref() as a
	preparation for delayed destruction.
	we need to catch FIXMEs.

Mon Sep 13 05:19:17 1999  Tim Janik  <timj gtk org>

	* Makefile.am: minor autogeneration fixups, use cp instead of mv.

1999-06-03    <timj dhcpd7 redhat com>

	* bsesong.c: fix typo.

1999-05-31    <timj dhcpd7 redhat com>

	* bsepcmstream-oss.c (pcm_stream_oss_set_dsp): ignore failing fragment
	size settigns for now, so we work with the OSS driver.
	
1999-05-28  Tim Janik  <timj couch wilmington net>

	* bsepattern.c (save_note): don't prefix seq ids with an 0, which
	would make them octal nombers.

Mon May 17 02:52:49 1999  Tim Janik  <timj gtk org>

	* bunch of Makefile and configure changes so make distcheck works.
	BSE is version 0.2.0 now.

Sat May 15 23:23:05 1999  Tim Janik  <timj gtk org>

	* bsesongmixer.c (bse_mixer_activate_voice): don't set notes on inactive
	voices.

Wed May  5 09:16:41 1999  Tim Janik  <timj gtk org>

	* bseeffect*.[hc]: started out on effect objects, they are fairly
	lightweight (and somewhat uncommon) objects, in that they are managed
	by BsePattern and in principle serve as simple operators and id
	containers only. the reason to implement them as real objects, rather
	than plain auxillary structures is to provide the convenient BseObject
	facilities, i.e. a generalized parameter interface for GUI generation
	and state restauration as well as basic locking facilities during
	playing.
	next step is to featured effects in the song sequencer.

Wed May  4 16:43:45 1999  Tim Janik  <timj gtk org>

	* nuked inappropriate ChangeLog stuff (about 15 entries over the
	last year). To sum it up, BSE implements its own type system now,
	which features a bunch of different fundamental types, e.g. the
	generic parameters, enumeration and flags classes, objects with
	single inheritance, multiple interfaces and procedure classes.
	the generic parameter interface is used to route most of the setting
	and getting of BSE objects through a central point, which serves for
	object state recording to implement undo facilities and to serialize
	objects (though there are some tweaks to that since we have to feature
	inter-object links in the trees). the type system is layed out in a
	dynamic fashion, so that new types can be registerd by third party
	plugins and get their implementation loaded (and unloaded) on demand.
	the basic infra structure for modular synthesis sources and filters
	is also in place, though BseSong doesn't currently integrate very
	nicely into that and it deserves some serious testing.

Tue Mar 24 04:28:26 1998  Tim Janik  <timj gtk org>

	* started ChangeLog.


Modified:
   trunk/bse/ChangeLog
   trunk/bse/bsecxxplugin.hh
   trunk/bse/bseloader-guspatch.cc
   trunk/bse/bseprocidl.cc
   trunk/bse/bseresamplerimpl.hh
   trunk/bse/bsesequencer.cc
   trunk/bse/tests/filtertest.cc
   trunk/bse/tests/firhandle.cc
   trunk/bse/tests/resamplehandle.cc

Modified: trunk/bse/bsecxxplugin.hh
==============================================================================
--- trunk/bse/bsecxxplugin.hh	(original)
+++ trunk/bse/bsecxxplugin.hh	Thu Jun 12 10:37:17 2008
@@ -55,7 +55,7 @@
 #define BSE_CXX_REGISTER_STATIC_HOOK(HookType)  BSE_CXX_REGISTER_HOOK_NODE (HookType, 1)
 #define BSE_CXX_REGISTER_HOOK_NODE(HookType, __static)                  \
   template<class E> static BseExportNode* bse_export_node ();           \
-  template<> static BseExportNode*                                      \
+  template<> BseExportNode*                                             \
   bse_export_node<HookType> ()                                          \
   {                                                                     \
     static BseExportNodeHook hnode = {                                  \
@@ -90,7 +90,7 @@
   (::NameSpace::bse_type_keeper__3##EnumType.get_type ())
 #define BSE_CXX_DECLARE_ENUM(EnumType,EnumName,N,ICode)                 \
   template<class E> static BseExportNode* bse_export_node ();           \
-  template<> static BseExportNode*                                      \
+  template<> BseExportNode*                                             \
   bse_export_node<EnumType> ()                                          \
   {                                                                     \
     static BseExportNodeEnum enode = {                                  \
@@ -144,7 +144,7 @@
   (::NameSpace::bse_type_keeper__1##RecordType.get_type ())
 #define BSE_CXX_DECLARE_RECORD(RecordType)                              \
   template<class E> static BseExportNode* bse_export_node ();           \
-  template<> static BseExportNode*                                      \
+  template<> BseExportNode*                                             \
   bse_export_node<RecordType> ()                                        \
   {                                                                     \
     static BseExportNodeBoxed bnode = {                                 \
@@ -180,7 +180,7 @@
   (::NameSpace::bse_type_keeper__2##SequenceType.get_type ())
 #define BSE_CXX_DECLARE_SEQUENCE(SequenceType)                                  \
   template<class E> static BseExportNode* bse_export_node ();                   \
-  template<> static BseExportNode*                                              \
+  template<> BseExportNode*                                                     \
   bse_export_node<SequenceType> ()                                              \
   {                                                                             \
     static BseExportNodeBoxed bnode = {                                         \
@@ -218,7 +218,7 @@
   extern ::Bse::ExportTypeKeeper bse_type_keeper__9##ProcType;
 #define BSE_CXX_REGISTER_PROCEDURE(ProcType)                                    \
   template<class C> static ::BseExportNode* bse_export_node ();                 \
-  template<> static ::BseExportNode*                                            \
+  template<> ::BseExportNode*                                                   \
   bse_export_node<Procedure::ProcType> ()                                       \
   {                                                                             \
     static ::BseExportNodeProc pnode = {                                        \
@@ -258,7 +258,7 @@
 #define BSE_CXX_REGISTER_EFFECT(Effect)                                         \
   BSE_CXX_DEFINE_STATIC_DATA (Effect##Base);                                    \
   template<class C> static ::BseExportNode* bse_export_node ();                 \
-  template<> static ::BseExportNode*                                            \
+  template<> ::BseExportNode*                                                   \
   bse_export_node<Effect> ()                                                    \
   {                                                                             \
     static ::BseExportNodeClass cnode = {                                       \

Modified: trunk/bse/bseloader-guspatch.cc
==============================================================================
--- trunk/bse/bseloader-guspatch.cc	(original)
+++ trunk/bse/bseloader-guspatch.cc	Thu Jun 12 10:37:17 2008
@@ -18,6 +18,7 @@
 #include "bseloader.h"
 #include <stdio.h>
 #include <errno.h>
+#include <string.h>
 #include <vector>
 #include <string>
 

Modified: trunk/bse/bseprocidl.cc
==============================================================================
--- trunk/bse/bseprocidl.cc	(original)
+++ trunk/bse/bseprocidl.cc	Thu Jun 12 10:37:17 2008
@@ -20,6 +20,7 @@
 #include "bseglue.h"
 #include <sfi/sfiglue.h>
 #include <stdio.h>
+#include <string.h>
 #include <string>
 #include <set>
 

Modified: trunk/bse/bseresamplerimpl.hh
==============================================================================
--- trunk/bse/bseresamplerimpl.hh	(original)
+++ trunk/bse/bseresamplerimpl.hh	Thu Jun 12 10:37:17 2008
@@ -21,6 +21,8 @@
 #include <bse/bseresampler.hh>
 #include <birnet/birnet.hh>
 #include <math.h>
+#include <string.h>
+#include <stdlib.h>
 #ifdef __SSE__
 #include <xmmintrin.h>
 #endif

Modified: trunk/bse/bsesequencer.cc
==============================================================================
--- trunk/bse/bsesequencer.cc	(original)
+++ trunk/bse/bsesequencer.cc	Thu Jun 12 10:37:17 2008
@@ -28,6 +28,7 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>
+#include <string.h>
 #include <vector>
 
 /* due to a linker/compiler bug on SuSE 9.2, we need to

Modified: trunk/bse/tests/filtertest.cc
==============================================================================
--- trunk/bse/tests/filtertest.cc	(original)
+++ trunk/bse/tests/filtertest.cc	Thu Jun 12 10:37:17 2008
@@ -23,6 +23,7 @@
 #include <bse/bseglobals.h> // FIXME
 #include "topconfig.h"
 #include <math.h>
+#include <stdlib.h>
 #include <complex>
 
 typedef std::complex<double> Complex;

Modified: trunk/bse/tests/firhandle.cc
==============================================================================
--- trunk/bse/tests/firhandle.cc	(original)
+++ trunk/bse/tests/firhandle.cc	Thu Jun 12 10:37:17 2008
@@ -22,6 +22,7 @@
 #include <bse/bsemain.h>
 #include "topconfig.h"
 #include <math.h>
+#include <stdlib.h>
 #include <complex>
 #include <vector>
 

Modified: trunk/bse/tests/resamplehandle.cc
==============================================================================
--- trunk/bse/tests/resamplehandle.cc	(original)
+++ trunk/bse/tests/resamplehandle.cc	Thu Jun 12 10:37:17 2008
@@ -21,6 +21,7 @@
 #include <sfi/sfitests.h>
 #include <bse/gsldatautils.h>
 #include <bse/bseblockutils.hh>
+#include <stdlib.h>
 #include <vector>
 
 using std::vector;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]