/[svn]/linuxsampler/trunk/src/engines/EngineBase.h
ViewVC logotype

Log of /linuxsampler/trunk/src/engines/EngineBase.h

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 3205 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 24 20:05:38 2017 UTC (5 months, 3 weeks ago) by schoenebeck
File length: 123969 byte(s)
Diff to previous 3188
* Fixed invalid (note-on) event ID being assigned to new Note
  objects.
* Fixed a bunch of scheduler time related bugs.
* Bumped version (2.0.0.svn47).


Revision 3188 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 19 14:23:12 2017 UTC (5 months, 4 weeks ago) by schoenebeck
File length: 123726 byte(s)
Diff to previous 3118
* NKSP: Implemented built-in script function "change_vol_time()".
* NKSP: Implemented built-in script function "change_tune_time()".
* NKSP: Implemented built-in script function "fade_in()".
* NKSP: Implemented built-in script function "fade_out()".
* NKSP: Fixed acceptance of wrong data type of parameters passed to
  built-in script functions "change_vol()", "change_tune()",
  "change_pan()", "change_cutoff()", "change_reso()",
  "change_attack()", "change_decay()", "change_release()",
  "change_amp_lfo_depth()", "change_amp_lfo_freq()",
  "change_pitch_lfo_depth()" and "change_pitch_lfo_freq()".
* Bumped version (2.0.0.svn45).


Revision 3118 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 21 13:33:03 2017 UTC (6 months, 3 weeks ago) by schoenebeck
File length: 122011 byte(s)
Diff to previous 3073
* 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 3073 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 5 16:04:00 2017 UTC (10 months, 1 week ago) by schoenebeck
File length: 121119 byte(s)
Diff to previous 3054
* NKSP: Implemented built-in script array variable "%ALL_EVENTS".
* Bumped version (2.0.0.svn35).


Revision 3054 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 15 12:47:45 2016 UTC (11 months ago) by schoenebeck
File length: 121119 byte(s)
Diff to previous 3034
* Fixed numerous compiler warnings.
* Bumped version (2.0.0.svn32).


Revision 3034 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 31 00:05:00 2016 UTC (12 months, 2 weeks ago) by schoenebeck
File length: 121065 byte(s)
Diff to previous 2972
* Fixed a bunch of minor issues (mostly compiler warnings).
* Bumped version (2.0.0.svn31).


Revision 2972 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 22 14:37:34 2016 UTC (15 months, 3 weeks ago) by schoenebeck
File length: 120139 byte(s)
Diff to previous 2962
* NKSP Fix: "init" event handler was not always executed when a script
  was loaded.
* NKSP built-in wait() script function: abort script execution if
  a negative or zero wait time was passed as argument (since this is
  a common indication of a bug either of the script or even of the
  engine, which could lead to RT instability or even worse).
* Bumped version (2.0.0.svn24).


Revision 2962 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 17 17:54:04 2016 UTC (16 months ago) by schoenebeck
File length: 119752 byte(s)
Diff to previous 2953
* NKSP: Fixed all change_*() built-in script functions to apply their
  synthesis parameter changes immediately in case the respective note
  was triggered at the same time, instead of scheduling the parameter
  change, especially because it would cause some parameter types's
  changes either to be ramped (i.e. change_vol()) or other types even
  to have not effect at all (i.e. change_attack()).
* Bumped version (2.0.0.svn20).


Revision 2953 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 16 11:24:39 2016 UTC (16 months ago) by schoenebeck
File length: 119595 byte(s)
Diff to previous 2952
* NKSP: Implemented built-in script function "change_attack()".
* NKSP: Implemented built-in script function "change_decay()".
* NKSP: Implemented built-in script function "change_release()".
* Bumped version (2.0.0.svn19).


Revision 2952 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 16 11:19:31 2016 UTC (16 months ago) by persson
File length: 118965 byte(s)
Diff to previous 2948
* fixed C++11 compilation error


Revision 2948 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 15 15:29:04 2016 UTC (16 months ago) by schoenebeck
File length: 118974 byte(s)
Diff to previous 2938
* NKSP: Implemented built-in script function "stop_wait()".
* NKSP: Implemented built-in script variable "$NI_CALLBACK_ID".
* NKSP: Implemented built-in script variable "$NI_CALLBACK_TYPE".
* NKSP: Implemented built-in script variable "$NKSP_IGNORE_WAIT".
* NKSP: Added support for read-only built-in variables
  (respectively handled by the script parser).
* NKSP: Added built-in script constant "$NI_CB_TYPE_INIT".
* NKSP: Added built-in script constant "$NI_CB_TYPE_NOTE".
* NKSP: Added built-in script constant "$NI_CB_TYPE_RELEASE".
* NKSP: Added built-in script constant "$NI_CB_TYPE_CONTROLLER".
* Bumped version (2.0.0.svn17).


Revision 2938 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 11 17:10:40 2016 UTC (16 months, 1 week ago) by schoenebeck
File length: 118835 byte(s)
Diff to previous 2935
* Fixed behavior of built-in instrument script functions play_note()
  and note_off(), which must be distinguished engine internally
  from "real" MIDI note on/off events in order to avoid
  misbehaviors like hanging notes.
* Bumped version (2.0.0.svn13).


Revision 2935 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 10 14:24:13 2016 UTC (16 months, 1 week ago) by schoenebeck
File length: 114991 byte(s)
Diff to previous 2931
* NKSP: Added & implemented built-in script function "change_cutoff()".
* NKSP: Added & implemented built-in script function "change_reso()".
* NKSP: Added & implemented built-in script function "event_status()".
* NKSP: Added built-in script constants "$EVENT_STATUS_INACTIVE" and
  "$EVENT_STATUS_NOTE_QUEUE" both for being used as flags for
  built-in "event_status()" script function.
* NKSP language: Added support for bitwise operators ".or.", ".and."
  and ".not.".
* NKSP language scanner: Fixed IDs matching to require at least one
  character (i.e. when matching function names or variable names).
* NKSP language scanner: disabled unusued rules.
* Bumped version (2.0.0.svn12).


Revision 2931 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 9 14:38:33 2016 UTC (16 months, 1 week ago) by schoenebeck
File length: 114565 byte(s)
Diff to previous 2927
* Implemented built-in instrument script function "change_vol()".
* Implemented built-in instrument script function "change_tune()".
* Implemented built-in instrument script function "change_pan()".
* Bumped version (2.0.0.svn11).


Revision 2927 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 30 16:44:46 2016 UTC (16 months, 2 weeks ago) by schoenebeck
File length: 111015 byte(s)
Diff to previous 2884
* 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 2884 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 20 15:22:58 2016 UTC (18 months, 4 weeks ago) by schoenebeck
File length: 109418 byte(s)
Diff to previous 2879
* Automake: set environment variable GCC_COLORS=auto to allow GCC to
  auto detect whether it (sh/c)ould output its messages in color.
* Fixed behavior of built-in script function "ignore_event()".
* Bumped version (2.0.0.svn4).


Revision 2879 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 19 14:07:53 2016 UTC (18 months, 4 weeks ago) by schoenebeck
File length: 108931 byte(s)
Diff to previous 2871
* 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 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Apr 10 18:22:23 2016 UTC (19 months, 1 week ago) by schoenebeck
File length: 99098 byte(s)
Diff to previous 2837
* 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 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 23 06:14:00 2015 UTC (2 years, 2 months ago) by persson
File length: 92658 byte(s)
Diff to previous 2659
* fixed printf type errors (mostly in debug messages)



Revision 2659 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 29 19:34:28 2014 UTC (3 years, 4 months ago) by schoenebeck
File length: 92630 byte(s)
Diff to previous 2645
* Fixed crash which happened if instrument without
  instrument script was loaded (fixes #227).
* Bumped version (1.0.0.svn55).


Revision 2645 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 18 00:14:57 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 92602 byte(s)
Diff to previous 2618
* RT instrument scripts: Pass/preserve polyphonic variable data
  from respective "note" event handler to "release" event handler.
* Fixed theoretical memory leak regarding instrument scripts.
* Bumped version (1.0.0.svn54).


Revision 2618 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 11 11:39:44 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 88523 byte(s)
Diff to previous 2614
* Fixed execution of "init" instrument script handler.
* Fixed further crashes.
* Bumped version (1.0.0.svn50).


Revision 2614 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 10 17:22:48 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 88365 byte(s)
Diff to previous 2613
* Fixed silence and another crash.
* Bumped version (1.0.0.svn49).


Revision 2613 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 10 15:17:01 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 88282 byte(s)
Diff to previous 2612
* Implemented built-in script int array variable $KEY_DOWN.
* Bumped version (1.0.0.svn48).


Revision 2612 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 10 13:32:16 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 88084 byte(s)
Diff to previous 2611
* Fixed crashes when exiting the sampler.
* Bumped version (1.0.0.svn47).


Revision 2611 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 9 19:20:37 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 88268 byte(s)
Diff to previous 2598
* 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 2598 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 6 12:38:54 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 87401 byte(s)
Diff to previous 2596
* ScriptVM (WIP): Built-in script function "play_note()" now returns the
  event ID of the triggered note.
* ScriptVM (WIP): Implemented built-in script int variable $EVENT_ID.
* ScriptVM (WIP): Implemented built-in script function "ignore_event()".
* ScriptVM (WIP): Implemented built-in script function
  "ignore_controller()" (accepts one and no argument).
* Bumped version (1.0.0.svn44).


Revision 2596 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 5 19:39:12 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 87337 byte(s)
Diff to previous 2594
* ScriptVM (WIP): Implemented execution of script event
  handlers "note" and "release".
* ScriptVM (WIP): Implemented built-in script function
  "play_note()" (only two of the max. four function
  arguments are currently implemented yet though).
* ScriptVM (WIP): Fixed incorrect handling of
  suspended scripts.
* Bumped version (1.0.0.svn43).


Revision 2594 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 5 00:16:25 2014 UTC (3 years, 5 months ago) by schoenebeck
File length: 87100 byte(s)
Diff to previous 2559
* 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 2559 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun May 18 17:38:25 2014 UTC (3 years, 6 months ago) by schoenebeck
File length: 81126 byte(s)
Diff to previous 2448
* 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 2448 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 3 14:26:32 2013 UTC (4 years, 6 months ago) by schoenebeck
File length: 80540 byte(s)
Diff to previous 2434
* Immediately apply scale tuning changes to active voices.
* Exposed scale tuning to C++ API (along to the already existing standard
  SysEx way).
* Bumped version to 1.0.0.svn21


Revision 2434 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 7 19:23:24 2013 UTC (4 years, 8 months ago) by schoenebeck
File length: 79654 byte(s)
Diff to previous 2427
* Started to spread new C++ keyword "override" over the code base
  (keyword introduced with C++11 standard).


Revision 2427 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Mar 2 07:03:04 2013 UTC (4 years, 8 months ago) by persson
File length: 79527 byte(s)
Diff to previous 2410
* code refactoring: added a lock guard class for exception safe mutex
  handling and used it everywhere appropriate


Revision 2410 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 2 18:52:15 2013 UTC (4 years, 9 months ago) by schoenebeck
File length: 79537 byte(s)
Diff to previous 2382
* Several fixes in JACK audio driver:
- React on sample rate changes.
- React on buffer size changes.
- jack_port_get_buffer() was cached and called
  outside RT context.


Revision 2382 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Dec 2 16:30:42 2012 UTC (4 years, 11 months ago) by persson
File length: 79258 byte(s)
Diff to previous 2327
* 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 2327 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Mar 10 16:16:14 2012 UTC (5 years, 8 months ago) by persson
File length: 79462 byte(s)
Diff to previous 2298
* sfz/sf2 engine: fixed crash when using small audio fragment size


Revision 2298 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 9 17:04:24 2011 UTC (5 years, 11 months ago) by iliev
File length: 79468 byte(s)
Diff to previous 2296
* use different EQ effect instance for every voice


Revision 2296 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 8 20:03:47 2011 UTC (5 years, 11 months ago) by iliev
File length: 79339 byte(s)
Diff to previous 2244
* fixed crash when trying to create an effect instance with controls
  which min and/or max values depend on the sample rate
* experimental support for per voice equalization (work in progress)
* sfz engine: implemented opcodes eq1_freq, eq2_freq, eq3_freq,
  eq1_freqccN, eq2_freqccN, eq3_freqccN, eq1_bw, eq2_bw, eq3_bw,
  eq1_bwccN, eq2_bwccN, eq3_bwccN, eq1_gain, eq2_gain, eq3_gain,
  eq1_gainccN, eq2_gainccN, eq3_gainccN


Revision 2244 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 18 11:32:33 2011 UTC (6 years, 3 months ago) by iliev
File length: 79187 byte(s)
Diff to previous 2162
* sfz engine: use common pool of CC objects to minimize RAM usage


Revision 2162 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 8 18:22:50 2011 UTC (6 years, 9 months ago) by persson
File length: 78972 byte(s)
Diff to previous 2127
* bugfix: playing a note while changing the instrument could cause a
  crash, or give "Handing back unknown region" error messages


Revision 2127 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 22 18:59:16 2010 UTC (7 years, 1 month ago) by persson
File length: 78697 byte(s)
Diff to previous 2121
* fixed crash when deleting a sampler channel or changing engine type
  while an instrument load was in progress


Revision 2121 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 14 17:09:08 2010 UTC (7 years, 2 months ago) by schoenebeck
File length: 78697 byte(s)
Diff to previous 2115
* implemented Roland GS NRPN 1ArrH which allows to set volume per note
* implemented Roland GS NRPN 1CrrH which allows to set pan per note
* implemented Roland GS NRPN 1DrrH which allows to set reverb send per
  note (in this implementation of the sampler its simply hard routed to
  the 1st effect send of the sampler channel, no matter what the actual
  effect type is)
* implemented Roland GS NRPN 1ErrH which allows to set chorus send per
  note (in this implementation of the sampler its simply hard routed to
  the 2nd effect send of the sampler channel, no matter what the actual
  effect type is)
* bumped version to 1.0.0cvs4


Revision 2115 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 12 15:36:15 2010 UTC (7 years, 3 months ago) by persson
File length: 73119 byte(s)
Diff to previous 2114
* sfz engine: added support for controller triggered regions
  (on_locc/on_hicc)
* sfz engine: added support for loop_mode=one_shot


Revision 2114 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 10 12:05:19 2010 UTC (7 years, 3 months ago) by persson
File length: 73116 byte(s)
Diff to previous 2055
* sfz engine: improved support for exclusive groups (group, off_by and
  off_mode)
* minor valgrind fixes


Revision 2055 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 30 10:30:02 2010 UTC (7 years, 9 months ago) by persson
File length: 73402 byte(s)
Diff to previous 2043
* 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 2043 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 9 09:37:01 2010 UTC (7 years, 10 months ago) by persson
File length: 73400 byte(s)
Diff to previous 2027
* 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 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 3 19:27:42 2009 UTC (8 years ago) by iliev
File length: 73203 byte(s)
Diff to previous 2015
* 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 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Oct 25 22:22:52 2009 UTC (8 years ago) by iliev
File length: 70448 byte(s)
Diff to previous 2012
* Refactoring: moved the independent code from gig::Voice to base classes
* SoundFont format engine: implemented EG1 & EG2


Revision 2012 - (view) (download) (as text) (annotate) - [select for diffs]
Added Fri Oct 23 17:53:17 2009 UTC (8 years ago) by iliev
File length: 70370 byte(s)
* 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


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC