Log of /linuxsampler/trunk/src/engines/common
Directory Listing
Revision
3706 -
Directory Listing
Modified
Wed Jan 8 20:39:59 2020 UTC
(4 years, 3 months ago)
by
schoenebeck
Fixed compiler warnings about implied type casts.
Revision
3704 -
Directory Listing
Modified
Wed Jan 8 20:20:46 2020 UTC
(4 years, 3 months ago)
by
schoenebeck
Fixed missing case warnings.
Revision
3691 -
Directory Listing
Modified
Fri Jan 3 12:35:20 2020 UTC
(4 years, 3 months ago)
by
schoenebeck
* NKSP: Implemented built-in script function "set_rpn()".
* NKSP: Implemented built-in script function "set_nrpn()".
* Bumped version (2.1.1.svn31).
Revision
3690 -
Directory Listing
Modified
Fri Jan 3 10:18:21 2020 UTC
(4 years, 3 months ago)
by
schoenebeck
NKSP: Added support for RPN and NRPN event handlers:
* NKSP language: Added support for RPN event handler
("on rpn ... end on" in instrument scripts).
* NKSP language: Added support for NRPN event handler
("on nrpn ... end on" in instrument scripts).
* Added built-in read-only variables "$RPN_ADDRESS" and "$RPN_VALUE" which
may be read from the new RPN/NRPN script handlers to get the (N)RPN
parameter that had been changed and its new value.
* Added built-in const variables "$NI_CB_TYPE_RPN" and "$NI_CB_TYPE_NRPN"
which are identifying the new (N)RPN handlers as such at script runtime.
* Bumped version (2.1.1.svn30).
Revision
3689 -
Directory Listing
Modified
Thu Jan 2 23:57:15 2020 UTC
(4 years, 3 months ago)
by
schoenebeck
Event: Just fixed a typo in comment.
Revision
3688 -
Directory Listing
Modified
Thu Jan 2 23:47:42 2020 UTC
(4 years, 3 months ago)
by
schoenebeck
Added support for MIDI CC #38 (data entry LSB):
* Combine data entry MSB and data entry LSB events' values to one 14-bit
value, which allows higher resolution (N)RPN value handling.
* Handle now hard coded RPN events in separate method
ProcessHardcodedRpn().
* Handle now hard coded NRPN events in separate method
ProcessHardcodedNrpn().
* Bumped version (2.1.1.svn29).
Revision
3686 -
Directory Listing
Modified
Thu Jan 2 22:02:53 2020 UTC
(4 years, 3 months ago)
by
schoenebeck
* Event:Init(): memset() entire Event::Param union to zero instead of trying
to do that for its individual members; the latter became error prone due
to the union's growing complexity meanwhile.
* Bumped version (2.1.1.svn27).
Revision
3639 -
Directory Listing
Modified
Fri Oct 25 18:46:58 2019 UTC
(4 years, 6 months ago)
by
schoenebeck
* Using now cubic interpolation as resampling algorithm by default; and
linear interpolation is deprecated now.
* Bumped version (2.1.1.svn23).
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
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
3618 -
Directory Listing
Modified
Tue Oct 1 16:18:11 2019 UTC
(4 years, 6 months ago)
by
schoenebeck
- Trivial fixes.
Revision
3616 -
Directory Listing
Modified
Tue Oct 1 10:50:29 2019 UTC
(4 years, 6 months ago)
by
schoenebeck
* Gig engine: Changed default wave form for all 3 LFOs to sine
(instead of triangle; see discussion "GigaStudio LFO
compatibility" on mailing list from 2019-09-26 for details).
* Bumped version (2.1.1.svn21).
Revision
3614 -
Directory Listing
Modified
Tue Oct 1 09:11:27 2019 UTC
(4 years, 6 months ago)
by
schoenebeck
Refactored LFO class names and their header file names:
* Renamed PulseLFO -> LFOPulse, LFOSawIntMath -> LFOSawIntMathNew,
SawLFO -> LFOSawIntMathOld, SineLFO -> LFOSineBuiltinFn,
LFOSine -> LFOSineNumericComplexNr, SquareLFO -> LFOSquarePulse.
* Separated LFOSquarePulse (previously "SquareLFO") to its own
header file.
* Renamed type LFOSigned -> LFOTriangleSigned.
* Renamed type LFOUnsigned -> LFOTriangleUnsigned.
* Bumped version (2.1.1.svn19).
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
3611 -
Directory Listing
Modified
Mon Sep 30 17:35:43 2019 UTC
(4 years, 6 months ago)
by
schoenebeck
* LFOTriangleIntMath and LFOTriangleIntAbsMath: Fixed FlipPhase=true
behaviour for start_level_mid.
* Bumped version (2.1.1.svn17).
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
3587 -
Directory Listing
Modified
Sat Aug 31 12:08:49 2019 UTC
(4 years, 7 months ago)
by
schoenebeck
NKSP: Real number support for core instrument built-in functions.
* NKSP: Built-in function "play_note()" accepts now real numbers and
seconds as unit type as well for its 3rd and 4th function arguments.
* NKSP: The following built-in functions accept now real numbers as well for
their 2nd function argument: "change_vol()", "change_tune()",
"change_cutoff()", "change_attack()", "change_decay()",
"change_release()", "change_sustain()", "change_cutoff_attack()",
"change_cutoff_decay()", "change_cutoff_sustain()",
"change_cutoff_release()", "change_amp_lfo_freq()",
"change_cutoff_lfo_freq()", "change_pitch_lfo_freq()",
"change_vol_time()", "change_tune_time()", "change_pan_time()",
"fade_in()", "fade_out()", "change_play_pos()".
* NKSP: Fixed built-in function "change_play_pos()" not having accepted
metric prefixes at all.
* Bumped version (2.1.1.svn12).
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
3577 -
Directory Listing
Modified
Wed Aug 28 15:23:23 2019 UTC
(4 years, 7 months ago)
by
schoenebeck
NKSP: Introducing variable return type for built-in functions.
* Changed method signature VMFunction::returnType() ->
VMFunction::returnType(VMFnArgs* args) to allow built-in
functions to proclaim a different result value type depending
on the arguments to be passed to the function.
* Built-in script function abs() optionally accepts and returns
real number.
* Built-in script functions min() and max() optionally accept
real number arguments and return real number as result in that
case.
* Added real number test cases for the built-in abs(), min() and
max() functions.
* Bumped version (2.1.1.svn7).
Revision
3565 -
Directory Listing
Modified
Sat Aug 24 11:22:52 2019 UTC
(4 years, 8 months ago)
by
schoenebeck
- Fixed compiler error on Windows.
Revision
3564 -
Directory Listing
Modified
Sat Aug 24 09:18:57 2019 UTC
(4 years, 8 months ago)
by
schoenebeck
NKSP: Bug fixes regarding new measurement units feature:
* Fix: Engine internal Fade of script synthesis parameters volume, pitch
and pan were not rendered at all.
* Fix: Backward compatibility of built-in function arguments without a
metric unit prefix was broken (resulted in incorrect value
transformation).
* Fix: built-in script function change_play_pos() resolved wrong arguments.
* Bumped version (2.1.1.svn5).
Revision
3563 -
Directory Listing
Modified
Fri Aug 23 13:33:21 2019 UTC
(4 years, 8 months ago)
by
schoenebeck
- Fixed no notes being processed
(bug was introduced by SVN r3561).
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
3492 -
Directory Listing
Modified
Thu Mar 7 12:34:44 2019 UTC
(5 years, 1 month ago)
by
schoenebeck
* SFZ: Fixed potential crash when a sample is shared by more than one
region (fixes bug #308, patch by Jacek Roszkowski).
* SFZ: Added OVERRIDEs to avoid bug #307 in future.
* Bumped version (2.1.0.svn6).
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
3452 -
Directory Listing
Modified
Thu Jan 3 12:08:48 2019 UTC
(5 years, 3 months ago)
by
schoenebeck
* Fixed potential endless recursion introduced by SVN r3444
(patch by Ivan Maguidhir).
* Bumped version (2.1.0.svn4).
Revision
3445 -
Directory Listing
Modified
Sun Dec 23 20:08:41 2018 UTC
(5 years, 4 months ago)
by
schoenebeck
- Fix of previous commit.
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
3381 -
Directory Listing
Modified
Tue Nov 28 15:54:49 2017 UTC
(6 years, 4 months ago)
by
schoenebeck
* NKSP: Fixed behavior of built-in functions change_sustain(),
change_cutoff_attack(), change_cutoff_decay(), change_cutoff_sustain()
and change_cutoff_release().
* Bumped version (2.1.0.svn1).
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
3335 -
Directory Listing
Modified
Sun Jul 30 14:33:15 2017 UTC
(6 years, 8 months ago)
by
schoenebeck
* NKSP: Added built-in script function "change_pan_time()".
* NKSP: Added built-in script function "change_pan_curve()".
* Bumped version (2.0.0.svn75).
Revision
3317 -
Directory Listing
Modified
Thu Jul 20 12:18:45 2017 UTC
(6 years, 9 months ago)
by
schoenebeck
- Minor adjustment to previous commit: don't limit the max.
value of new script function "change_sustain()".
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
3306 -
Directory Listing
Modified
Tue Jul 11 15:50:05 2017 UTC
(6 years, 9 months ago)
by
schoenebeck
* Fixed Note object leak when triggering notes on keys which did
not have a valid sample mapped (fixes bug #252).
* Fixed compilation errors when compiling with CONFIG_DEVMODE
enabled.
* Bumped version (2.0.0.svn69).
Revision
3303 -
Directory Listing
Modified
Mon Jul 10 17:45:30 2017 UTC
(6 years, 9 months ago)
by
schoenebeck
* NKSP: Removed max. value limitation of built-in functions
"change_attack()", "change_decay()" and "change_release()" to
i.e. allow passing 2000000 for doubling the respective time.
* Bumped version (2.0.0.svn68).
Revision
3302 -
Directory Listing
Modified
Sun Jul 9 19:35:18 2017 UTC
(6 years, 9 months ago)
by
schoenebeck
* Got rid of resembling an ancient GSt misbehavior which did not pitch at
all if an up-pitch of more than 40 semi tones was requested (I don't
think there is any stock gig sound that requires this misbehavior to
resemble its original sound).
* Bumped version (2.0.0.svn67).
Revision
3296 -
Directory Listing
Modified
Wed Jun 28 09:45:56 2017 UTC
(6 years, 9 months ago)
by
schoenebeck
* Added built-in script function "callback_status()".
* Added built-in constant $CALLBACK_STATUS_TERMINATED.
* Added built-in constant $CALLBACK_STATUS_QUEUE.
* Added built-in constant $CALLBACK_STATUS_RUNNING.
* Bumped version (2.0.0.svn66).
Revision
3293 -
Directory Listing
Modified
Tue Jun 27 22:19:19 2017 UTC
(6 years, 9 months ago)
by
schoenebeck
* NKSP: Added built-in script function "fork()".
* NKSP: Added built-in array variable %NKSP_CALLBACK_CHILD_ID[].
* NKSP: Added built-in variable $NKSP_CALLBACK_PARENT_ID.
* NKSP: Fixed potential crash when accessing dynamic built-in
array variables.
* Bumped version (2.0.0.svn65).
Revision
3283 -
Directory Listing
Modified
Wed Jun 21 20:59:06 2017 UTC
(6 years, 10 months ago)
by
schoenebeck
* RT Instrument Scripts: Fixed potential memory access bug
and potential undefined behavior of "init" event handlers.
* Bumped version (2.0.0.svn62).
Revision
3277 -
Directory Listing
Modified
Mon Jun 5 18:40:18 2017 UTC
(6 years, 10 months ago)
by
schoenebeck
* NKSP: Implemented built-in script function "abort()" which allows
to abort another script handler by passing its callback ID.
* Bumped version (2.0.0.svn61).
Revision
3255 -
Directory Listing
Modified
Tue May 30 15:43:39 2017 UTC
(6 years, 10 months ago)
by
schoenebeck
* NKSP: Implemented built-in script function "change_play_pos()".
* Bumped version (2.0.0.svn57).
Revision
3253 -
Directory Listing
Modified
Tue May 30 12:08:45 2017 UTC
(6 years, 10 months ago)
by
schoenebeck
* NKSP: built-in "play_note()" function now accepts -2 for its fourth
argument (note duration) which means the life time of the note shall
be sticked to the requested note number of argument 1.
* NKSP Fix: built-in "play_note()" function now returns 0 as result
value if -1 was passed for its fourth argument (note duration) and
the respective parent note is already gone.
* NKSP: Built-in array variable %KEY_DOWN[] is now a read-only
variable.
* Built-in variable $EVENT_NOTE is now a read-only variable.
* Built-in variable $EVENT_VELOCITY is now a read-only variable.
* Bumped version (2.0.0.svn56).
Revision
3251 -
Directory Listing
Modified
Mon May 29 22:19:19 2017 UTC
(6 years, 10 months ago)
by
schoenebeck
* NKSP: built-in "play_note()" function now supports a sample playback
start offset with argument 3, where special value -1 means to use the
regular sample offset as defined by the instrument file.
* Bumped version (2.0.0.svn55).
Revision
3246 -
Directory Listing
Modified
Sun May 28 22:22:56 2017 UTC
(6 years, 10 months ago)
by
schoenebeck
* NKSP: Implemented built-in script function "change_vol_curve()".
* NKSP: Implemented built-in script function "change_tune_curve()".
* NKSP: Added built-in script constant "$NKSP_LINEAR".
* NKSP: Added built-in script constant "$NKSP_EASE_IN_EASE_OUT".
* Bumped version (2.0.0.svn54).
Revision
3218 -
Directory Listing
Modified
Thu May 25 16:32:17 2017 UTC
(6 years, 11 months ago)
by
schoenebeck
* NKSP: Adjusted behavior of "change_vol()" and "change_tune()" to a more
intuitive behavior if used in combination with "change_vol_time()" or
"change_tune_time()" respectively: now tuning/volume changes are only
assigned (without delay) immediately to a new note if the respective
timing function has not been called before, otherwise the volume/tuning
changes are automatically faded (before, only the event's time stamp was
relevant).
* Bumped version (2.0.0.svn50).
Revision
3216 -
Directory Listing
Modified
Thu May 25 15:16:28 2017 UTC
(6 years, 11 months ago)
by
schoenebeck
- Fixed compilation error with some compilers.
Revision
3214 -
Directory Listing
Modified
Thu May 25 14:46:47 2017 UTC
(6 years, 11 months ago)
by
schoenebeck
* NKSP: Implemented built-in script function "change_velo()".
* NKSP: Implemented built-in script function "change_note()".
* Bumped version (2.0.0.svn49).
Revision
3212 -
Directory Listing
Modified
Thu May 25 13:17:47 2017 UTC
(6 years, 11 months ago)
by
schoenebeck
* NKSP: Built-in "ignore_event()" function: argument is now optional,
like with built-in function "ignore_controller()".
Revision
3205 -
Directory Listing
Modified
Wed May 24 20:05:38 2017 UTC
(6 years, 11 months ago)
by
schoenebeck
* 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
3193 -
Directory Listing
Modified
Sat May 20 12:28:57 2017 UTC
(6 years, 11 months ago)
by
schoenebeck
* NKSP: Added built-in script function "get_event_par()" and implemented
some of its possible parameter selections.
* NKSP: Added built-in script function "set_event_par()" and implemented
some of its possible parameter selections.
* NKSP: Fixed (removed) artificial value limit for duration argument of
built-in script functions "change_vol_time()" and "change_tune_time()".
* Fixed compile error with pre-C++11 compilers.
* Bumped version (2.0.0.svn46).
Revision
3188 -
Directory Listing
Modified
Fri May 19 14:23:12 2017 UTC
(6 years, 11 months ago)
by
schoenebeck
* 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 -
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
3100 -
Directory Listing
Modified
Sat Feb 4 16:53:20 2017 UTC
(7 years, 2 months ago)
by
schoenebeck
* SFZ: Fixed unintended volume fade-in of voices under certain
conditions.
* Bumped version (2.0.0.svn42).
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
3073 -
Directory Listing
Modified
Thu Jan 5 16:04:00 2017 UTC
(7 years, 3 months ago)
by
schoenebeck
* NKSP: Implemented built-in script array variable "%ALL_EVENTS".
* Bumped version (2.0.0.svn35).
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
3035 -
Directory Listing
Modified
Mon Oct 31 12:00:00 2016 UTC
(7 years, 5 months ago)
by
schoenebeck
* Check compiler for supported pragma diagnostics to avoid
compiler errors.
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
3016 -
Directory Listing
Modified
Tue Oct 18 21:01:46 2016 UTC
(7 years, 6 months ago)
by
schoenebeck
- Follow-up of previous fix.
Revision
2963 -
Directory Listing
Modified
Sun Jul 17 18:41:21 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* All engines: Increased ramp speed of volume smoother and pan smoother
(while slow rate of crossfade smoother is preserved) to allow quick
volume and pan changes by instrument scripts for instance.
* Bumped version (2.0.0.svn21).
Revision
2962 -
Directory Listing
Modified
Sun Jul 17 17:54:04 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* 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 -
Directory Listing
Modified
Sat Jul 16 11:24:39 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* 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
2948 -
Directory Listing
Modified
Fri Jul 15 15:29:04 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* 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 -
Directory Listing
Modified
Thu Jul 14 00:22:26 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* 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 -
Directory Listing
Modified
Wed Jul 13 15:51:06 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* 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
2938 -
Directory Listing
Modified
Mon Jul 11 17:10:40 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* 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 -
Directory Listing
Modified
Sun Jul 10 14:24:13 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* 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 -
Directory Listing
Modified
Sat Jul 9 14:38:33 2016 UTC
(7 years, 9 months ago)
by
schoenebeck
* 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 -
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
2880 -
Directory Listing
Modified
Tue Apr 19 15:49:34 2016 UTC
(8 years ago)
by
schoenebeck
- Fixed compile error regarding latest commit and older compilers.
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
2674 -
Directory Listing
Modified
Thu Sep 11 18:22:14 2014 UTC
(9 years, 7 months ago)
by
persson
* sfz engine: added support for float and 32 bit sample files
Revision
2673 -
Directory Listing
Modified
Sat Sep 6 18:56:02 2014 UTC
(9 years, 7 months ago)
by
persson
* gig engine: fixed behaviour of filter LFO
Revision
2672 -
Directory Listing
Modified
Sat Sep 6 13:04:01 2014 UTC
(9 years, 7 months ago)
by
schoenebeck
* Fixed MIDI program change messages being ignored if quickly executed
after each other (fixes #231).
Revision
2645 -
Directory Listing
Modified
Wed Jun 18 00:14:57 2014 UTC
(9 years, 10 months ago)
by
schoenebeck
* 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
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
2629 -
Directory Listing
Modified
Thu Jun 12 18:25:11 2014 UTC
(9 years, 10 months ago)
by
schoenebeck
* Implemented built-in instrument script function "note_off()".
* Bumped version (1.0.0.svn52).
Revision
2618 -
Directory Listing
Modified
Wed Jun 11 11:39:44 2014 UTC
(9 years, 10 months ago)
by
schoenebeck
* Fixed execution of "init" instrument script handler.
* Fixed further crashes.
* Bumped version (1.0.0.svn50).
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
2613 -
Directory Listing
Modified
Tue Jun 10 15:17:01 2014 UTC
(9 years, 10 months ago)
by
schoenebeck
* Implemented built-in script int array variable $KEY_DOWN.
* Bumped version (1.0.0.svn48).
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
2606 -
Directory Listing
Modified
Sun Jun 8 05:42:56 2014 UTC
(9 years, 10 months ago)
by
persson
* removed usage of c++11 initializer that caused compilation errors on
older compilers
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
2598 -
Directory Listing
Modified
Fri Jun 6 12:38:54 2014 UTC
(9 years, 10 months ago)
by
schoenebeck
* 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 -
Directory Listing
Modified
Thu Jun 5 19:39:12 2014 UTC
(9 years, 10 months ago)
by
schoenebeck
* 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
2595 -
Directory Listing
Modified
Thu Jun 5 12:14:53 2014 UTC
(9 years, 10 months ago)
by
schoenebeck
- Fixed compiler error with GCC 4.x (seems to be a GCC bug).
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
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
2506 -
Directory Listing
Modified
Sun Jan 12 11:27:05 2014 UTC
(10 years, 3 months ago)
by
schoenebeck
* Bugfix: only process the latest MIDI program change event.
Revision
2448 -
Directory Listing
Modified
Fri May 3 14:26:32 2013 UTC
(10 years, 11 months ago)
by
schoenebeck
* 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
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
2399 -
Directory Listing
Modified
Sun Jan 13 17:22:23 2013 UTC
(11 years, 3 months ago)
by
persson
* sfz engine: added FLAC support (#191)
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
2377 -
Directory Listing
Modified
Thu Oct 4 18:16:26 2012 UTC
(11 years, 6 months ago)
by
schoenebeck
* Various "const" and "restrict" optimizations.
Revision
2375 -
Directory Listing
Modified
Thu Oct 4 17:45:22 2012 UTC
(11 years, 6 months ago)
by
schoenebeck
* Added new C++ API method Sampler::GetGlobalMaxVoices().
* Added new C++ API method Sampler::GetGlobalMaxStreams().
* Added new C++ API method Sampler::SetGlobalMaxVoices().
* Added new C++ API method Sampler::SetGlobalMaxStreams().
* CoreMIDI: remove ports that disappeared on the OS from
the internal list of port bindings
* Fixed erroneous piping of error message in
src/engines/common/VoiceBase.h (labelled "Disk stream not
available in time").
Revision
2352 -
Directory Listing
Modified
Sun Jun 24 16:11:31 2012 UTC
(11 years, 10 months ago)
by
persson
* fixed crash when a channel received a program change while playing a
note in a key group
Revision
2328 -
Directory Listing
Modified
Sat Mar 10 16:23:19 2012 UTC
(12 years, 1 month ago)
by
persson
- forgot one file in previous commit
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
2322 -
Directory Listing
Modified
Sun Feb 26 09:09:19 2012 UTC
(12 years, 2 months ago)
by
iliev
* bugfix: voice stealing didn't work for SFZ and SF2 engines
Revision
2317 -
Directory Listing
Modified
Sun Feb 19 12:13:19 2012 UTC
(12 years, 2 months ago)
by
persson
* sfz engine bugfix: looping was disabled if loop_start was set to 0
* sfz engine: allow regions with end=-1 to turn off other regions
using the group and off_by opcodes (#168)
* sfz engine: made end=0 play the whole sample
* sfz engine: fixed support for lochan and hichan opcodes (#155)
* bumped version to 1.0.0.svn17
Revision
2299 -
Directory Listing
Modified
Sun Dec 11 20:50:31 2011 UTC
(12 years, 4 months ago)
by
iliev
* implemented opcodes egN_eq1gain, egN_eq2gain, egN_eq3gain,
egN_eq1gain_onccX, egN_eq2gain_onccX, egN_eq3gain_onccX, egN_eq1freq,
egN_eq2freq, egN_eq3freq, egN_eq1freq_onccX, egN_eq2freq_onccX,
egN_eq3freq_onccX, egN_eq1bw, egN_eq2bw, egN_eq3bw, egN_eq1bw_onccX,
egN_eq2bw_onccX, egN_eq3bw_onccX, lfoN_eq1gain, lfoN_eq2gain,
lfoN_eq3gain, lfoN_eq1gain_onccX, lfoN_eq2gain_onccX, lfoN_eq3gain_onccX,
lfoN_eq1gain_smoothccX, lfoN_eq2gain_smoothccX, lfoN_eq3gain_smoothccX,
lfoN_eq1gain_stepccX, lfoN_eq2gain_stepccX, lfoN_eq3gain_stepccX,
lfoN_eq1freq, lfoN_eq2freq, lfoN_eq3freq, lfoN_eq1freq_onccX,
lfoN_eq2freq_onccX, lfoN_eq3freq_onccX, lfoN_eq1freq_smoothccX,
lfoN_eq2freq_smoothccX, lfoN_eq3freq_smoothccX, lfoN_eq1freq_stepccX,
lfoN_eq2freq_stepccX, lfoN_eq3freq_stepccX, lfoN_eq1bw, lfoN_eq2bw,
lfoN_eq3bw, lfoN_eq1bw_onccX, lfoN_eq2bw_onccX, lfoN_eq3bw_onccX,
lfoN_eq1bw_smoothccX, lfoN_eq2bw_smoothccX, lfoN_eq3bw_smoothccX,
lfoN_eq1bw_stepccX, lfoN_eq2bw_stepccX, lfoN_eq3bw_stepccX
Revision
2298 -
Directory Listing
Modified
Fri Dec 9 17:04:24 2011 UTC
(12 years, 4 months ago)
by
iliev
* use different EQ effect instance for every voice
Revision
2297 -
Directory Listing
Modified
Fri Dec 9 15:04:55 2011 UTC
(12 years, 4 months ago)
by
iliev
* implemented opcodes delay, delay_onccN, delay_random,
delay_samples, delay_samples_onccN
Revision
2296 -
Directory Listing
Modified
Thu Dec 8 20:03:47 2011 UTC
(12 years, 4 months ago)
by
iliev
* 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
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
2264 -
Directory Listing
Modified
Mon Aug 22 10:00:01 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: implemented opcodes pitch_onccN,
pitch_curveccN, pitch_smoothccN, pitch_stepccN
Revision
2251 -
Directory Listing
Modified
Sat Aug 20 10:38:31 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: *lfo_freqccN wasn't working when the respective *lfo_freq
was not set or was set to zero
* sfz engine: lfoN_freq_onccX wasn't working when lfoN_freq
was not set or was set to zero
Revision
2244 -
Directory Listing
Modified
Thu Aug 18 11:32:33 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: use common pool of CC objects to minimize RAM usage
Revision
2238 -
Directory Listing
Modified
Fri Aug 12 17:30:47 2011 UTC
(12 years, 8 months ago)
by
iliev
* bugfix: sfz engine was using enormous amount of memory
* bumped version to 1.0.0.cvs14
Revision
2235 -
Directory Listing
Modified
Wed Aug 10 19:40:39 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: implemented opcodes egN_amplitude_onccX,
egN_volume, egN_volume_onccX, egN_cutoff, egN_cutoff_onccX,
egN_pitch, egN_pitch_onccX, egN_resonance, egN_resonance_onccX
Revision
2234 -
Directory Listing
Modified
Tue Aug 9 18:27:58 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: implemented opcode end
Revision
2232 -
Directory Listing
Modified
Mon Aug 8 13:40:04 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: implemented opcode volume_smoothccN
Revision
2230 -
Directory Listing
Modified
Fri Aug 5 17:59:10 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: implemented curves
* sfz engine: implemented opcodes volume_onccN, volume_curveccN
Revision
2227 -
Directory Listing
Modified
Wed Aug 3 17:11:40 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: implemented opcodes fillfo_freqccN,
pitchlfo_freqccN, amplfo_freqccN, lfoN_freq_onccX
Revision
2225 -
Directory Listing
Modified
Tue Aug 2 13:44:57 2011 UTC
(12 years, 8 months ago)
by
iliev
* sfz engine: implemented opcodes lfoN_phase, lfoN_phase_onccX,
lfoN_pitch, lfoN_pitch_onccX
Revision
2224 -
Directory Listing
Modified
Mon Aug 1 19:08:09 2011 UTC
(12 years, 8 months ago)
by
iliev
* implemented opcode pitchlfo_depthccN
Revision
2223 -
Directory Listing
Modified
Fri Jul 29 13:39:58 2011 UTC
(12 years, 9 months ago)
by
iliev
* implemented sine LFO, pulse LFO and saw LFO
* sfz engine: implemented opcode lfoN_wave
Revision
2219 -
Directory Listing
Modified
Thu Jul 28 12:35:49 2011 UTC
(12 years, 9 months ago)
by
iliev
* sfz engine: implemented opcodes lfoN_delay,
lfoN_freq, lfoN_pan, lfoN_cutoff, lfoN_resonance
Revision
2218 -
Directory Listing
Modified
Thu Jul 28 08:05:57 2011 UTC
(12 years, 9 months ago)
by
iliev
* sfz engine: use the newly introduced signal units model
Revision
2217 -
Directory Listing
Modified
Tue Jul 26 15:51:30 2011 UTC
(12 years, 9 months ago)
by
iliev
* removed helper classes SignalUnitBase,
EndpointSignalUnitBase, SignalUnitRackBase
* clean up sf2::Voice
* bumped version to 1.0.0.cvs12
Revision
2216 -
Directory Listing
Modified
Mon Jul 25 17:21:16 2011 UTC
(12 years, 9 months ago)
by
iliev
* sfz: added support for sample offset (offset)
Revision
2207 -
Directory Listing
Modified
Fri Jul 15 15:43:49 2011 UTC
(12 years, 9 months ago)
by
iliev
* simplified the signal unit model
* sf2: initial implementation of modulation LFO and cutoff filter
Revision
2205 -
Directory Listing
Modified
Mon Jul 11 17:52:01 2011 UTC
(12 years, 9 months ago)
by
iliev
* Introduced Signal Units and Signal Unit Racks, which hopefully will meet
the demands of the new engines for flexible signal processing.
* sf2: Initial implementation of vibrato LFO, fixes in modulation EG and
and volume EG (work in progress)
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
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
2167 -
Directory Listing
Modified
Mon Feb 21 17:34:36 2011 UTC
(13 years, 2 months ago)
by
persson
* sfz engine: use loop markers from sample file if loop_start and
loop_end are not set in sfz file
Revision
2140 -
Directory Listing
Modified
Tue Oct 5 10:35:13 2010 UTC
(13 years, 6 months ago)
by
schoenebeck
* raised limit of program change queue from 100 to 512
(as suggested by Alex Stone)
* removed limit of maximum amount of MIDI ports per MIDI device, since
there is no reason for this limit
* minor syntax simplification regarding 2 new LSCP commands: changed
"SET FX_SEND SEND_EFFECT"" to "SET FX_SEND EFFECT" and changed
"REMOVE FX_SEND SEND_EFFECT"" to "REMOVE FX_SEND EFFECT", also changed
the respective category field of command "GET FX_SEND INFO" from
"SEND_EFFECT" to "EFFECT"
* updated LSCP specification document
* bumped version to 1.0.0.cvs10
Revision
2121 -
Directory Listing
Modified
Tue Sep 14 17:09:08 2010 UTC
(13 years, 7 months ago)
by
schoenebeck
* 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
2119 -
Directory Listing
Modified
Fri Aug 27 16:27:16 2010 UTC
(13 years, 8 months ago)
by
persson
* sfz engine: fixed playback of 16 bit wav files on big endian CPUs
* sfz engine: added support for Ogg Vorbis sample files
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
2101 -
Directory Listing
Modified
Sun May 30 11:40:31 2010 UTC
(13 years, 10 months ago)
by
persson
* sfz/sf2 engines: RT-safeness: avoid malloc in audio thread
* sfz/sf2 engines: fixed a bug that could cause voice stealing to fail
Revision
2063 -
Directory Listing
Modified
Sun Feb 28 07:28:56 2010 UTC
(14 years, 1 month ago)
by
persson
* sfz engine: added support for off_mode=normal
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
2058 -
Directory Listing
Modified
Sun Feb 14 11:40:49 2010 UTC
(14 years, 2 months ago)
by
persson
* sfz/sf2 engines: fixed memory leak and memory handling errors
* sfz engine: added support for sw_trigger=first, sw_trigger=legato
and sw_previous
* sfz parser: allow non-numerical key values ("C#4" for example)
* sfz engine: "key" opcode now sets pitch_keycenter too
* sfz engine: fixed error when unloading instrument with same sample
used by multiple regions
* sfz parser: added some opcode aliases, like loopmode for loop_mode,
to be more compatible
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
2045 -
Directory Listing
Modified
Sun Jan 10 13:22:19 2010 UTC
(14 years, 3 months ago)
by
persson
* VST bugfix: If the host called resume() before and after changing
sample rate or block size, the number of channels was incorrectly
set to two. This caused silence in Cubase 5.
* removed compiler warnings
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
2032 -
Directory Listing
Modified
Fri Nov 20 20:13:08 2009 UTC
(14 years, 5 months ago)
by
persson
* bugfix: release samples could cause loud noises
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
2021 -
Directory Listing
Modified
Fri Oct 30 16:36:20 2009 UTC
(14 years, 5 months ago)
by
iliev
* sfz engine: loop support
* sf2 engine: 24bit support
* sf2 engine: loop support
* sf2 engine: instrument unloading
Revision
2019 -
Directory Listing
Modified
Tue Oct 27 19:36:09 2009 UTC
(14 years, 6 months ago)
by
iliev
* SFZ format engine: implemented 24 bit support
Revision
2018 -
Directory Listing
Modified
Tue Oct 27 19:04:57 2009 UTC
(14 years, 6 months ago)
by
iliev
* SFZ format engine: Implemented sfz version 1
Filter EG, Amplifier EG and Pitch EG
* use SF2 file loader from libgig
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
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
1681 -
Directory Listing
Modified
Wed Feb 13 15:10:13 2008 UTC
(16 years, 2 months ago)
by
schoenebeck
- fixed di-harmonic triangle LFO implementation (this LFO implementation
is only used by very few systems, most pick the int math
implementation, which is usually faster)
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
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
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
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
885 -
Directory Listing
Modified
Wed Jun 28 19:32:21 2006 UTC
(17 years, 10 months ago)
by
schoenebeck
* various fixes to allow liblinuxsampler to be used
(as a native C++ library)
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
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
741 -
Directory Listing
Modified
Tue Aug 16 17:20:55 2005 UTC
(18 years, 8 months ago)
by
schoenebeck
- deleted LFO.h
- added LFOBase.h, LFOTriangleDiHarmonic.h,
LFOTriangleIntAbsMath.h and LFOTriangleIntMath.h
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
722 -
Directory Listing
Modified
Sun Jul 24 19:45:15 2005 UTC
(18 years, 9 months ago)
by
schoenebeck
just a little API doc change
Revision
721 -
Directory Listing
Modified
Sun Jul 24 19:44:44 2005 UTC
(18 years, 9 months ago)
by
schoenebeck
- fixed di-harmonic triangle LFO implementation
- calculated exact amplitude coefficient of 2nd harmonic
Revision
720 -
Directory Listing
Modified
Sun Jul 24 18:22:56 2005 UTC
(18 years, 9 months ago)
by
senkov
Added a variation of LFOTriangleIntMath using abs()
Revision
719 -
Directory Listing
Modified
Sun Jul 24 16:48:11 2005 UTC
(18 years, 9 months ago)
by
senkov
Adjusted code to build on gcc (GCC) 3.4.3-20050110
Revision
718 -
Directory Listing
Modified
Sun Jul 24 15:05:30 2005 UTC
(18 years, 9 months ago)
by
schoenebeck
fixed integer math implementation of triangle LFO
Revision
717 -
Directory Listing
Modified
Sun Jul 24 10:26:17 2005 UTC
(18 years, 9 months ago)
by
schoenebeck
Added "real" implementations of the triangle LFOs. Unfortunately
I introduced some bugs - the output results don't look like they should.
This has to be fixed.
Revision
713 -
Directory Listing
Modified
Thu Jul 21 20:50:45 2005 UTC
(18 years, 9 months ago)
by
schoenebeck
oops, did I screw indention here? ;)
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
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
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
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
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
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
510 -
Directory Listing
Modified
Wed May 4 12:02:35 2005 UTC
(18 years, 11 months ago)
by
schoenebeck
* autotools build fixes for PPC architecture
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
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
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
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
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
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
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
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
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
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
292 -
Directory Listing
Modified
Mon Oct 25 14:59:18 2004 UTC
(19 years, 6 months ago)
by
schoenebeck
encapsulated error message into quotation marks
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
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
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
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
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
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
205 -
Directory Listing
Modified
Tue Jul 13 23:16:40 2004 UTC
(19 years, 9 months ago)
by
schoenebeck
accidently commited this file
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
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
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