/[svn]/linuxsampler/trunk/src/scriptvm/ScriptVM.h
ViewVC logotype

Log of /linuxsampler/trunk/src/scriptvm/ScriptVM.h

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 3733 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 1 18:11:20 2020 UTC (4 years, 2 months ago) by schoenebeck
File length: 19420 byte(s)
Diff to previous 3678
NKSP: Added support for 'patch' variables.

* NKSP language: Added support for 'patch' variable qualifier
  (as new dedicated keyword 'patch').

* NKSP parser: capture locations of 'patch' variable declarations
  in script's source code.

* ScriptVM: Allow patching 'patch' script variables by replacing
  their default assignment expression with a supplied replacement
  variable initialization expression by optional 2nd argument when
  calling loadScript().

* ScriptVM: Allow retrieval of default initialization expressions
  of all 'patch' variables by optional 3rd argument when calling
  loadScript() (i.e. for instrument editors).

* gig engine: Implemented support for loading real-time instrument
  scripts with 'patch' variables bundled with gig instruments.

* Bumped version (2.1.1.svn46).



Revision 3678 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 27 22:46:08 2019 UTC (4 years, 3 months ago) by schoenebeck
File length: 16838 byte(s)
Diff to previous 3590
* NKSP: Added built-in script functions "msb()" and "lsb()".

* Bumped version (2.1.1.svn26).


Revision 3590 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 2 09:03:31 2019 UTC (4 years, 7 months ago) by schoenebeck
File length: 16752 byte(s)
Diff to previous 3573
NKSP: Implemented common real number math functions.

* Added built-in real number functions "round()", "ceil()", "floor()",
  "sqrt()", "log()", "log2()", "log10()", "exp()", "pow()", "sin()",
  "cos()", "tan()", "asin()", "acos()", "atan()".

* Added built-in script real number constant "~NI_MATH_PI".

* Added built-in script real number constant "~NI_MATH_E".

* Added NKSP test cases for built-in functions "round()", "ceil()",
  "floor()", "sqrt()", "log()", "log2()", "log10()", "exp()", "pow()",
  "sin()", "cos()", "tan()", "asin()", "acos()", "atan()".

* Bumped version (2.1.1.svn14).


Revision 3573 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 27 21:36:53 2019 UTC (4 years, 7 months ago) by schoenebeck
File length: 15098 byte(s)
Diff to previous 3557
NKSP: Introducing floating point support.

* NKSP language: Added support for NKSP real number literals and
  arithmetic operations on them (e.g. "(3.9 + 2.9) / 12.3 - 42.0").

* NKSP language: Added support for NKSP real number (floating point)
  script variables (declare ~foo := 3.4).

* NKSP language: Added support for NKSP real number (floating point)
  array script variables (declare ?foo[3] := ( 1.1, 2.7, 49.0 )).

* NKSP built-in script function "message()" accepts now real number
  argument as well.

* Added built-in NKSP script function "real_to_int()" and its short
  hand form "int()" for casting from real number to integer in NKSP
  scripts.

* Added built-in NKSP script function "int_to_real()" and its short
  hand form "real()" for casting from integer to real number in NKSP
  scripts.

* Bumped version (2.1.1.svn6).


Revision 3557 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 18 00:06:04 2019 UTC (4 years, 8 months ago) by schoenebeck
File length: 14984 byte(s)
Diff to previous 3551
* 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 3551 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 1 10:22:56 2019 UTC (4 years, 8 months ago) by schoenebeck
File length: 14985 byte(s)
Diff to previous 3311
* Added test cases for NKSP core language aspects and core built-in
  functions.
* NKSP: Added method ScriptVM::setExitResultEnabled() which allows
  to explicitly enable the built-in exit() function to optionally
  accept one function argument; the value of the passed exit()
  function argument will then become available by calling
  VMExecContext::exitResult() after script execution.
* Bumped version (2.1.1.svn2).


Revision 3311 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 15 16:24:59 2017 UTC (6 years, 9 months ago) by schoenebeck
File length: 13982 byte(s)
Diff to previous 3221
* NKSP: Added built-in preprocessor condition NKSP_NO_MESSAGE,
  which can be set to disable all subsequent built-in "message()"
  function calls on preprocessor level.
* Bumped version (2.0.0.svn71).


Revision 3221 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 26 18:30:42 2017 UTC (6 years, 10 months ago) by schoenebeck
File length: 13462 byte(s)
Diff to previous 3076
* NKSP Fix: Never suspend "init" event handlers.
* NKSP: Implemented built-in script function "array_equal()".
* NKSP: Implemented built-in script function "search()".
* NKSP: Implemented built-in script function "sort()".
* Bumped version (2.0.0.svn52).


Revision 3076 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 5 18:00:52 2017 UTC (7 years, 3 months ago) by schoenebeck
File length: 13310 byte(s)
Diff to previous 2974
* NKSP: Implemented built-in script function "in_range()".
* Bumped version (2.0.0.svn36).


Revision 2974 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 22 15:51:40 2016 UTC (7 years, 8 months ago) by schoenebeck
File length: 13258 byte(s)
Diff to previous 2970
* ScriptVM: Implemented automatic suspension of RT safety
  threatening scripts.
* Bumped version (2.0.0.svn25).


Revision 2970 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 21 16:22:55 2016 UTC (7 years, 8 months ago) by schoenebeck
File length: 12072 byte(s)
Diff to previous 2965
* NKSP: Implemented built-in script function "min()".
* NKSP: Implemented built-in script function "max()".
* Bumped version (2.0.0.svn23).


Revision 2965 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 18 09:42:28 2016 UTC (7 years, 9 months ago) by schoenebeck
File length: 11986 byte(s)
Diff to previous 2948
* NKSP: Implemented built-in script function "sh_left()".
* NKSP: Implemented built-in script function "sh_right()".
* Bumped version (2.0.0.svn22).


Revision 2948 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 15 15:29:04 2016 UTC (7 years, 9 months ago) by schoenebeck
File length: 11884 byte(s)
Diff to previous 2945
* 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 2945 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 14 00:22:26 2016 UTC (7 years, 9 months ago) by schoenebeck
File length: 11438 byte(s)
Diff to previous 2942
* NKSP: Implemented built-in script function "inc()".
* NKSP: Implemented built-in script function "dec()".
* NKSP language fix: division expressions were evaluated too often.
* NKSP language fix: string concatenation operator was right
  associative instead of left (to right).
* Bumped version (2.0.0.svn15).


Revision 2942 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 13 15:51:06 2016 UTC (7 years, 9 months ago) by schoenebeck
File length: 11352 byte(s)
Diff to previous 2889
* NKSP: Implemented built-in script variable "$KSP_TIMER".
* NKSP: Implemented built-in script variable "$NKSP_REAL_TIMER".
* NKSP: Implemented built-in script variable "$NKSP_PERF_TIMER".
* NKSP: Implemented built-in script variable "$ENGINE_UPTIME".
* Bumped version (2.0.0.svn14).


Revision 2889 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 25 17:28:23 2016 UTC (7 years, 11 months ago) by schoenebeck
File length: 10832 byte(s)
Diff to previous 2885
* Added new C++ API class "ScriptVMFactory".
* Instrument Scripts: extended parser issues to provide not only first
  line and first column, but also last line and last column of issue
  (thus marking the precise span of the issue within the source code).
* Bumped version (2.0.0.svn7).


Revision 2885 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 22 15:37:45 2016 UTC (7 years, 11 months ago) by schoenebeck
File length: 10697 byte(s)
Diff to previous 2879
* Instrument script classes now exported with the liblinuxsampler C++ API.
* Added new API method ScriptVM::syntaxHighlighting() which provides
  a convenient syntax highlighting backend for external instrument
  script editor applications.
* Bumped version (2.0.0.svn5).


Revision 2879 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 19 14:07:53 2016 UTC (8 years ago) by schoenebeck
File length: 9233 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 (8 years ago) by schoenebeck
File length: 9051 byte(s)
Diff to previous 2729
* 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 2729 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 31 17:56:21 2015 UTC (9 years ago) by schoenebeck
File length: 9050 byte(s)
Diff to previous 2728
- Just added API doc comments to Script VM code.


Revision 2728 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 31 17:51:10 2015 UTC (9 years ago) by schoenebeck
File length: 9043 byte(s)
Diff to previous 2727
- Just added API doc comments to Script VM code.


Revision 2727 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 31 17:46:11 2015 UTC (9 years ago) by schoenebeck
File length: 8886 byte(s)
Diff to previous 2619
- Just added API doc comments to Script VM code.


Revision 2619 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 11 13:24:32 2014 UTC (9 years, 10 months ago) by schoenebeck
File length: 3127 byte(s)
Diff to previous 2594
* Implemented built-in instrument script function "abs()".
* Implemented built-in instrument script function "random()".
* Implemented built-in instrument script function "num_elements()".
* Disabled debug mode of RefPtr template class.
* Bumped version (1.0.0.svn51).


Revision 2594 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 5 00:16:25 2014 UTC (9 years, 10 months ago) by schoenebeck
File length: 3002 byte(s)
Diff to previous 2588
* 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 2588 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 1 14:44:38 2014 UTC (9 years, 10 months ago) by schoenebeck
File length: 1477 byte(s)
Diff to previous 2581
* ScriptVM: refactoring and fixes.


Revision 2581 - (view) (download) (as text) (annotate) - [select for diffs]
Added Fri May 30 12:48:05 2014 UTC (9 years, 10 months ago) by schoenebeck
File length: 1362 byte(s)
* (WIP) Implemented parser and VM for upcoming new real-time instrument
  script support. It needs yet to be integrated into the sampler's
  sampler engines. You can toy around for now with the command line tool
  "ls_instr_script" and i.e. examples showing the core language features
  under src/scriptvm/examples/.
* Bumped version (1.0.0.svn41).


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