beast r4479 - in trunk/bse: . tests
- From: stw svn gnome org
- To: svn-commits-list gnome org
- Subject: beast r4479 - in trunk/bse: . tests
- Date: Thu, 12 Jun 2008 10:37:17 +0000 (UTC)
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]