/[svn]/linuxsampler/trunk/src/engines/gig
ViewVC logotype

Log of /linuxsampler/trunk/src/engines/gig

View Directory Listing Directory Listing


Sticky Revision:

Revision 3655 - Directory Listing
Modified Fri Dec 13 17:14:48 2019 UTC (4 years, 4 months ago) by schoenebeck
* gig engine: Fixed cutoff controller handling for new filter types.

* Bumped version (2.1.1.svn25).


Revision 3652 - Directory Listing
Modified Wed Dec 11 11:10:24 2019 UTC (4 years, 4 months ago) by schoenebeck
- Just minor comment correction.


Revision 3646 - Directory Listing
Modified Sun Dec 8 23:17:34 2019 UTC (4 years, 4 months ago) by schoenebeck
* gig format extension: Support for additional filter types:
  lowpass 1/2/4/6-pole, highpass 1/2/4/6-pole, bandpass 2-pole,
  bandreject 2-pole.

* Bumped version (2.1.1.svn24).


Revision 3638 - Directory Listing
Modified Fri Oct 25 17:08:46 2019 UTC (4 years, 6 months ago) by schoenebeck
Use #if instead of #ifdef for boolean preprocessor configs.


Revision 3628 - Directory Listing
Modified Sat Oct 5 14:37:31 2019 UTC (4 years, 6 months ago) by schoenebeck
Fixed issues with recently added compile-time sanity checks.


Revision 3626 - Directory Listing
Modified Thu Oct 3 14:40:17 2019 UTC (4 years, 6 months ago) by schoenebeck
Just added some compile-time sanity checks
(for enum ::gig::lfo_wave_t to match enum LFO::wave_t).


Revision 3625 - Directory Listing
Modified Thu Oct 3 13:37:25 2019 UTC (4 years, 6 months ago) by schoenebeck
* gig format extension: Added support for different LFO wave forms
  (currently either sine [default], triangle, saw or square).

* gig format extension: Added support for LFO phase displacement
  (0°..360°).

* gig format extension: Added support for flipping LFO polarity on LFO 3
  (in the original gig format this was only available for LFO 1 and LFO 2).

* Bumped version (2.1.1.svn22).


Revision 3615 - Directory Listing
Modified Tue Oct 1 09:49:08 2019 UTC (4 years, 6 months ago) by schoenebeck
* Gig engine: changed LFO start levels; LFO1 and LFO2 both to mid,
  LFO3 to max. start level (see discussion "GigaStudio LFO  
  compatibility" on mailing list from 2019-09-26 for details).
* Bumped version (2.1.1.svn20).


Revision 3612 - Directory Listing
Modified Mon Sep 30 18:03:43 2019 UTC (4 years, 6 months ago) by schoenebeck
Added new LFO implementations:

* Added int math square LFO implementation.

* Added int math saw LFO implementation.

* Added numeric complex nr sine LFO implementation.

* Added public API C++ class "LFO", which is a cluster class
  encapsulating all the sampler's LFO implementations to be used by
  3rd party applications (e.g. by Gigedit).

* Marked class LFOTriangleDiHarmonic as deprecated
  (will be removed in future).

* Added LFOAll.h which includes all LFO implementation's header files.

* Fixed benchmarks/triang.cpp falsely having favoured "int math abs"
  algorithm (since result of 2nd run was not accumulated).

* Added benchmark for saw wave (benchmarks/saw.cpp).

* Added benchmark for sine wave (benchmarks/sine.cpp).

* Added benchmark for square wave (benchmarks/square.cpp).

* Increased amount of benchmarks runs by factor 6 to achieve benchmark
  times which are large enough on modern systems.

* Cleanup of LFO APIs.

* Bumped version (2.1.1.svn18).


Revision 3588 - Directory Listing
Modified Sun Sep 1 16:06:48 2019 UTC (4 years, 7 months ago) by schoenebeck
NKSP: Built-in instrument functions fixes & hardening:

* Fixed the following built-in functions having misinterpreted values given
  with unit type (for their 2nd argument) as if they were relative values
  (that is as if they were passed without a unit type): "change_attack()",
  "change_decay()", "change_release()", "change_cutoff_attack()",
  "change_cutoff_decay()", "change_cutoff_release()".

* Fixed the following built-in functions having applied completely wrong
  'final' values: "change_sustain()", "change_cutoff_sustain()" (since the
  respective EGs being their modulation sink assume uint data type with
  value range 0..1000 instead of 0.0..1.0.

* Added individual parse-time checks of function arguments for the following
  built-in functions: "play_note()", "note_off()", "set_event_mark()",
  "delete_event_mark()", "by_marks()", "change_cutoff()", "change_attack()",
  "change_decay()", "change_release()", "change_cutoff_attack()",
  "change_cutoff_decay()", "change_cutoff_release()",
  "change_amp_lfo_freq()", "change_cutoff_lfo_freq()",
  "change_pitch_lfo_freq()", "change_vol_time()", "change_tune_time()" and
  "change_pan_time()".

* Don't abort function call if unit type was used and at the same time
  'final' operator was omitted for the primary value argument of the
  following built-in functions: "change_cutoff()", "change_attack()",
  "change_decay()", "change_release()", "change_cutoff_attack()",
  "change_cutoff_decay()", "change_cutoff_release()",
  "change_amp_lfo_freq()", "change_cutoff_lfo_freq()",
  "change_pitch_lfo_freq()", "change_vol_time()", "change_tune_time()",
  "change_pan_time()", instead imply 'final'ness at runtime and raise an
  appropriate parser warning at parse time.

* Bumped version (2.1.1.svn13).


Revision 3585 - Directory Listing
Modified Fri Aug 30 17:51:24 2019 UTC (4 years, 7 months ago) by schoenebeck
NKSP: Cleanup regarding multiple data types for built-in function args.

* NKSP VM API cleanup: Get rid of legacy method
  VMFunction::argType(vmint iArg) which was already superseded by its new
  replacement VMFunction::acceptsArgType(vmint iArg, ExprType_t type).

* NKSP parser: if wrong argument type was passed to a built-in function and
  that built-in function accepts more than one data type for the argument,
  then show all supported data types as parser error message.

* Bumped version (2.1.1.svn10).


Revision 3581 - Directory Listing
Modified Fri Aug 30 11:40:25 2019 UTC (4 years, 7 months ago) by schoenebeck
NKSP: Allow more wider support of standard measuring units & 'final'ness.

* Raised compiler requirement to be C++14 compliant (due to severe
  restrictions regarding C-style aggregate initializer lists in C++11
  which are now massively used throughout the code base).

* NKSP VM API: Allow units and 'final'ness to be returned as result from
  built-in functions (added methods VMFunction::returnUnitType() and
  VMFunction::returnsFinal() for that purpose which must be implemented by
  built-in function implementations).

* NKSP language: Allow metric unit prefixes of numeric scalar and array
  variables to be changed freely at runtime (unlike unit types like Hz etc.
  which are still sticky parse-time features of variables which cannot be
  changed at runtime for the intentional sake of determinism).

* NKSP language: 'final' values are prohibited for array variables for now
  (attempt causes a parsers error).

* NKSP language: expressions with unit types (e.g. Hz) are prohibited for
  conditions of runtime control structures like if(), while(), select()
  (attempt causes a parser error).

* NKSP VM API: Allow built-in functions to perform their own, individual
  parse time checks of arguments going to be passed to the function at
  runtime (added method VMFunction::checkArgs() for that purpose).

* NKSP language: raise parser warning if only one operand of binary
  operators (like logical 'or' comparison) contain a 'final' value (because
  it would always yield in a 'final' result in such cases).

* NKSP language: Allow comparison (=, #, <, >, <=, >=) of values with
  different metric unit prefixes, which will behave as expected (e.g.
  result of expression '1000us < 2ms' is true).

* NKSP language: Allow adding values with different metric unit prefixes
  (e.g. result of expression '100Hz + 5kHz' is '5100Hz').

* NKSP language: Allow subtracting values with different metric unit
  prefixes (e.g. result of expression '1ms - 20us' is '980us').

* NKSP language: Allow multiplying with any metric unit prefixes
  (e.g. result of expression '2k * 3ms' is '6s'), however multiplications
  with unit types on both sides (e.g. '2s * 2s') is still prohibited since
  we don't have any considerable practical use for a term like '4s^2'
  (hence any attempt multiplying two unit types still causes parser error).

* NKSP language: Allow dividing by any metric unit prefixes and allow
  division of same unit type on both sides (e.g. expression '8kHz / 1000Hz'
  yields in unit free result '8'). So this is now a way to cast units away
  e.g. for passing the result to other expressions, certain function calls
  or variables which are not accepting any units (or that specific unit).

* NKSP language: integer arrays and real number arrays can now be converted
  to strings (e.g. for dumping their content with message() calls for
  script debugging purposes).

* NKSP language: expressions and variables with units are now correctly
  casted to strings (e.g. with message() calls).

* NKSP language: comparing real numbers for equalness (e.g. '~foo = 3.1') or
  unequalness (e.g. '~foo # 3.1') is now less strict and takes the expected
  floating point tolerances into account.

* NKSP VM API: Added methods VMScalarNumberExpr::evalCastInt() and
  VMScalarNumberExpr::evalCastReal().

* NKSP VM API: Added base class 'VMNumberArrayExpr' for classes
  'VMIntArrayExpr' and 'VMRealArrayExpr'.

* NKSP VM API: replaced all unitPrefix() (parse time) methods by
  unitFactor() (runtime) methods.

* Built-in function "exit()" supports now returning units and 'final'ness
  exclusively for test cases.

* The following built-in functions support now units as well: "abs()",
  "random()", "inc()", "dec()", "in_range()", "min()", "max()",
  "real_to_int()", "int()", "int_to_real()" and "real()".

* Built-in functions "array_equal()", "search()" and "sort()" support now
  real number arrays (correctly) as well.

* Added individual parse time checks of arguments to be passed to built-in
  functions "random()", "inc()", "dec()", "in_range()", "min()", "max()",
  "array_equal()" and "search()" specific for their individual purposes.

* Test cases: Added massive amount of NKSP test cases for standard
  measuring units and 'final' operator usage cases.

* Test cases: Added NKSP test cases for (floating point tolerance aware)
  real number equalness / unequalness comparison.

* Bumped version (2.1.1.svn8).


Revision 3561 - Directory Listing
Modified Fri Aug 23 11:44:00 2019 UTC (4 years, 8 months ago) by schoenebeck
NKSP: Added standard units support for numbers and final "!" operator:

* NKSP strictness: Variable names, function names and preprocessor condition
  names must start with a regular character (a-z or A-Z); starting them with
  a digit or underscore is no longer allowed.

* NKSP parser fix: equal comparison operator "=" and not equal comparison
  operator "#" must only accept integer operands.

* NKSP language: Implemented support for standard units like Hertz, seconds,
  Bel including support for metric unit prefixes; so one can now e.g.
  conveniently use numbers in scripts like "5us" meaning "5 microseconds",
  or e.g. "12kHz" meaning "12 kilo Hertz", or e.g. "-14mdB" meaning
  "minus 14 Millidecibel", or e.g. "28c" meaning "28 cents" (for tuning).

* NKSP language: Introduced "final" operator "!" which is specifically
  intended for synthesis parameter values to denote that the synthesis
  parameter value is intended to be the "final" value for that synthesis
  parameter that should explicitly be used by the engine and thus causing
  the sampler engine to ignore all other modulation sources for the same
  synthesis parameter (like e.g. LFO, EG); by simply prefixing a value,
  variable or formula with this new "!" operator the expression is marked as
  being "final".

* Bumped version (2.1.1.svn4).


Revision 3557 - Directory Listing
Modified Sun Aug 18 00:06:04 2019 UTC (4 years, 8 months ago) by schoenebeck
* NKSP: Introducing 64 bit support for NKSP integer scripts
  variables (declare $foo).
* Require C++11 compiler support.
* Autoconf: Added m4/ax_cxx_compile_stdcxx.m4 macro which is used
  for checking in configure for C++11 support (as mandatory
  requirement) and automatically adds compiler argument if required
  (e.g. -std=C++11).
* Bumped version (2.1.1.svn3).


Revision 3455 - Directory Listing
Modified Sun Jan 27 10:07:54 2019 UTC (5 years, 2 months ago) by persson
* Fixed some compiler warnings
* Fixed compilation error when cross-compiling to Mac


Revision 3448 - Directory Listing
Modified Sun Dec 23 22:10:56 2018 UTC (5 years, 4 months ago) by schoenebeck
* Gig format extension: If requested by instrument then don't play
  release trigger sample on note-off events.
* Bumped version (2.1.0.svn3).


Revision 3444 - Directory Listing
Modified Sun Dec 23 19:32:11 2018 UTC (5 years, 4 months ago) by schoenebeck
* Only play release trigger samples on sustain pedal up if this behaviour
  was explicitly requested by the instrument (otherwise only on note-off).
* Bumped version (2.1.0.svn2).


Revision 3360 - Directory Listing
Modified Fri Oct 27 21:19:18 2017 UTC (6 years, 5 months ago) by schoenebeck
* NKSP: Added built-in script function "change_cutoff_attack()".
* NKSP: Added built-in script function "change_cutoff_decay()".
* NKSP: Added built-in script function "change_cutoff_sustain()".
* NKSP: Added built-in script function "change_cutoff_release()".
* NKSP: Added built-in script function "change_cutoff_lfo_depth()".
* NKSP: Added built-in script function "change_cutoff_lfo_freq()".
* Bumped version (2.0.0.svn77).


Revision 3331 - Directory Listing
Modified Sun Jul 23 18:56:37 2017 UTC (6 years, 9 months ago) by schoenebeck
- Fixed compilation error.


Revision 3328 - Directory Listing
Modified Sun Jul 23 18:27:29 2017 UTC (6 years, 9 months ago) by schoenebeck
* gig Engine: Added support for controlling whether the individual
  EGADSR stages may be aborted (as LinuxSampler extension to the
  original GigaStudio 4 format).
* Bumped version (2.0.0.svn73).


Revision 3316 - Directory Listing
Modified Thu Jul 20 12:05:53 2017 UTC (6 years, 9 months ago) by schoenebeck
* NKSP: Implemented built-in script function "change_sustain()".
* Bumped version (2.0.0.svn72).


Revision 3228 - Directory Listing
Modified Sun May 28 14:46:14 2017 UTC (6 years, 10 months ago) by schoenebeck
* Implemented built-in script function "same_region()" (currently only
  available for gig format engine).
* Bumped version (2.0.0.svn53).


Revision 3219 - Directory Listing
Modified Thu May 25 21:49:40 2017 UTC (6 years, 11 months ago) by schoenebeck
* NKSP Fix: built-in script function "change_note()" did not
  (re)select the correct expected region.
* NKSP Fix: built-in script function "change_velo()" did not
  (re)select the correct subregion/dimension region
  (whatever term you are using for the sampler format of
   your choice).
* Bumped version (2.0.0.svn51).


Revision 3120 - Directory Listing
Modified Fri Apr 21 16:54:52 2017 UTC (7 years ago) by schoenebeck
- Minor override fix.


Revision 3118 - Directory Listing
Modified Fri Apr 21 13:33:03 2017 UTC (7 years ago) by schoenebeck
* NKSP: Fixed crash when using built-in script array variable "%ALL_EVENTS".
* NKSP: Added built-in function "change_amp_lfo_depth()".
* NKSP: Added built-in function "change_amp_lfo_freq()".
* NKSP: Added built-in function "change_pitch_lfo_depth()".
* NKSP: Added built-in function "change_pitch_lfo_freq()".
* Bumped version (2.0.0.svn44).


Revision 3082 - Directory Listing
Modified Mon Jan 9 18:39:35 2017 UTC (7 years, 3 months ago) by schoenebeck
* Added support for sfz extension opcode 'script' which may be used to
  load real-time instrument script file (NKSP script language).
* Removed code duplication in SFZ file loading code.
* Bumped version (2.0.0.svn37).


Revision 3072 - Directory Listing
Modified Wed Jan 4 15:49:52 2017 UTC (7 years, 3 months ago) by schoenebeck
* Gig Engine: Fixed clicks and pumping noise with Lowpass Turbo filter
  on very low cutoff settings.
* Bumped version (2.0.0.svn34).


Revision 3054 - Directory Listing
Modified Thu Dec 15 12:47:45 2016 UTC (7 years, 4 months ago) by schoenebeck
* Fixed numerous compiler warnings.
* Bumped version (2.0.0.svn32).


Revision 3052 - Directory Listing
Modified Wed Dec 14 17:34:54 2016 UTC (7 years, 4 months ago) by schoenebeck
- Preparations for Xcode project update.


Revision 3034 - Directory Listing
Modified Mon Oct 31 00:05:00 2016 UTC (7 years, 5 months ago) by schoenebeck
* Fixed a bunch of minor issues (mostly compiler warnings).
* Bumped version (2.0.0.svn31).


Revision 3017 - Directory Listing
Modified Wed Oct 19 12:28:40 2016 UTC (7 years, 6 months ago) by schoenebeck
* Follow-up fix regarding aftertouch handling.
* Bumped version (2.0.0.svn29).


Revision 3015 - Directory Listing
Modified Tue Oct 18 20:13:08 2016 UTC (7 years, 6 months ago) by schoenebeck
* gig/sf2/sfz: Fixed aftertouch channel pressure events being processed
  properly and thus were ignored for certain uses.
* Bumped version (2.0.0.svn28).


Revision 2927 - Directory Listing
Modified Thu Jun 30 16:44:46 2016 UTC (7 years, 9 months ago) by schoenebeck
* Fix: Release trigger voices were not spawned on sustain pedal up
  (CC #64) events.
* Fix: Release trigger voices can now also distinguish correctly between
  note-off and sustain pedal up events.
* Bumped version (2.0.0.svn10).


Revision 2902 - Directory Listing
Modified Tue May 3 14:00:16 2016 UTC (7 years, 11 months ago) by schoenebeck
* Reload instrument script automatically after being modified by an
  instrument editor.
* Bumped version (2.0.0.svn8).


Revision 2879 - Directory Listing
Modified Tue Apr 19 14:07:53 2016 UTC (8 years ago) by schoenebeck
* All engines: Active voices are now internally grouped to "Note" objects,
  instead of being directly assigned to a keyboard key. This allows more
  fine graded processing of voices, which is i.e. required for certain
  instrument script features.
* Built-in script function "play_note()": Added support for passing
  special value -1 for "duration-us" argument, which will cause the
  triggered note to be released once the original note was released.
* Bumped version (2.0.0.svn3).


Revision 2871 - Directory Listing
Modified Sun Apr 10 18:22:23 2016 UTC (8 years ago) by schoenebeck
* All engines: Implemented scheduler for delayed MIDI events and for
  suspended real-time instrument scripts.
* Real-Time instrument scripts: Implemented support for built-in "wait()"
  function's "duration-us" argument, thus scripts using this function are
  now correctly resumed after the requested amount of microseconds.
* Real-Time instrument scripts: Implemented support for built-in
  "play_note()" function's "duration-us" argument, thus notes triggered
  with this argument are now correctly released after the requested amount
  of microseconds.
* Real-Time instrument scripts: Fixed crash which happened when trying to
  reference an undeclared script variable.
* Real-Time instrument scripts: Script events were not cleared when
  engine channel was reset, potentially causing undefined behavior.
* All engines: Attempt to partly fix resetting engine channels vs.
  resetting engine, an overall cleanup of the Reset*(),
  ConnectAudioDevice(), DisconnectAudioDevice() API methods would still be
  desirable though, because the current situation is still inconsistent
  and error prone.
* Bumped version (2.0.0.svn2).


Revision 2837 - Directory Listing
Modified Sun Aug 23 06:14:00 2015 UTC (8 years, 8 months ago) by persson
* fixed printf type errors (mostly in debug messages)



Revision 2687 - Directory Listing
Modified Sun Jan 4 17:16:05 2015 UTC (9 years, 3 months ago) by schoenebeck
* Instrument editor interface: Changed instrument editor plugin interface,
providing additional informations like the EngineChannel for which the
instrument editor was spawned for. This allows the instrument editors to
interact more actively with the sampler.
* Bumped version (1.0.0.svn60).


Revision 2630 - Directory Listing
Modified Fri Jun 13 15:01:06 2014 UTC (9 years, 10 months ago) by schoenebeck
* Implemented built-in instrument script function "set_event_mark()".
* Implemented built-in instrument script function "delete_event_mark()".
* Implemented built-in instrument script function "by_marks()".
* Added built-in instrument script int const variables $MARK_1 to $MARK_28.
* Built-in instrument script functions "ignore_event()", "note_off()" and
  "gig_set_dim_zone()" now also accept an array of event IDs as argument
  (i.e. return value of new script function "by_marks()").
* Bumped version (1.0.0.svn53).


Revision 2614 - Directory Listing
Modified Tue Jun 10 17:22:48 2014 UTC (9 years, 10 months ago) by schoenebeck
* Fixed silence and another crash.
* Bumped version (1.0.0.svn49).


Revision 2612 - Directory Listing
Modified Tue Jun 10 13:32:16 2014 UTC (9 years, 10 months ago) by schoenebeck
* Fixed crashes when exiting the sampler.
* Bumped version (1.0.0.svn47).


Revision 2611 - Directory Listing
Modified Mon Jun 9 19:20:37 2014 UTC (9 years, 10 months ago) by schoenebeck
* Fixed crash when loading an instrument script.
* Fixed "init" script handler only to be executed once:
  when the script was loaded.
* Fixed aftertouch script event which always had value zero
  and controller number was set to aftertouch value instead.
* gig Engine: Fixed handling of "smartmidi" dimension, which
  was recognized as "unknown" dimension.
* Fixed script function gig_set_dim_zone(): was accessing
  wrong event.
* ls_instr_script command line tool: is now not limited to
  core language scripts, but can now also parse sampler format
  dependent instrument scripts, with the respective specific
  built-in script variables and functions.
* ScriptVM: Fixed runtime behavior of "and" and "or" binary
  script expressions, which also evaluated the right hand side
  of the expression even if the left hand side already failed
  the overall expression semantic to become true.
* Bumped version (1.0.0.svn46).


Revision 2600 - Directory Listing
Modified Sat Jun 7 00:16:03 2014 UTC (9 years, 10 months ago) by schoenebeck
* Implemented built-in instrument script function "set_controller()".
* Fixed built-in script functions "ignore_event()" and
  "ignore_controller()".
* Added extended instrument script VM for the Gigasampler/GigaStudio format
  sampler engine, which extends the general instrument script VM with Giga
  format specific variables and functions.
* Giga format instrument scripts: added built-in script int constant
  variables $GIG_DIM_CHANNEL, $GIG_DIM_LAYER, $GIG_DIM_VELOCITY,
  $GIG_DIM_AFTERTOUCH, $GIG_DIM_RELEASE, $GIG_DIM_KEYBOARD,
  $GIG_DIM_ROUNDROBIN, $GIG_DIM_RANDOM, $GIG_DIM_SMARTMIDI,
  $GIG_DIM_ROUNDROBINKEY, $GIG_DIM_MODWHEEL, $GIG_DIM_BREATH,
  $GIG_DIM_FOOT, $GIG_DIM_PORTAMENTOTIME, $GIG_DIM_EFFECT1,
  $GIG_DIM_EFFECT2, $GIG_DIM_GENPURPOSE1, $GIG_DIM_GENPURPOSE2,
  $GIG_DIM_GENPURPOSE3, $GIG_DIM_GENPURPOSE4, $GIG_DIM_SUSTAIN,
  $GIG_DIM_PORTAMENTO, $GIG_DIM_SOSTENUTO, $GIG_DIM_SOFT,
  $GIG_DIM_GENPURPOSE5, $GIG_DIM_GENPURPOSE6, $GIG_DIM_GENPURPOSE7,
  $GIG_DIM_GENPURPOSE8, $GIG_DIM_EFFECT1DEPTH, $GIG_DIM_EFFECT2DEPTH,
  $GIG_DIM_EFFECT3DEPTH, $GIG_DIM_EFFECT4DEPTH, $GIG_DIM_EFFECT5DEPTH.
* Giga format instrument scripts: Implemented built-in script function
  "gig_set_dim_zone(event_id, dimension, zone)", which allows to override
  dimension zone(s) for new voices.
* Bumped version (1.0.0.svn45).


Revision 2594 - Directory Listing
Modified Thu Jun 5 00:16:25 2014 UTC (9 years, 10 months ago) by schoenebeck
* ScriptVM (WIP): started to integrate real-time instrument script
  support into the sampler engine implementations. The code is
  shared among all sampler engines, however currently only the gig
  file format supports storing instrument scripts (as LinuxSampler
  extension to the original GigaStudio 4 file format).
* gig engine: Added support for loading instrument scripts from .gig
  files.
* ScriptVM (WIP): Implemented built-in script variables %CC, $CC_NUM,
  $EVENT_NOTE, $EVENT_VELOCITY, $VCC_MONO_AT, $VCC_PITCH_BEND.
* ScriptVM (WIP): Implemented execution of script event handler "init".
* ScriptVM (WIP): Implemented execution of script event handler
  "controller".
* Bumped version (1.0.0.svn42).


Revision 2565 - Directory Listing
Modified Tue May 20 12:21:39 2014 UTC (9 years, 11 months ago) by schoenebeck
* Giga format: Fixed crash that happened with velocity split sounds
  under certain conditions (see also previous commit on libgig).
* Bumped version to 1.0.0.svn40.


Revision 2559 - Directory Listing
Modified Sun May 18 17:38:25 2014 UTC (9 years, 11 months ago) by schoenebeck
* Aftertouch: extended API to explicitly handle channel pressure and
  polyphonic key pressure events (so far polyphonic pressure was not
  supported at all, and channel pressure was rerouted as CC128 but not
  used so far).
* Gig Engine: Fixed support for 'aftertouch' attenuation controller.
* Bumped version (1.0.0.svn39).


Revision 2494 - Directory Listing
Modified Wed Jan 1 17:48:01 2014 UTC (10 years, 3 months ago) by schoenebeck
* Enabled automatic svn "Revision" macro expansion on certain files.
* Bumped version to 1.0.0.svn24.


Revision 2427 - Directory Listing
Modified Sat Mar 2 07:03:04 2013 UTC (11 years, 1 month ago) by persson
* code refactoring: added a lock guard class for exception safe mutex
  handling and used it everywhere appropriate


Revision 2420 - Directory Listing
Modified Sun Feb 24 08:59:25 2013 UTC (11 years, 2 months ago) by persson
* removed usage of deprecated Automake variable INCLUDES
* ASIO driver: removed compiler warnings


Revision 2408 - Directory Listing
Modified Sat Feb 2 08:22:49 2013 UTC (11 years, 2 months ago) by persson
* gig engine: fixed EG1 modulation when attack or release is zero


Revision 2396 - Directory Listing
Modified Tue Jan 8 12:00:45 2013 UTC (11 years, 3 months ago) by schoenebeck
* Exclusive Groups: don't ever stop voices of the same note,
  doesn't sound naturally with a drumkit.


Revision 2390 - Directory Listing
Modified Sat Jan 5 12:31:05 2013 UTC (11 years, 3 months ago) by persson
* fixed compilation with Clang 3.2


Revision 2382 - Directory Listing
Modified Sun Dec 2 16:30:42 2012 UTC (11 years, 4 months ago) by persson
* all engines: add pan CC value to instrument pan parameter before
  applying panning, instead of using two separate pan functions in
  series (#182)
* sfz parser: allow -200 to 200 for pan_oncc opcode (#182)
* gig engine: handle special case when pan parameter in gig file has
  max or min value
* CoreMIDI: fixed memory deallocation error


Revision 2376 - Directory Listing
Modified Thu Oct 4 18:09:26 2012 UTC (11 years, 6 months ago) by schoenebeck
- don't use printf() for error messages


Revision 2330 - Directory Listing
Modified Mon Mar 12 15:14:31 2012 UTC (12 years, 1 month ago) by schoenebeck
* Introduced new C++ API method EngineChannel::InstrumentFileName(int index)
  allowing to retrieve the whole list of files used for the loaded
  instrument on an engine channel (a.k.a. part). Some GigaStudio instruments
  for example are splitted over several files like "Foo.gig", "Foo.gx01",
  "Foo.gx02", ...
* Bumped version to 1.0.0.svn18


Revision 2327 - Directory Listing
Modified Sat Mar 10 16:16:14 2012 UTC (12 years, 1 month ago) by persson
* sfz/sf2 engine: fixed crash when using small audio fragment size


Revision 2326 - Directory Listing
Modified Thu Mar 8 19:40:14 2012 UTC (12 years, 1 month ago) by persson
* bugfix: instrument loading crashed for sfz and sf2 in Ardour (#176)
* more thread safety fixes for the instrument loading thread


Revision 2309 - Directory Listing
Modified Mon Jan 30 10:40:19 2012 UTC (12 years, 2 months ago) by iliev
* fixed bug #162


Revision 2291 - Directory Listing
Modified Thu Nov 24 17:00:29 2011 UTC (12 years, 5 months ago) by capela
* LV2 State extension;
  replaces LV2 Persist and LV2 Files extensions (patch by David Robilard).

Revision 2277 - Directory Listing
Modified Sat Oct 1 08:23:02 2011 UTC (12 years, 6 months ago) by persson
* fixed handling of rapid bank select and program change messages sent
  to the same sampler channel (patch from the Open Octave project,
  slightly adjusted)


Revision 2275 - Directory Listing
Modified Mon Sep 19 21:48:45 2011 UTC (12 years, 7 months ago) by schoenebeck
* Bugfix: When creating MIDI instrument map entries with "PERSISTENT"
  type, the instruments were uselessly precached with zero samples,
  however it still took the full preloading time and on 1st program
  change the respective instrument was completely reloaded again.
* Bumped version to 1.0.0.svn15


Revision 2203 - Directory Listing
Modified Sat Jul 9 16:44:27 2011 UTC (12 years, 9 months ago) by persson
* sf2 engine: fine-tuned amplitude EG (by switching from gig to sfz EG)
* sfz engine: added support for EG hold (ampeg_hold)
* Mac OS X: made it possible to specify plugin installation dir to
  configure


Revision 2188 - Directory Listing
Modified Fri Jun 24 19:39:11 2011 UTC (12 years, 10 months ago) by iliev
* Added LSCP commands "SUBSCRIBE EFFECT_INSTANCE_COUNT",
  "SUBSCRIBE EFFECT_INSTANCE_INFO", "SUBSCRIBE SEND_EFFECT_CHAIN_COUNT",
  "SUBSCRIBE SEND_EFFECT_CHAIN_INFO"


Revision 2185 - Directory Listing
Modified Sun Jun 19 09:09:38 2011 UTC (12 years, 10 months ago) by persson
* fixed compilation with gcc 4.6.1
* another "make dist" fix, for LV2 plugin
* made --enable-pthread-testcancel default on Mac OS X
* Mac OS X: fixed hanging threads


Revision 2175 - Directory Listing
Modified Mon Apr 25 08:12:36 2011 UTC (13 years ago) by persson
* sfz engine: implemeted filters. Filter types: lowpass, bandpass,
  bandreject and highpass. 1, 2, 4 and 6 pole filters. Opcodes:
  fil_type, cutoff, resonance, fil_veltrack, fil_keytrack,
  fil_keycenter, cutoff_cc, cutoff_chanaft.
* sfz engine: bugfix: zero ampeg_sustain didn't work
* gig engine: bugfix: pitch LFO controller "internal+aftertouch" was broken
* gig engine: bugfix: filter keyboard tracking was broken
* gig engine: filter performance fix (an unnecessary copy was made of
  the filter parameters in each sub fragment)
* ASIO driver: fixes for newer gcc versions (fix from PortAudio)


Revision 2127 - Directory Listing
Modified Wed Sep 22 18:59:16 2010 UTC (13 years, 7 months ago) by persson
* fixed crash when deleting a sampler channel or changing engine type
  while an instrument load was in progress


Revision 2115 - Directory Listing
Modified Thu Aug 12 15:36:15 2010 UTC (13 years, 8 months ago) by persson
* sfz engine: added support for controller triggered regions
  (on_locc/on_hicc)
* sfz engine: added support for loop_mode=one_shot


Revision 2114 - Directory Listing
Modified Tue Aug 10 12:05:19 2010 UTC (13 years, 8 months ago) by persson
* sfz engine: improved support for exclusive groups (group, off_by and
  off_mode)
* minor valgrind fixes


Revision 2072 - Directory Listing
Modified Sat Mar 20 11:37:52 2010 UTC (14 years, 1 month ago) by persson
* sfz engine: added support for random, seq_position, seq_length and
  volume
* sfz parser: added v1 LFO opcodes (no support in engine yet)


Revision 2061 - Directory Listing
Modified Tue Feb 23 18:32:31 2010 UTC (14 years, 2 months ago) by persson
* sfz engine: added support for trigger=release and rt_decay


Revision 2055 - Directory Listing
Modified Sat Jan 30 10:30:02 2010 UTC (14 years, 2 months ago) by persson
* sfz engine: added support for v2 multiple stage envelope generators
* sfz engine: added a fine-tuned v1 envelope generator instead of
  using the one from the gig engine


Revision 2047 - Directory Listing
Modified Mon Jan 11 21:14:14 2010 UTC (14 years, 3 months ago) by schoenebeck
* command line option '--profile' is currently disabled, since the
  respective profiling code is currently broken


Revision 2043 - Directory Listing
Modified Sat Jan 9 09:37:01 2010 UTC (14 years, 3 months ago) by persson
* gig engine: implemented the "round robin keyboard" dimension
* gig engine: fixed round robin and random dimensions for cases when
  number of dimension zones is not a power of two
* gig engine: made round robin use a counter for each region instead
  of each key
* fixed building with libgig installed in a non-standard directory


Revision 2027 - Directory Listing
Modified Tue Nov 3 19:27:42 2009 UTC (14 years, 5 months ago) by iliev
* sfz engine: support for exclusive groups
* sf2 engine: support for exclusive groups
* sf2 engine: manage presets only
* sf2 engine: preset regions are now taken into account


Revision 2015 - Directory Listing
Modified Sun Oct 25 22:22:52 2009 UTC (14 years, 6 months ago) by iliev
* Refactoring: moved the independent code from gig::Voice to base classes
* SoundFont format engine: implemented EG1 & EG2


Revision 2012 - Directory Listing
Modified Fri Oct 23 17:53:17 2009 UTC (14 years, 6 months ago) by iliev
* Refactoring: moved the independent code from
  the Gigasampler format engine to base classes
* SFZ format engine: experimental code (not usable yet)
* SoundFont format engine: experimental code (not usable yet)
* Fixed crash which may occur when MIDI key + transpose is out of range


Revision 1933 - Directory Listing
Modified Thu Jul 9 17:37:41 2009 UTC (14 years, 9 months ago) by persson
* fixed low-level ConditionServer usage bug that caused lockups on
  Windows


Revision 1924 - Directory Listing
Modified Sun Jun 28 16:43:38 2009 UTC (14 years, 9 months ago) by persson
* made program change handling in MIDI thread real-time safe by moving
  the logic to a non-RT thread


Revision 1923 - Directory Listing
Modified Sat Jun 27 16:55:41 2009 UTC (14 years, 10 months ago) by persson
* fixed crash happening when a pitch bend event arrived at the same
  time a new instrument was loading
* fixed building with sqlite installed in a non-standard directory


Revision 1909 - Directory Listing
Modified Wed Jun 3 17:21:42 2009 UTC (14 years, 10 months ago) by persson
* bugfix: note off was ignored when EG was in decay stage (bug
  introduced 2009-05-16)


Revision 1906 - Directory Listing
Modified Sat May 16 12:14:27 2009 UTC (14 years, 11 months ago) by persson
* bugfix: sometimes, when playing a note twice fast, the second note
  was silent


Revision 1895 - Directory Listing
Modified Sun May 3 12:15:40 2009 UTC (14 years, 11 months ago) by persson
* fixes for using large audio device buffers
* VST: added support for sample rate and buffer size changes
* VST: close editor (Fantasia) when the VST is removed
* minor fix in configure for mmsystem.h detection on MinGW
* removed warnings from gcc 4.4 and valgrind


Revision 1893 - Directory Listing
Modified Sat May 2 18:57:49 2009 UTC (14 years, 11 months ago) by schoenebeck
* fixed crash which occured when max. voices / streams limits were altered
  while voices were still active


Revision 1879 - Directory Listing
Modified Sun Mar 29 18:43:40 2009 UTC (15 years ago) by schoenebeck
* atomic.h was accidently included in the liblinuxsampler C++ API header
  files (fixes bug #122)


Revision 1876 - Directory Listing
Modified Fri Mar 27 12:16:12 2009 UTC (15 years, 1 month ago) by schoenebeck
* added optional 3rd party user data parameter for following
  liblinuxsampler C++ API methods: InstrumentEditor::Main(),
  InstrumentEditor::Launch(), InstrumentManager::LaunchInstrumentEditor()
* minor cosmetics regarding configure script summary
* debian packaging: include DSSI and LV2 plugin binaries of the sampler
  into the liblinuxsampler package
* RPM packaging: include DSSI and LV2 plugin binaries of the sampler
  into the liblinuxsampler package
* bumped version to 0.5.1.12cvs


Revision 1868 - Directory Listing
Modified Wed Mar 18 22:16:14 2009 UTC (15 years, 1 month ago) by schoenebeck
* C++ API method InstrumentManager::LaunchInstrumentEditor() now returns
  a pointer to the launched InstrumentEditor object


Revision 1862 - Directory Listing
Modified Wed Mar 11 19:03:37 2009 UTC (15 years, 1 month ago) by persson
* allow gig files to use unlimited downward pitch shifting
* added a limit check for upward pitch shifting


Revision 1860 - Directory Listing
Modified Wed Mar 11 18:23:35 2009 UTC (15 years, 1 month ago) by schoenebeck
* added support for GS Reset SysEx message


Revision 1858 - Directory Listing
Modified Sun Mar 8 09:57:19 2009 UTC (15 years, 1 month ago) by persson
* optimized the DSSI plugin: all plugin instances now share the same
  disk streaming buffers
* added support for the "fine tune" and "pitch bend range"
  instrument-level gig parameters
* fixed minor artifacts in pitch bend handling


Revision 1857 - Directory Listing
Modified Sat Mar 7 19:23:10 2009 UTC (15 years, 1 month ago) by schoenebeck
* fixed hanging notes which occured when note-off event had the exact
  same time stamp as the voice's note-on event and occured both in the
  same audio fragment cycle (fixes bug #112)
* bumped version to 0.5.1.11cvs


Revision 1855 - Directory Listing
Modified Mon Mar 2 15:33:38 2009 UTC (15 years, 1 month ago) by iliev
* fixed endless loop in Engine::SuspendAll() (bug #120)
* AU plugin, work in progress: minor fixes in the build files


Revision 1852 - Directory Listing
Modified Sun Mar 1 22:22:03 2009 UTC (15 years, 1 month ago) by schoenebeck
* bugfix: on sample reference changes (instrument editor), only un-cache
  the respective sample if it's really not used by any sampler engine
  anymore
* re-cache samples in case they were changed by an instrument editor, e.g.
  when a sample was added while playing (#82)
* bumped version to 0.5.1.10cvs


Revision 1847 - Directory Listing
Modified Fri Feb 27 17:12:40 2009 UTC (15 years, 1 month ago) by iliev
* fixed crash when changing the audio output device of a sampler
  channel with loaded instrument and start playing notes


Revision 1844 - Directory Listing
Modified Mon Feb 23 18:29:50 2009 UTC (15 years, 2 months ago) by persson
* fixed crash when removing channel with active voices (#116)


Revision 1843 - Directory Listing
Modified Sat Feb 21 17:08:18 2009 UTC (15 years, 2 months ago) by iliev
* fixed orphaned pointers when setting maximum voices limit (bug #118)


Revision 1835 - Directory Listing
Modified Mon Feb 16 17:56:50 2009 UTC (15 years, 2 months ago) by iliev
* Adapted drivers/Plugin class to be used as a base class for the
  AudioUnit plugin and fixed orphaned pointers when deleting PluginGlobal
* Fixed possible iterator invalidations when resetting the sampler
* Fixed memory leaks when issuing the following LSCP commands:
  GET AUDIO_OUTPUT_DRIVER INFO
  GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO
  GET MIDI_INPUT_DRIVER INFO
  GET MIDI_INPUT_DRIVER_PARAMETER INFO
* Fixed possible compilation error when sqlite is not present


Revision 1826 - Directory Listing
Modified Sat Jan 24 14:32:35 2009 UTC (15 years, 3 months ago) by iliev
* fixed a crash which occurs when removing a sampler channel with
  instrument loading in progress (bug #113)


Revision 1800 - Directory Listing
Modified Sun Dec 7 01:26:46 2008 UTC (15 years, 4 months ago) by schoenebeck
* maximum voices and disk streams can now be altered at runtime (added new
  LSCP commands "GET VOICES", "SET VOICES", "GET STREAMS", "SET STREAMS"
  and accordingly new LSCP events "GLOBAL_INFO:VOICES" and
  "GLOBAL_INFO:STREAMS")
* bumped version to 0.5.1.8cvs


Revision 1797 - Directory Listing
Modified Thu Dec 4 19:33:13 2008 UTC (15 years, 4 months ago) by persson
* let the GET FILE INSTRUMENT INFO command only return keyswitch range
  if keyswitching is actually used (#106)


Revision 1789 - Directory Listing
Modified Sat Nov 1 19:01:27 2008 UTC (15 years, 5 months ago) by iliev
* notification events for stream/voice count statistics are now sent
  only when there are actual changes
* use atomic_t for stream/voice count statistics


Revision 1774 - Directory Listing
Modified Thu Sep 11 18:11:06 2008 UTC (15 years, 7 months ago) by iliev
* don't retrieve key bindings and keyswitch bindings if
  the instrument is not loaded in the instrument manager
* notification events are now sent when sending MIDI
  messages using SEND CHANNEL MIDI_DATA lscp command
* fixed a bug in the keyswitch bindings retrieval


Revision 1771 - Directory Listing
Modified Wed Sep 10 15:02:24 2008 UTC (15 years, 7 months ago) by iliev
* added new LSCP command: SEND CHANNEL MIDI_DATA which can be used by
  frontends to send MIDI messages to specific sampler channel
* added two additional fields to GET FILE INSTRUMENT INFO command -
  KEY_BINDINGS and KEYSWITCH_BINDINGS
* InstrumentResourceManager::GetInstrumentInfo now scans the specified
  instrument file only if it is not loaded in the instrument manager


Revision 1764 - Directory Listing
Modified Sat Sep 6 14:55:18 2008 UTC (15 years, 7 months ago) by persson
* rewrote the ConditionServer class to make it possible to create
  multiple sample channels when the audio thread isn't running


Revision 1762 - Directory Listing
Modified Fri Aug 29 17:33:02 2008 UTC (15 years, 7 months ago) by schoenebeck
* global volume sysex message can now be selected at compile time to be
  only applied to the sampler channels that are connected to the respective
  MIDI input port the SysEx message arrived on (by default global volume
  SysEx messages apply globally to the whole sampler)
* bumped version to 0.5.1.7cvs


Revision 1761 - Directory Listing
Modified Fri Aug 29 15:42:06 2008 UTC (15 years, 7 months ago) by iliev
* fixed a crash which occurs when removing a sampler channel waiting
  to start instrument loading after another channel


Revision 1751 - Directory Listing
Modified Mon Jul 28 07:36:35 2008 UTC (15 years, 9 months ago) by schoenebeck
* bugfix: process chromatic / drumkit mode sysex message only for
  the respective engine channels that are connected to the MIDI
  input port on which the message was received


Revision 1750 - Directory Listing
Modified Thu Jul 10 15:00:38 2008 UTC (15 years, 9 months ago) by schoenebeck
* added support for chromatic / drumkit mode Roland GS Sysex message
  which is usally used to switch a part between chromatic sounds and
  drumkit sounds (as opposed to their common default setting of MIDI
  part 10 being a drumkit part and all other ones chromatic parts), in
  LS however one can switch between the first 16 MIDI instrument maps
  of all ones defined for the sampler
* bumped version to 0.5.1.6cvs


Revision 1748 - Directory Listing
Modified Sun Jun 22 14:46:46 2008 UTC (15 years, 10 months ago) by persson
* bugfix: notes triggered at position 0 in the audio buffer were
  sometimes wrongly killed in the same buffer, causing no sound to be
  played
* fixes for audio drivers with varying buffer sizes
* Makefile fix: JACK_CFLAGS wasn't used
* JACK driver: use jack_client_open instead of the deprecated
  jack_client_new


Revision 1724 - Directory Listing
Modified Tue Apr 22 08:52:54 2008 UTC (16 years ago) by schoenebeck
* added support for GM global device volume SysEx message


Revision 1723 - Directory Listing
Modified Sun Apr 20 08:53:39 2008 UTC (16 years ago) by schoenebeck
* allow pan control of engine channels on C++ API level
* export denormals-are-zero mode feature to C++ API


Revision 1722 - Directory Listing
Modified Thu Apr 10 17:41:32 2008 UTC (16 years ago) by schoenebeck
* minor preparations for internal effects support
* bumped version to 0.5.1.5cvs


Revision 1715 - Directory Listing
Modified Tue Mar 11 15:20:46 2008 UTC (16 years, 1 month ago) by schoenebeck
* dispatch bank select as ordinary CC as well, the user might seriously
  want to (mis)use it for some purpose ("fixed" in all current MIDI
  input drivers: ALSA, CoreMIDI, JACK, MidiShare, MME)
* minor fix: only mark FX sends as being modified if really the
  respective FX send MIDI controller was used


Revision 1700 - Directory Listing
Modified Sun Feb 17 12:40:59 2008 UTC (16 years, 2 months ago) by persson
* added partial support for the "Controller Triggered" MIDI rule,
  enough for piano gigs with pedal noise samples


Revision 1686 - Directory Listing
Modified Thu Feb 14 14:58:50 2008 UTC (16 years, 2 months ago) by schoenebeck
* added new LSCP event "CHANNEL_MIDI" which can be used by frontends to
  react on MIDI data arriving on certain sampler channels (so far only
  Note-On and Note-Off events are sent via this LSCP event)
* bumped LSCP compliance version to 1.4
* bumped LS version to 0.5.1.3cvs


Revision 1662 - Directory Listing
Modified Sun Feb 3 16:21:38 2008 UTC (16 years, 2 months ago) by schoenebeck
* the promised "cleanup": rewrote virtual MIDI device's notification a bit
  (using now a safe double buffer approach using "SynchronizedConfig"
  instead of the Trylock() approach previously to synchronize the list of
  virtual MIDI devices)
* bumped version to 0.5.1.2cvs


Revision 1659 - Directory Listing
Modified Sun Feb 3 00:13:27 2008 UTC (16 years, 2 months ago) by schoenebeck
* added support for triggering notes by instrument editors
  (still some cleanup / refactoring ahead, but it should work)
* bumped version to 0.5.1.1cvs


Revision 1653 - Directory Listing
Modified Wed Jan 30 01:51:46 2008 UTC (16 years, 2 months ago) by schoenebeck
* added support for notifying instrument editors on note-on / note-off
  events (e.g. to highlight the pressed keys on the virtual keyboard
  of gigedit)
* fixed return value of recently added Thread::TestCancel() method
* be verbose on DLL load errors (on Linux)


Revision 1649 - Directory Listing
Modified Fri Jan 25 15:06:02 2008 UTC (16 years, 3 months ago) by nagata
* added a new config option --enable-pthread-testcancel, which uses
pthread_testcancel() instead of asynchronous canceling (needed for OSX)


Revision 1646 - Directory Listing
Modified Sun Jan 20 15:04:51 2008 UTC (16 years, 3 months ago) by persson
* made it possible to load an instrument even if the audio thread
  isn't running


Revision 1644 - Directory Listing
Modified Sat Jan 19 16:55:03 2008 UTC (16 years, 3 months ago) by persson
* fixed memory leaks that occurred when liblinuxsampler was unloaded
* fixed a memory leak that could happen when a channel was deleted
  while notes were playing
* fixed memory management bug in ASIO driver
* optimized the SynchronizedConfig class so it doesn't wait
  unnecessarily long after an update


Revision 1555 - Directory Listing
Modified Thu Dec 6 01:39:24 2007 UTC (16 years, 4 months ago) by schoenebeck
- slightly changed gig engine description


Revision 1552 - Directory Listing
Modified Wed Dec 5 22:37:42 2007 UTC (16 years, 4 months ago) by schoenebeck
* seems mingw has problems with accessing static variables from another
  static (noinst) libtool library, at least it prevented it from producing
  the liblinuxsampler.dll and just created a static archive
* fixed Perl script which automatically updates our LSCP spec source file
  (lscp.xml), it didn't remove multi line C++ code


Revision 1525 - Directory Listing
Modified Sun Nov 25 17:47:46 2007 UTC (16 years, 5 months ago) by schoenebeck
* LSCP: added new LSCP commands: "GET FILE INSTRUMENTS <file>",
  "LIST FILE INSTRUMENTS <file>" and
  "GET FILE INSTRUMENT INFO <file> <index>" for retrieving informations
  about an arbitrary instrument file on the system where the sampler is
  running on (LSCP specs yet to be updated!)
* bumped version to 0.5.0.1cvs
* bumped LSCP compliance to LSCP version 1.3


Revision 1502 - Directory Listing
Modified Wed Nov 21 07:29:52 2007 UTC (16 years, 5 months ago) by senoner
* win32 port, work in progress: added autoconf checks for Windows
 - win32 additions in linuxsampler.cpp


Revision 1485 - Directory Listing
Modified Thu Nov 15 23:35:45 2007 UTC (16 years, 5 months ago) by senoner
* win32 port, work in progress:
* added MME MIDI Input driver
* Resampler.h, gig/Synthesizer.h:
* changed return type of getSample() from int to int32_t


Revision 1484 - Directory Listing
Modified Thu Nov 15 13:24:41 2007 UTC (16 years, 5 months ago) by senoner
* Stream.h: added a missing divide by BytesPerSample in GetWriteSpace()
* since this function is currently only used in the stream's
* qsort() compare function, it did trigger any bugs
* Resampler.h, Synthesizer.h:
* cubic interpolation now works in 24bit mode too
* faster method to read 24bit words on little endian machines (x86):
*  replaced 3 byte reads + shifts with a 1 unaligned 32bit read and shift


Revision 1481 - Directory Listing
Modified Wed Nov 14 23:42:15 2007 UTC (16 years, 5 months ago) by senoner
* win32 port work in progress:
* - implemented win32 support in the following classes:
* Thread, Condition, Mutex, Path, LscpServer
* - lscp.y use DONTCARE instead of VOID
*  (a win32 symbol defined)
* - completed win32 editor plugin loader


Revision 1455 - Directory Listing
Modified Sun Oct 21 11:59:59 2007 UTC (16 years, 6 months ago) by persson
* bugfix: the thread used by an editor plugin didn't die when the
  editor closed


Revision 1424 - Directory Listing
Modified Sun Oct 14 22:00:17 2007 UTC (16 years, 6 months ago) by schoenebeck
* code cleanup:
- global.h now only covers global definitions that are needed for the C++
  API header files, all implementation internal global definitions are now
  in global_private.h
- atomic.h is not exposed to the C++ API anymore (replaced the references
  in SynchronizedConfig.h for this with local definitions)
- no need to include config.h anymore for using LS's API header files
- DB instruments classes are not exposed to the C++ API
- POSIX callback functions of Thread.h are hidden
- the (optional) gig Engine benchmark compiles again
- updated Doxyfile.in
- fixed warnings in API doc generation
* preparations for release 0.5.0


Revision 1399 - Directory Listing
Modified Thu Oct 11 18:53:29 2007 UTC (16 years, 6 months ago) by schoenebeck
* the following LSCP command return escape sequences in at least one
  of their LSCP response fields: "GET ENGINE INFO", "GET CHANNEL INFO",
  "GET MIDI_INSTRUMENT INFO", "GET MIDI_INSTRUMENT_MAP INFO",
  "GET FX_SEND INFO", "GET SERVER INFO"
* listed all LSCP commands in the LSCP specs which may use escape
  sequences in at least on of their response fields
* hide instrument editor related debug messages in the gig::Engine when
  using the default debug level (which is 1)
* bumped version to 0.4.0.8cvs


Revision 1375 - Directory Listing
Modified Wed Oct 3 18:41:09 2007 UTC (16 years, 6 months ago) by schoenebeck
* code refactoring, moved the following files from
  src/engines/ -> src/plugins/ :

  InstrumentEditor.h ,
  InstrumentEditor.cpp ,
  InstrumentEditorFactory.h ,
  InstrumentEditorFactory.cpp


Revision 1348 - Directory Listing
Modified Fri Sep 14 14:45:11 2007 UTC (16 years, 7 months ago) by schoenebeck
* behavior fix: on MIDI CC# 65 (portamento on / off), 126 (mono mode),
  127 (solo mode) only kill voices if the respective mode really changed


Revision 1321 - Directory Listing
Modified Tue Sep 4 01:12:49 2007 UTC (16 years, 7 months ago) by schoenebeck
* added highly experimental code for synchronizing instrument editors
  hosted in the sampler's process to safely edit instruments while playing
  without a crash (hopefully) by either suspending single regions wherever
  possible or - if unavoidable - whole engine(s)
* disk thread: queue sizes are now proportional to CONFIG_MAX_STREAMS
  instead of fix values
* removed legacy Makefiles in meanwhile deleted src/lib directory and its
  subdirectories
* bumped version to 0.4.0.7cvs


Revision 1309 - Directory Listing
Modified Wed Aug 29 10:36:32 2007 UTC (16 years, 7 months ago) by iliev
* A notification event is now sent when the
  instrument loading on a sampler channel failed


Revision 1305 - Directory Listing
Modified Mon Aug 27 07:51:28 2007 UTC (16 years, 8 months ago) by iliev
* added default min and max values to restrict the number of allowed
  audio output channels and MIDI input ports
* the connection to the PCM interface is now closed when destroying
  an audio output device


Revision 1298 - Directory Listing
Modified Fri Aug 17 12:55:37 2007 UTC (16 years, 8 months ago) by iliev
* ensure that a notification event is sent when already
  loaded instrument is assigned to another sampler channel


Revision 1297 - Directory Listing
Modified Thu Aug 16 15:55:21 2007 UTC (16 years, 8 months ago) by iliev
* bugfix: the active stream/voice count statistic was incorrect


Revision 1267 - Directory Listing
Modified Tue Aug 7 10:34:07 2007 UTC (16 years, 8 months ago) by iliev
* A notification event is now sent when altering
  audio output channel on a sampler channel


Revision 1259 - Directory Listing
Modified Tue Jun 26 21:41:09 2007 UTC (16 years, 10 months ago) by schoenebeck
* reenabled assembly features support, at the moment only for
  enabling a fast denormal FPU mode (x86 platforms supporting SSE2)
* bumped version to 0.4.0.6cvs


Revision 1248 - Directory Listing
Modified Fri Jun 22 10:10:06 2007 UTC (16 years, 10 months ago) by persson
* fixed some minor memory leaks


Revision 1212 - Directory Listing
Modified Tue May 29 23:59:36 2007 UTC (16 years, 11 months ago) by schoenebeck
* added highly experimental support for on-the-fly instrument editing
  within the sampler's process (by using instrument editor plugins),
  you'll notice the new "Registered instrument editors:" message on
  startup, the plugin path can be overridden at compile time with
  ./configure --enable-plugin-dir=/some/dir
* added a new LSCP command "EDIT INSTRUMENT <sampler-channel>" to spawn
  a matching instrument editor for the instrument on the given sampler
  channel (LSCP command syntax might be subject to change soon)
* config.h is not going to be installed along with liblinuxsampler's
  API header files anymore (not necessary anymore)
* take care of $(DESTDIR) when creating the instruments DB on 'make
  install' rule (needed for packaging and cross compilation)
* bumped version to 0.4.0.5cvs


Revision 1181 - Directory Listing
Modified Sat May 12 16:03:00 2007 UTC (16 years, 11 months ago) by schoenebeck
* fixed compiler error when --enable-override-filter-type was
  supplied to the configure script (fixes #46)


Revision 1149 - Directory Listing
Modified Sat Apr 7 22:32:47 2007 UTC (17 years ago) by schoenebeck
* minor fix of EGDecay
* fixed compilation errors regarding OSX
(patch by Toshi Nagata)


Revision 1147 - Directory Listing
Modified Tue Apr 3 17:39:52 2007 UTC (17 years ago) by persson
* fixed some more EG bugs that could cause noises or crashes


Revision 1130 - Directory Listing
Modified Sun Mar 25 18:59:14 2007 UTC (17 years, 1 month ago) by iliev
* Implemented new, improved notification system


Revision 1108 - Directory Listing
Modified Thu Mar 22 20:39:04 2007 UTC (17 years, 1 month ago) by iliev
* Added new notification events for tracking
effect send changes and global volume changes


Revision 1046 - Directory Listing
Modified Sat Feb 10 12:00:55 2007 UTC (17 years, 2 months ago) by persson
* EG fine tuning: when attack is zero the EG starts at a level above
  max sustain level, which means that there is a decay phase even if
  sustain is 100%


Revision 1044 - Directory Listing
Modified Wed Feb 7 21:51:19 2007 UTC (17 years, 2 months ago) by schoenebeck
- small fix regarding previously added MIDI RPN controller handling
  (all subsequent CC #6 messages were misinterpreted as being
  values for the previously selected RPN controller)


Revision 1043 - Directory Listing
Modified Wed Feb 7 21:02:04 2007 UTC (17 years, 2 months ago) by schoenebeck
* for now just set all notes off when receiving a MIDI coarse tuning
  message to prevent hanging notes when transposing while playing


Revision 1041 - Directory Listing
Modified Wed Feb 7 17:45:19 2007 UTC (17 years, 2 months ago) by schoenebeck
* handle MIDI coarse tuning messages (MIDI RPN #0 MSB, #2 LSB),
  currently lazy implementation, transpose value is simply added on the
  note on/off values instead only at the mandatory places, thus when
  altering transpose while playing, voices can unintendedly survive


Revision 1040 - Directory Listing
Modified Wed Feb 7 15:41:31 2007 UTC (17 years, 2 months ago) by schoenebeck
* bugfix: sampler crashed when trying to persistently map a not existent or
  corrupt .gig file ("MAP MIDI_INSTRUMENT ... PERSISTENT")
* behavior fix: reset FX send levels i.e. when receiving a MIDI "reset all
  controllers" message
* bumped version to 0.4.0.3cvs


Revision 1039 - Directory Listing
Modified Sat Feb 3 20:46:44 2007 UTC (17 years, 2 months ago) by persson
* EG fix: a release value of zero could cause noises or crash
* fix of previous thread safety fix, which in some cases locked the
  engine


Revision 1038 - Directory Listing
Modified Sat Feb 3 15:33:00 2007 UTC (17 years, 2 months ago) by persson
* playback is no longer disabled during instrument loading
* all notes playing on a channel that changes its instrument keep
  playing with the old instrument until they get a note off command
* new thread safety fix for lscp "load engine" and "set channel audio
  output device"


Revision 1037 - Directory Listing
Modified Tue Jan 23 20:03:22 2007 UTC (17 years, 3 months ago) by schoenebeck
* bugfix regarding FX Sends: when more than one sampler channel used FX
  sends, only the audio signal of the last sampler channel made it into the
  final output signal
* fixed small autoconf compilation issue on certain systems (complained
  about missing AM_PATH_ARTS macro)


Revision 1012 - Directory Listing
Modified Sun Jan 7 15:52:36 2007 UTC (17 years, 3 months ago) by capela
* Fixed a memory leak due to EngineFactory::Destroy() not doing it
as an actual destructor and just removing the engine instance from
factory stock and all instances allocated via EngineFactory::Create()
never got delete'd and thus their destructors never called. This bug
was evident while having many mapped instruments and querying the
instrument status via GET MIDI_INSTRUMENT INFO command, eating up
system memory very quickly and never let it go.


Revision 1010 - Directory Listing
Modified Sat Jan 6 11:02:58 2007 UTC (17 years, 3 months ago) by persson
- fixed handling of MIDI volume change


Revision 1005 - Directory Listing
Modified Fri Dec 29 20:06:14 2006 UTC (17 years, 3 months ago) by schoenebeck
* global volume can now be altered at runtime
  (added two new LSCP commands for this, LSCP specs updated)


Revision 1001 - Directory Listing
Modified Wed Dec 27 16:17:08 2006 UTC (17 years, 4 months ago) by schoenebeck
* implemented effect sends (also added new LSCP commands for this feature,
  updated LSCP spec document along with this commit batch as well)


Revision 970 - Directory Listing
Modified Wed Dec 6 22:28:17 2006 UTC (17 years, 4 months ago) by schoenebeck
* fixed crash occuring in conjunction with the new 'MAP MIDI_INSTRUMENT'
  LSCP command (cause: RingBuffer was not able to do deep copies)


Revision 958 - Directory Listing
Modified Wed Nov 29 19:48:38 2006 UTC (17 years, 4 months ago) by schoenebeck
* store volume for each MIDI instrument mapper entry individually instead
  of managing the volume as shared setting with the respective instrument
  entry of its InstrumentManager


Revision 950 - Directory Listing
Modified Tue Nov 28 20:09:48 2006 UTC (17 years, 4 months ago) by persson
* if a filter is used and EG2 finishes before EG1, let the voice die
  when EG2 has finished (this fixes a problem with clicks and voice
  starvation for some gigs)


Revision 947 - Directory Listing
Modified Mon Nov 27 21:34:55 2006 UTC (17 years, 5 months ago) by schoenebeck
* implemented MIDI instrument mapping according to latest LSCP draft


Revision 924 - Directory Listing
Modified Sat Oct 21 14:13:09 2006 UTC (17 years, 6 months ago) by schoenebeck
just minor code comment update


Revision 922 - Directory Listing
Modified Mon Oct 2 18:40:10 2006 UTC (17 years, 6 months ago) by persson
* small fix of LFO1 behaviour (dampening from max volume instead of
  amplifying from 0)
* added checks for bad MIDI data


Revision 906 - Directory Listing
Modified Sun Jul 23 16:44:08 2006 UTC (17 years, 9 months ago) by schoenebeck
* MIDI driver API extension for MIDI drivers which already supply exact
  time stamps for events (i.e. for offline rendering based MIDI drivers)


Revision 903 - Directory Listing
Modified Sat Jul 22 14:22:53 2006 UTC (17 years, 9 months ago) by persson
* real support for 24 bit samples - samples are not truncated to 16
  bits anymore
* support for aftertouch (channel pressure, not polyphonic aftertouch)


Revision 890 - Directory Listing
Modified Sat Jul 1 13:43:04 2006 UTC (17 years, 9 months ago) by schoenebeck
just some refactoring work, moved the following files:

- src/engines/common/Engine.h -> src/engines/Engine.h,

- src/engines/common/EngineChannel.h ->
  src/engines/EngineChannel.h,

- src/engines/common/EngineChannel.cpp ->
  src/engines/EngineChannel.cpp


Revision 883 - Directory Listing
Modified Wed Jun 28 19:29:12 2006 UTC (17 years, 10 months ago) by schoenebeck
include SynthesisParam.h in release tarball


Revision 880 - Directory Listing
Modified Tue Jun 27 22:57:37 2006 UTC (17 years, 10 months ago) by schoenebeck
just some refactoring work:
- renamed class LinuxSamplerException -> Exception
- encapsulated LS API relevant files into LS namespace
- removed unnecessary header inclusions


Revision 877 - Directory Listing
Modified Sun Jun 25 13:54:17 2006 UTC (17 years, 10 months ago) by persson
* new filter implementation, which is more accurate and supports all
  filter types including bandreject and lowpass turbo


Revision 866 - Directory Listing
Modified Thu May 25 14:39:45 2006 UTC (17 years, 11 months ago) by persson
* gcc 4.1 compilation fix


Revision 865 - Directory Listing
Modified Sun May 14 07:15:52 2006 UTC (17 years, 11 months ago) by persson
* sample loop parameters are now taken from the DimensionRegion
  instead of the wave chunk
* fixed keyswitching for v3 gigs with a number of keyswitch splits not
  equal to a power of two


Revision 849 - Directory Listing
Modified Sat Mar 25 13:05:59 2006 UTC (18 years, 1 month ago) by schoenebeck
* added compile time option to disable processing of All-Notes-Off
  MIDI messages


Revision 846 - Directory Listing
Modified Sun Mar 19 16:38:22 2006 UTC (18 years, 1 month ago) by persson
* more thread safety fixes: another fix for lscp "load engine" and
  midi thread. Sysex midi protected against lscp. Instrument loader
  thread protected against lscp thread.


Revision 841 - Directory Listing
Modified Sat Mar 4 16:23:53 2006 UTC (18 years, 1 month ago) by persson
* fixed concurrency problems between the main thread doing
  lscp notifications and the lscp thread
* bug fix: the LFOs were not properly initialized


Revision 840 - Directory Listing
Modified Sun Feb 26 13:00:08 2006 UTC (18 years, 2 months ago) by persson
* fixed some concurrency problems between the lscp thread and the
  audio/midi threads for these commands: load engine, set channel
  audio output device, set channel midi input device/port/channel and
  remove channel. Thanks to Vincent Bongiorno for bug reports and
  testing.
* removed an autotools warning
* fixed an iterator bug
* minor code clean-ups


Revision 835 - Directory Listing
Modified Mon Feb 6 18:07:17 2006 UTC (18 years, 2 months ago) by persson
* fixed some memory management errors


Revision 832 - Directory Listing
Modified Sun Feb 5 10:24:05 2006 UTC (18 years, 2 months ago) by persson
* added smoothing of volume changes caused by control change messages
* fine tuning of the crossfade volume curve


Revision 831 - Directory Listing
Modified Sat Jan 28 16:55:30 2006 UTC (18 years, 2 months ago) by persson
* fixed global pan (CC10) which hasn't been working for a while
* fine tuning of the curves for volume (CC7) and pan (CC10 and gig
  parameter)
* added support for the "attenuation controller threshold" gig
  parameter


Revision 830 - Directory Listing
Modified Sun Jan 15 18:23:11 2006 UTC (18 years, 3 months ago) by persson
* added linear interpolation of volume modulation inside a
  subfragment; this prevents clicks during voice stealing. Can be
  switched off with the --disable-interpolate-volume configure option.


Revision 829 - Directory Listing
Modified Sat Jan 14 14:07:47 2006 UTC (18 years, 3 months ago) by schoenebeck
* implemented portamento mode and solo mode (a.k.a 'mono mode'):
  all modes can be altered via standard GM messages, that is CC5 for
  altering portamento time, CC65 for enabling / disabling portamento
  mode, CC126 for enabling solo mode and CC127 for disabling solo mode
* fixed EG3 (pitch envelope) synthesis which was neutral all the time
* configure.in: do not automatically pick optimized gcc flags if the user
  already provided some on his own (as CXXFLAGS)


Revision 799 - Directory Listing
Modified Sat Nov 5 10:59:37 2005 UTC (18 years, 5 months ago) by persson
* Bug-fixes: pitch changes larger than one octave didn't work. Looped
  samples small enough to fit in RAM didn't work.


Revision 797 - Directory Listing
Modified Wed Nov 2 19:26:15 2005 UTC (18 years, 5 months ago) by persson
* minor EG fine tuning: attack time now has a minimum value to prevent
  clicks


Revision 796 - Directory Listing
Modified Sun Oct 30 08:35:13 2005 UTC (18 years, 5 months ago) by persson
* fixed voice stealing - stolen voices weren't killed


Revision 791 - Directory Listing
Modified Sun Oct 16 14:50:20 2005 UTC (18 years, 6 months ago) by persson
* Filter tuning: calculation of cutoff frequency and bandwidth
  improved. Removed use of "BasicBPFilter". Changed bandpass filter
  from constant peak to constant skirt. Use gig parameter Resonance if
  no resonance controller is set. Removed keyboard tracking influence
  on resonance.


Revision 783 - Directory Listing
Modified Sun Oct 2 14:40:52 2005 UTC (18 years, 6 months ago) by persson
* EG fixes: the length of "attack hold" stage was wrong. Release stage
  can now start before attack stage ends. Cancel release didn't work
  when sustain was zero.


Revision 781 - Directory Listing
Modified Mon Sep 26 10:17:00 2005 UTC (18 years, 7 months ago) by schoenebeck
* fixed event handling bug which was introduced by the recent synthesis
  optimizations (events were only processed for the first active voice)
* added global volume attenuation of -9 dB (0.35f) to prevent clipping
  which can be overridden with --enable-global-attenuation


Revision 776 - Directory Listing
Modified Wed Sep 21 19:05:41 2005 UTC (18 years, 7 months ago) by iliev
* Added support for sostenuto pedal


Revision 775 - Directory Listing
Modified Wed Sep 21 14:30:43 2005 UTC (18 years, 7 months ago) by schoenebeck
* src/drivers/MidiInputPort.cpp: fixed legacy SysEx code which caused
  dispatching of MIDI SysEx messages several times instead of once
* src/engines/gig/Engine.cpp: fixed bug in SysEx handling
  (patch by Juan Linietsky)


Revision 770 - Directory Listing
Modified Sun Sep 11 15:56:29 2005 UTC (18 years, 7 months ago) by schoenebeck
* synthesis core optimizations


Revision 769 - Directory Listing
Modified Sat Sep 3 11:14:30 2005 UTC (18 years, 7 months ago) by schoenebeck
* fixed endless loop which occured on MIDI control change
  and pitch bend events


Revision 768 - Directory Listing
Modified Fri Sep 2 20:11:55 2005 UTC (18 years, 7 months ago) by persson
* bug fixes for the new EG implementation


Revision 740 - Directory Listing
Modified Tue Aug 16 17:17:52 2005 UTC (18 years, 8 months ago) by schoenebeck
deleted Manipulator.h


Revision 739 - Directory Listing
Modified Tue Aug 16 17:16:24 2005 UTC (18 years, 8 months ago) by schoenebeck
not in use anymore since LFO(s) were reimplemented


Revision 738 - Directory Listing
Modified Tue Aug 16 17:14:25 2005 UTC (18 years, 8 months ago) by schoenebeck
* extensive synthesis optimization: reimplementation of EGs and LFO(s),
  removed synthesis parameter prerendering and the synthesis parameter
  matrix in general, splitting each audio fragment into subfragments now
  where each subfragment uses constant synthesis parameters
  (everything's still very buggy ATM)


Revision 729 - Directory Listing
Modified Tue Jul 26 11:18:46 2005 UTC (18 years, 9 months ago) by persson
* improved filter cutoff calculation by adding support for the
  following gig parameters: Cutoff freq (used when no cutoff
  controller is defined), Control invert, Minimum cutoff, Velocity
  curve and Velocity range. The keyboard tracking now also scales
  cutoff frequency, not just resonance.


Revision 727 - Directory Listing
Modified Mon Jul 25 15:18:44 2005 UTC (18 years, 9 months ago) by schoenebeck
* fixed little inconsistency: LSCP commands 'LIST AVAILABLE_ENGINES' and
  'GET CHANNEL INFO' returned different names for the gig::Engine,
  returning now only 'GIG'


Revision 724 - Directory Listing
Modified Mon Jul 25 09:28:00 2005 UTC (18 years, 9 months ago) by iliev
- Fixed some typos


Revision 716 - Directory Listing
Modified Sun Jul 24 06:57:30 2005 UTC (18 years, 9 months ago) by iliev
* Added configure option --enable-process-muted-channels
which can be used to enable the processing of muted channels


Revision 705 - Directory Listing
Modified Wed Jul 20 21:43:23 2005 UTC (18 years, 9 months ago) by schoenebeck
* support for muting sampler channels and solo mode of the same, two new
  LSCP commands ("SET CHANNEL MUTE" and "SET CHANNEL SOLO") and two new
  fields ("MUTE" and "SOLO") for command "GET CHANNEL INFO" were
  introduced for this (patch by Grigor Iliev, a bit adjusted)


Revision 696 - Directory Listing
Modified Sat Jul 16 19:37:52 2005 UTC (18 years, 9 months ago) by persson
* fine tuning of the EG modulation parameters


Revision 690 - Directory Listing
Modified Fri Jul 15 16:43:56 2005 UTC (18 years, 9 months ago) by schoenebeck
just to clearify that the previous change refers to voice stealing


Revision 688 - Directory Listing
Modified Thu Jul 14 12:25:20 2005 UTC (18 years, 9 months ago) by schoenebeck
* if period time of chosen audio device is too small (< MIN_RELEASE_TIME)
  then simply show a warning about possible click sounds and reduce the
  volume ramp down appropriately instead of cancelling the audio device
  connection


Revision 687 - Directory Listing
Modified Tue Jul 12 22:37:21 2005 UTC (18 years, 9 months ago) by schoenebeck
* minor efficiency fix (LFO preprocessing was performed even though the
  respective LFO was disabled by the instrument patch)


Revision 685 - Directory Listing
Modified Tue Jul 5 19:30:37 2005 UTC (18 years, 9 months ago) by persson
* gcc 4.0 compilation fixes


Revision 675 - Directory Listing
Modified Wed Jun 22 22:09:28 2005 UTC (18 years, 10 months ago) by schoenebeck
* update MIDI channel info on program change


Revision 670 - Directory Listing
Modified Tue Jun 21 18:00:52 2005 UTC (18 years, 10 months ago) by schoenebeck
* don't reset volume, pan, pitch and MIDI controller values on instrument
  or audio output device change
* send 'CHANNEL_INFO' LSCP event on MIDI program change messages


Revision 669 - Directory Listing
Modified Tue Jun 21 13:33:19 2005 UTC (18 years, 10 months ago) by schoenebeck
* fixed minor issue with null/silence samples
  (those stole voices even though they don't need a voice at all which
  resulted in "voice stealing didn't work out" messages)


Revision 668 - Directory Listing
Modified Mon Jun 20 15:30:47 2005 UTC (18 years, 10 months ago) by schoenebeck
* fixed a key group bug which caused undefined behavior in conjunction with
  stolen voices (this case was usually followed by a "killed voice
  survived" or "voice stealing didn't work out" error message)


Revision 665 - Directory Listing
Modified Sun Jun 19 15:11:20 2005 UTC (18 years, 10 months ago) by schoenebeck
finally fixes endless loop in voice stealing algorithm (hopefully)


Revision 663 - Directory Listing
Modified Sat Jun 18 21:37:03 2005 UTC (18 years, 10 months ago) by schoenebeck
* another voice stealing fix
  (endless loop occured when voices were stolen from other engine channels)


Revision 660 - Directory Listing
Modified Fri Jun 17 19:49:30 2005 UTC (18 years, 10 months ago) by schoenebeck
* LSCP server: fixed LSCP event "CHANNEL_INFO" notification
  (e.g. did not notify on volume changes)


Revision 659 - Directory Listing
Modified Thu Jun 16 21:35:30 2005 UTC (18 years, 10 months ago) by schoenebeck
* don't reset scale tuning on instrument or audio output device change


Revision 654 - Directory Listing
Modified Wed Jun 15 20:25:25 2005 UTC (18 years, 10 months ago) by schoenebeck
* fixed 'make dist' build rule to include all necessary files


Revision 649 - Directory Listing
Modified Wed Jun 15 00:01:28 2005 UTC (18 years, 10 months ago) by schoenebeck
* revised voice stealing (fixes crash caused by voice stealing)


Revision 630 - Directory Listing
Modified Sat Jun 11 14:51:49 2005 UTC (18 years, 10 months ago) by persson
* volume of release triggered samples now depends on note-on velocity,
  note length and gig parameter "release trigger decay" instead of
  note-off velocity.


Revision 617 - Directory Listing
Modified Wed Jun 8 21:00:06 2005 UTC (18 years, 10 months ago) by schoenebeck
* hand-crafted assembly optimization code can be disabled with
  './configure --disable-asm' (definitely not recommended)


Revision 614 - Directory Listing
Modified Mon Jun 6 16:54:20 2005 UTC (18 years, 10 months ago) by persson
* support for the gig parameters for "release velocity response"
  curves, which means the decay and release times now depends on
  velocity. The softer velocity, the longer release.
* fine tuning of the envelope curves. Decay1 and release now have two
  parts, first linear and then exponential at the end.


Revision 563 - Directory Listing
Modified Sun May 22 20:43:32 2005 UTC (18 years, 11 months ago) by schoenebeck
* (re)implemented voice stealing algorithm "oldestvoiceonkey" and made it
  the default voice stealing algorithm
* added new LSCP command "GET SERVER INFO" which currently returns
  description and version about this sampler
* added some API documentation comments
* minor cleanup


Revision 554 - Directory Listing
Modified Thu May 19 19:25:14 2005 UTC (18 years, 11 months ago) by schoenebeck
* All compile time options are now centrally alterable as arguments to the
  ./configure script. All options are C Macros beginning with CONFIG_
  prefix and will be placed into auto generated config.h file.


Revision 539 - Directory Listing
Modified Wed May 11 20:03:02 2005 UTC (18 years, 11 months ago) by schoenebeck
lowered MAX_AUDIO_VOICES to pessimistic 64


Revision 538 - Directory Listing
Modified Wed May 11 20:02:17 2005 UTC (18 years, 11 months ago) by schoenebeck
just some cleanup


Revision 517 - Directory Listing
Modified Sun May 8 00:26:21 2005 UTC (18 years, 11 months ago) by schoenebeck
* implemented progress indicator for loading instruments
  (can be polled with "GET CHANNEL INFO", field "INSTRUMENT_STATUS")


Revision 505 - Directory Listing
Modified Tue May 3 01:00:25 2005 UTC (18 years, 11 months ago) by schoenebeck
fixed libgig include rules


Revision 504 - Directory Listing
Modified Tue May 3 00:37:35 2005 UTC (18 years, 11 months ago) by schoenebeck
* removed statically included libgig sources from the LinuxSampler code
  base - you now have to compile and install libgig separately
* added -Wreturn-type gcc switch to avoid bugs with no returns on non void
  functions in future


Revision 502 - Directory Listing
Modified Fri Apr 29 14:20:22 2005 UTC (19 years ago) by letz
Fix destructor


Revision 498 - Directory Listing
Modified Sun Apr 10 18:37:45 2005 UTC (19 years ago) by schoenebeck
* fixed bug in MMX/SSE(1) implementation of the sample loop code (caused
  RAM-only voices to crash when entering the sample's loop section under
  certain conditions)


Revision 497 - Directory Listing
Modified Sun Apr 10 11:55:44 2005 UTC (19 years ago) by persson
* removed some build warnings
* fixed a bug with hanging notes when using sustain pedal
* release samples are not triggered anymore when sustain pedal is down


Revision 493 - Directory Listing
Modified Sun Apr 3 19:53:43 2005 UTC (19 years ago) by schoenebeck
* fixed MIDI GS scale tuning (via SysEx Message)


Revision 475 - Directory Listing
Modified Thu Mar 17 23:56:56 2005 UTC (19 years, 1 month ago) by schoenebeck
* fixed segmentation fault on "GET CHANNEL INFO" commands which occured
  when an engine type was selected but no audio device connected yet to
  the sampler channel (fixes bug #4)


Revision 474 - Directory Listing
Modified Thu Mar 17 21:28:04 2005 UTC (19 years, 1 month ago) by schoenebeck
forgot to commit this with recent batch


Revision 473 - Directory Listing
Modified Thu Mar 17 20:13:08 2005 UTC (19 years, 1 month ago) by schoenebeck
* fixed event leak (events sent to inactive keys were not freed)
* implemented MIDI channel mode messages "All Sound Off", "Reset All
  Controller", "All Notes Off" (fixes bug #5)


Revision 466 - Directory Listing
Modified Tue Mar 15 19:27:01 2005 UTC (19 years, 1 month ago) by schoenebeck
* fixed another crash under heavy load which was accidently introduced with
  the previous commit - events have to be processed completely on all
  engine channels before audio is rendered (fixes bug #7)


Revision 461 - Directory Listing
Modified Mon Mar 14 22:36:48 2005 UTC (19 years, 1 month ago) by schoenebeck
forgot to commit this with recent batch


Revision 460 - Directory Listing
Modified Mon Mar 14 22:35:44 2005 UTC (19 years, 1 month ago) by schoenebeck
* spawning layered voices now within a loop instead of recursively (fixes
  segmentation fault under heavy voice count load and reduces stress on the
  stack)
* voice stealing operates on all engine channels now
* limit voice stealing to MAX_AUDIO_VOICES thefts per audio fragment cycle
* fixed keygroup handling (layered voices could kill each other)


Revision 438 - Directory Listing
Modified Wed Mar 9 22:12:15 2005 UTC (19 years, 1 month ago) by persson
* 24-bit decompression now supports the 20 and 18 bit formats
* support for "random" and "round robin" dimensions
* removed a warning printout for empty samples during instrument
  loading


Revision 425 - Directory Listing
Modified Sat Mar 5 07:27:48 2005 UTC (19 years, 1 month ago) by persson
* fixed a bug that sometimes caused clicks at the beginning of samples
* added denormal number elimination for CPUs with SSE2 support


Revision 424 - Directory Listing
Modified Fri Mar 4 22:54:11 2005 UTC (19 years, 1 month ago) by schoenebeck
* implemented MIDI Control Change 7 (Volume)
* implemented MIDI Control Change 10 (Panpot)


Revision 420 - Directory Listing
Modified Thu Mar 3 03:25:17 2005 UTC (19 years, 1 month ago) by schoenebeck
* fixed some segfaults (which occured on EngineChannel destruction)
* InstrumentResourceManager: recache small samples if their current
  number of silence sample points are not sufficient enough for the used
  audio output device
* src/linuxsampler.cpp: voice / streams statistics on the console is back
  again (can be turned on with command line switch --statistics)


Revision 412 - Directory Listing
Modified Sat Feb 26 22:44:51 2005 UTC (19 years, 2 months ago) by schoenebeck
* gig::Engine: fixed silence (engine channels' events were not imported
  into the engine, fixed undesired creation of new gig::Engine instances
  (and disk threads)
* AudioOutputDevice: reverted behavior to render per Engine instance (and
  not per EngineChannel instance)


Revision 411 - Directory Listing
Modified Sat Feb 26 02:01:14 2005 UTC (19 years, 2 months ago) by schoenebeck
* design change: using now one sampler engine instance and one disk thread
  instance for all sampler channels that are connected to the same audio
  output device (and are using the same engine type of course)
* added EngineFactory / EngineChannelFactory to remove the annoying build
  dependencies e.g. of the lscpserver to the actual sampler engine
  implementations
* bumped version to 0.3.0 (current CVS state is still quite broken,
  previous, stable CVS version was tagged as "v0_2_0" and is also available
  as source tarball)


Revision 407 - Directory Listing
Modified Wed Feb 23 19:14:14 2005 UTC (19 years, 2 months ago) by persson
* added support for sample parameter 'attenuation'


Revision 396 - Directory Listing
Modified Sun Feb 20 20:32:24 2005 UTC (19 years, 2 months ago) by persson
* fixed a bug that made some release triggered samples too short
  (envelope went directly from attack to release)


Revision 394 - Directory Listing
Modified Sun Feb 20 13:01:59 2005 UTC (19 years, 2 months ago) by persson
fixed my previous fix.


Revision 393 - Directory Listing
Modified Sun Feb 20 12:30:36 2005 UTC (19 years, 2 months ago) by persson
* fixed a bug that caused noise at end of samples


Revision 392 - Directory Listing
Modified Sat Feb 19 02:40:24 2005 UTC (19 years, 2 months ago) by schoenebeck
* fixed possibility that memory got not locked
* immediately set instrument status when calling LOAD INSTUMENT NON_MODAL


Revision 386 - Directory Listing
Modified Thu Feb 17 10:45:30 2005 UTC (19 years, 2 months ago) by letz
Add missing virtual destructor


Revision 385 - Directory Listing
Modified Thu Feb 17 02:53:45 2005 UTC (19 years, 2 months ago) by schoenebeck
* lscpserver: we now only use one instrument loader thread; commands for
  loading instruments in the background wait in a queue to be processed one
  by one to avoid possible race conditions and to improve I/O efficiency
* fixed possible race condition while streaming with multiple disk threads
  by using an own decompression buffer for each disk thread
* libgig: fixed some memory leaks caused by non virtual base constructors


Revision 376 - Directory Listing
Modified Sat Feb 12 23:48:50 2005 UTC (19 years, 2 months ago) by senkov
* Added INSTRUMENT_NAME to GET CHANNEL INFO command result set


Revision 368 - Directory Listing
Modified Fri Feb 11 13:13:54 2005 UTC (19 years, 2 months ago) by schoenebeck
* some fixes regarding the filter (fixes the "silence" bug which occured
  occasionally, caused by random biquad parameters which lead to unstable
  filter equation and thus to infinit filter output results)


Revision 361 - Directory Listing
Modified Wed Feb 9 01:22:18 2005 UTC (19 years, 2 months ago) by schoenebeck
* bunch of fixes for OSX (patch by Stephane Letz)


Revision 354 - Directory Listing
Modified Sat Jan 29 15:17:59 2005 UTC (19 years, 2 months ago) by schoenebeck
* support for keyswitching
* ignore if no sample was defined for region(s) or dimension region(s)
(patch by Andreas Persson)


Revision 351 - Directory Listing
Modified Tue Jan 25 22:11:43 2005 UTC (19 years, 3 months ago) by schoenebeck
* fixed some memory leaks (patch by Gene Anders)


Revision 349 - Directory Listing
Modified Tue Jan 25 01:05:33 2005 UTC (19 years, 3 months ago) by schoenebeck
raised verbosity of debug message in case of caching a whole sample


Revision 348 - Directory Listing
Modified Sun Jan 23 21:24:16 2005 UTC (19 years, 3 months ago) by schoenebeck
* another crossfade fix (honoring AttenuationController for case 0,0,0,0,
  fixed cases in_start = in_end = CrossfadeControllerValue, fixed curve for
  cases out_start < CrossfadeControllerValue < out_end, honoring
  InvertAttenuationController parameter)
* support for up to 8 dimensions as introduced by Gig V3
(patch by Andreas Persson)


Revision 346 - Directory Listing
Modified Fri Jan 21 17:17:31 2005 UTC (19 years, 3 months ago) by schoenebeck
* libgig: fixed vcf_type_lowpassturbo value, fixed crossfade points order
* gig::Voice: fixed special crossfade case 0,0,0,0 which actually means no
  crossfade defined


Revision 336 - Directory Listing
Modified Mon Jan 3 03:33:51 2005 UTC (19 years, 3 months ago) by senkov
* Fixed a bug in assembly that cause crashes in some cases


Revision 335 - Directory Listing
Modified Mon Jan 3 02:48:25 2005 UTC (19 years, 3 months ago) by senkov
* Fixed pitch calculation. FineTune needs to be taken as is
 without multiplying it by 10.


Revision 333 - Directory Listing
Modified Sat Jan 1 08:18:07 2005 UTC (19 years, 3 months ago) by senkov
* Fix a basic diskthread multichannel issue.


Revision 332 - Directory Listing
Modified Sat Jan 1 03:06:06 2005 UTC (19 years, 3 months ago) by senkov
* Initialize the synthesis mode bitmask properly


Revision 330 - Directory Listing
Modified Wed Dec 29 01:14:15 2004 UTC (19 years, 3 months ago) by schoenebeck
* fixed endless loop at the end of sample playback
  (patch by Andreas Persson)


Revision 329 - Directory Listing
Modified Tue Dec 28 09:43:04 2004 UTC (19 years, 4 months ago) by senkov
* Fixes for engine reloading. Fixed streaming bugs in some
 cases only, most probably not all yet.


Revision 328 - Directory Listing
Modified Sat Dec 25 21:58:58 2004 UTC (19 years, 4 months ago) by schoenebeck
* architecture independence fixes, should now compile again for non x86
  systems
* tiny fix of command line switch --version


Revision 326 - Directory Listing
Modified Tue Dec 21 04:59:11 2004 UTC (19 years, 4 months ago) by senkov
Added profiler class


Revision 325 - Directory Listing
Modified Tue Dec 21 04:54:37 2004 UTC (19 years, 4 months ago) by senkov
* Added some profiling capabilities, bugs.


Revision 324 - Directory Listing
Modified Sat Dec 18 18:54:46 2004 UTC (19 years, 4 months ago) by senkov
* Applied patch from Andreas Persson and made a few other small
 changes to fix a bug in the filter code.


Revision 323 - Directory Listing
Modified Tue Dec 14 00:32:21 2004 UTC (19 years, 4 months ago) by schoenebeck
* fixed bug which caused samples not to be played back to their actual end
  (patch by Andreas Persson, added a small extra fix)


Revision 322 - Directory Listing
Modified Mon Dec 13 03:33:59 2004 UTC (19 years, 4 months ago) by senkov
* fixed CalculateBiquadParameters() to set parameters for
 both right and left, not just left.


Revision 320 - Directory Listing
Modified Mon Dec 13 00:53:16 2004 UTC (19 years, 4 months ago) by schoenebeck
* introduced 'synthesis mode' to reduce the amount of code and conditionals
  for the current synthesis case in the main synthesis loop
* support for MMX and SSE(1) in the core synthesis algorithms (CPU feature
  detection at runtime, only x86 so far)


Revision 319 - Directory Listing
Modified Mon Dec 13 00:46:42 2004 UTC (19 years, 4 months ago) by schoenebeck
* introduced 'synthesis mode' to reduce the amount of code and conditionals
  for the current synthesis case in the main synthesis loop
* support for MMX and SSE(1) in the core synthesis algorithms (CPU feature
  detection at runtime, only x86 so far)


Revision 293 - Directory Listing
Modified Mon Oct 25 15:14:27 2004 UTC (19 years, 6 months ago) by schoenebeck
* gig::Engine: changed way how events make it from the input event queue
  into the engine's process chain (fixes forced segfault in EGADSR)
* Event.h: using signed type for fragment position for easier
  differentiation if event might happened before or after current fragment


Revision 288 - Directory Listing
Modified Tue Oct 19 00:36:34 2004 UTC (19 years, 6 months ago) by schoenebeck
* configure.in: added check for UNIX98 compatibility, check if there's at
  least one supported MIDI input and audio output system available, added
  conditionals for ALSA and JACK
* src/drivers/audio/Makefile.am: ALSA and JACK drivers are only compiled
  respectively if they're supported by the system
* MidiInputDeviceFactory.cpp, AudioOutputDeviceFactory.cpp: little
  workaround for reported linker problem
* removed autotools generated files from CVS


Revision 287 - Directory Listing
Modified Sat Oct 16 17:38:03 2004 UTC (19 years, 6 months ago) by schoenebeck
* fixed segfault which occured whenever a voice stole a voice and was in
  turn killed in the same audio fragment, to fix that the MIDI key
  informations are now updated only after all voices were processed


Revision 286 - Directory Listing
Modified Sat Oct 16 17:29:05 2004 UTC (19 years, 6 months ago) by schoenebeck
just added some sanity checks for debugging


Revision 285 - Directory Listing
Modified Thu Oct 14 21:31:26 2004 UTC (19 years, 6 months ago) by schoenebeck
* bunch of bugfixes (e.g. segfault on voice stealing)


Revision 284 - Directory Listing
Modified Thu Oct 14 21:24:39 2004 UTC (19 years, 6 months ago) by schoenebeck
raised EG_MIN_RELEASE_TIME a bit to avoid click sounds


Revision 273 - Directory Listing
Modified Fri Oct 8 21:04:51 2004 UTC (19 years, 6 months ago) by schoenebeck
forgot to modify include for Pool.h


Revision 271 - Directory Listing
Modified Fri Oct 8 20:51:39 2004 UTC (19 years, 6 months ago) by schoenebeck
* libgig: fixed panorama value in DimensionRegion (invalid conversion
  from signed 7 bit to signed 8 bit)
* src/linuxsampler.cpp: stacktrace is now automatically shown on fatal
  errors (that is  segmentation faults, etc.), gdb should be installed for
  this to work
* gig::Voice: tiny accuracy fix of pan calculation
* replaced old pool classes by completely new ones which now offer
  Iterator abstraction


Revision 268 - Directory Listing
Modified Thu Oct 7 22:20:20 2004 UTC (19 years, 6 months ago) by capela
* gcc-c++ 3.4.1 compability fixes.


Revision 259 - Directory Listing
Modified Wed Sep 29 03:16:01 2004 UTC (19 years, 6 months ago) by senkov
* Fixed a hang in stage_fadeout


Revision 252 - Directory Listing
Modified Thu Sep 23 21:33:43 2004 UTC (19 years, 7 months ago) by schoenebeck
* fixed another bug in EGADSR which caused clicks when voices were killed
  near the audio fragment end


Revision 251 - Directory Listing
Modified Mon Sep 20 12:27:48 2004 UTC (19 years, 7 months ago) by schoenebeck
* changed curve type from exponential to linear in stage 'end' of
  EGADSR (fixes click sounds at the end of voices)


Revision 250 - Directory Listing
Modified Mon Sep 20 00:31:13 2004 UTC (19 years, 7 months ago) by schoenebeck
* added first two experimental voice stealing algorithms ('oldestkey' -
which just steals the oldest voice on the oldest key and 'keymask' - which
tries to pick the oldest voice on the same key where the new voice should
be spawned, if it fails it behaves like 'oldestkey'), the desired algorithm
can be selected at compile time (see Engine.h) will be configurable via
LSCP soon though


Revision 249 - Directory Listing
Modified Mon Sep 20 00:26:40 2004 UTC (19 years, 7 months ago) by schoenebeck
reduced EG_MIN_RELEASE_TIME to allow to finish kill process of a voice
within the same audio fragment, this will be e.g. be mandatory for voice
stealing


Revision 247 - Directory Listing
Modified Sun Sep 19 23:44:23 2004 UTC (19 years, 7 months ago) by senkov
* Small fix to pan coeff. calculation.
* (LS was silent with gigs where pan was 0).


Revision 246 - Directory Listing
Modified Sun Sep 19 14:12:55 2004 UTC (19 years, 7 months ago) by schoenebeck
just tidied up event type specific parameters (that is note-on specific
parameters, controle change specific parameters, etc.) in Event class


Revision 245 - Directory Listing
Modified Sat Sep 18 14:12:36 2004 UTC (19 years, 7 months ago) by schoenebeck
* support patch panorama info


Revision 244 - Directory Listing
Modified Fri Sep 17 01:01:11 2004 UTC (19 years, 7 months ago) by schoenebeck
* added support for scale tuning via MIDI GS system exclusive message


Revision 242 - Directory Listing
Modified Wed Sep 15 13:59:08 2004 UTC (19 years, 7 months ago) by schoenebeck
* added support for release trigger dimension (that is voices which are
  spawned when a key was released)
* libgig: bugfix in dimension region switching


Revision 239 - Directory Listing
Modified Sun Sep 12 14:48:19 2004 UTC (19 years, 7 months ago) by schoenebeck
* implemented key groups (a.k.a exclusive groups) which is important for
  drum patches and monphonic instruments
* src/engines/gig/Engine.cpp: bugfix in ProcessNoteOn() - did not always
  stick the note on event to the respective key's own event list although
  e.g. the EGADRS expects it to find there


Revision 237 - Directory Listing
Modified Sun Sep 12 01:59:40 2004 UTC (19 years, 7 months ago) by senkov
* Fixed a crash in EGADSR::Process()


Revision 236 - Directory Listing
Modified Thu Sep 9 18:44:18 2004 UTC (19 years, 7 months ago) by schoenebeck
* added support for crossfades
* support sample playback start offset


Revision 233 - Directory Listing
Modified Tue Sep 7 09:32:21 2004 UTC (19 years, 7 months ago) by schoenebeck
* added support for layers
* fixed initial pitch calculation which did not honor the sample's own
  sample rate


Revision 230 - Directory Listing
Modified Thu Sep 2 21:52:29 2004 UTC (19 years, 7 months ago) by schoenebeck
* src/engines/gig/Voice.cpp: dimension region selection takes current
  MIDI controller values into account


Revision 225 - Directory Listing
Modified Sun Aug 22 14:46:47 2004 UTC (19 years, 8 months ago) by schoenebeck
* set default volume to 1.0 in Gigasampler engine (was 0.0)
* implemented "SET CHANNEL AUDIO_OUTPUT_CHANNEL" LSCP command
* fixed "GET ENGINE INFO" LSCP command
* fixed "GET CHANNEL INFO" LSCP command
* src/network/lscp.y: fixed 'stringval' rule (returned string with formal
  apostrophes), fixed 'dotnum' rule (ignored position after decimal point)


Revision 203 - Directory Listing
Modified Tue Jul 13 22:44:13 2004 UTC (19 years, 9 months ago) by schoenebeck
forgot to change some things which was mandatory due to the recent
directory movements ('/src/audiodriver' -> '/src/drivers/audio',
'/src/mididriver' -> '/src/drivers/midi')


Revision 133 - Directory Listing
Modified Fri Jun 18 14:29:02 2004 UTC (19 years, 10 months ago) by capela
* Load Instrument patch applied; this patch makes the
  LOAD INSTRUMENT command to return immediately,
  almost/always with an OK response, while spawning
  the proper instrument file loading in the background.

* New INSTRUMENT_STATUS field on GET CHANNEL INFO result
  set; the instrument status value holds the load progress
  percentage if positive, otherwise a negative value is
  evidence of a load exception error.

* VERSION is now set to 0.2.


Revision 123 - Directory Listing
Modified Mon Jun 14 19:33:16 2004 UTC (19 years, 10 months ago) by schoenebeck
* src/common: added template class 'optional<>' which can be used e.g. as
  return type whenever a value might be returned, but don't has to; this
  template class pretty much acts like a pointer of the given type, but is
  much more safer than a simple pointer
* src/audiodriver: added static class AudioDeviceFactory to create audio
  devices at runtime by using a string and to obtain driver informations
  of drivers at runtime, driver classes should simply use the macro
  REGISTER_AUDIO_OUTPUT_DRIVER(DriverName,DriverClass) in their cpp file
  to register the driver to LinuxSampler (no changes needed anymore in the
  LS code to add a new audio output driver)
* src/drivers: added classes to dynamically manage driver parameters; there
  are two different kinds of parameters: parameters which are need to
  create a new device (DeviceCreationParameterX) used to e.g. create an
  audio output device or a MIDI input device and parameters which are only
  available at runtime, means when a device is already created
  (DeviceRuntimeParameterX) which will be e.g. used as audio channel
  parameters and MIDI port parameters
* src/linuxsampler.cpp: all registered audio output drivers will be shown
  on the console on startup
* src/network: implemented configuration of audio output devices via LSCP


Revision 112 - Directory Listing
Modified Sun Jun 6 20:57:28 2004 UTC (19 years, 10 months ago) by senkov
* Added methods for CHANNEL_INFO command


Revision 111 - Directory Listing
Modified Sat Jun 5 20:55:50 2004 UTC (19 years, 10 months ago) by schoenebeck
* LSCP allows now comment lines, that is lines starting with a hash ('#')
  character
* src/engines/gig/Voice.cpp: fixed "SET CHANNEL VOLUME" bug


Revision 99 - Directory Listing
Modified Tue Jun 1 16:19:40 2004 UTC (19 years, 10 months ago) by letz
* Do polynomial interpolation computation in float


Revision 97 - Directory Listing
Modified Mon May 31 19:28:09 2004 UTC (19 years, 10 months ago) by schoenebeck
* src/engines/gig/Voice.h: fixed bug which caused to hear only one audio
  channel


Revision 84 - Directory Listing
Modified Sun May 23 20:17:31 2004 UTC (19 years, 11 months ago) by schoenebeck
forgot to remove a redundant assignment (only a small efficiency issue)


Revision 80 - Directory Listing
Modified Sun May 23 19:16:33 2004 UTC (19 years, 11 months ago) by schoenebeck
* biquad filter parameters are now calculated outside the interpolate
  loop for better performance
* couple of loop unroll optimizations
* filter is now enabled by default
* cubic interpolation is now enabled by default
* reduced debug level to 1 to lower verbosity
* raised default limit for voices to 128
* raised default limit for streams to 150
* added some compiler optimization flags (-ffast-math -march -mcpu)


Revision 64 - Directory Listing
Modified Thu May 6 20:06:20 2004 UTC (19 years, 11 months ago) by schoenebeck
* src/Sampler.cpp: fixed 3 stupid but fatal bugs that left in the rush (in
  method SamplerChannels(), CreateAudioOutputDevice() and
  CreateMidiInputDevice())
* src/network/lscpserver.cpp: implemented LSCP command
  'SET CHANNEL MIDI_INPUT_CHANNEL'
* src/Sampler.h: moved enums 'audio_output_type_t', 'midi_input_type_t'
  and 'engine_type_t' into the respective base classes
  ('AudioOutputDevice', 'MidiInputDevice', 'Engine')


Revision 57 - Directory Listing
Modified Sun May 2 17:45:43 2004 UTC (19 years, 11 months ago) by schoenebeck
* src/common/Thread.cpp: method StartThread() now blocks until thread
  actually runs, mlockall() will only be applied for realtime threads
* libtoolized liblinuxsampler
* initiated automatic unit tests against the LinuxSampler codebase
  (see src/testcases): already added a couple of tests for the Thread and
  Mutex classes, you have to explicitly compile the unit tests by running
  'make testcases' (you need to have cppunit installed though) and then you
  can run the console version of the test runner by calling
  'src/testcases/linuxsamplertest'
* src/Sampler.h: added API documentation


Revision 56 - Directory Listing
Modified Tue Apr 27 09:21:58 2004 UTC (20 years ago) by schoenebeck
updated copyright header for 2004


Revision 53 - Directory Listing
Added Mon Apr 26 17:15:51 2004 UTC (20 years ago) by schoenebeck
* completely restructured source tree
* implemented multi channel support
* implemented instrument manager, which controls sharing of instruments
  between multiple sampler engines / sampler channels
* created abstract classes 'AudioOutputDevice' and 'MidiInputDevice' for
  convenient implementation of further audio output driver and MIDI input
  driver for LinuxSampler
* implemented following LSCP commands: 'SET CHANNEL MIDI INPUT TYPE',
  'LOAD ENGINE', 'GET CHANNELS', 'ADD CHANNEL', 'REMOVE CHANNEL',
  'SET CHANNEL AUDIO OUTPUT TYPE'
* temporarily removed all command line options
* LSCP server is now launched by default


  ViewVC Help
Powered by ViewVC