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

Log of /linuxsampler/trunk/src/engines/gig/Engine.h

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1789 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Nov 1 19:01:27 2008 UTC (10 years, 11 months ago) by iliev
File length: 11550 byte(s)
Diff to previous 1764
* notification events for stream/voice count statistics are now sent
  only when there are actual changes
* use atomic_t for stream/voice count statistics


Revision 1764 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Sep 6 14:55:18 2008 UTC (11 years, 1 month ago) by persson
File length: 11558 byte(s)
Diff to previous 1751
* rewrote the ConditionServer class to make it possible to create
  multiple sample channels when the audio thread isn't running


Revision 1751 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 28 07:36:35 2008 UTC (11 years, 2 months ago) by schoenebeck
File length: 11522 byte(s)
Diff to previous 1748
* 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 1748 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 22 14:46:46 2008 UTC (11 years, 3 months ago) by persson
File length: 11498 byte(s)
Diff to previous 1646
* bugfix: notes triggered at position 0 in the audio buffer were
  sometimes wrongly killed in the same buffer, causing no sound to be
  played
* fixes for audio drivers with varying buffer sizes
* Makefile fix: JACK_CFLAGS wasn't used
* JACK driver: use jack_client_open instead of the deprecated
  jack_client_new


Revision 1646 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 20 15:04:51 2008 UTC (11 years, 8 months ago) by persson
File length: 11509 byte(s)
Diff to previous 1644
* made it possible to load an instrument even if the audio thread
  isn't running


Revision 1644 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 19 16:55:03 2008 UTC (11 years, 8 months ago) by persson
File length: 12280 byte(s)
Diff to previous 1321
* fixed memory leaks that occurred when liblinuxsampler was unloaded
* fixed a memory leak that could happen when a channel was deleted
  while notes were playing
* fixed memory management bug in ASIO driver
* optimized the SynchronizedConfig class so it doesn't wait
  unnecessarily long after an update


Revision 1321 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 4 01:12:49 2007 UTC (12 years, 1 month ago) by schoenebeck
File length: 11834 byte(s)
Diff to previous 1038
* added highly experimental code for synchronizing instrument editors
  hosted in the sampler's process to safely edit instruments while playing
  without a crash (hopefully) by either suspending single regions wherever
  possible or - if unavoidable - whole engine(s)
* disk thread: queue sizes are now proportional to CONFIG_MAX_STREAMS
  instead of fix values
* removed legacy Makefiles in meanwhile deleted src/lib directory and its
  subdirectories
* bumped version to 0.4.0.7cvs


Revision 1038 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 3 15:33:00 2007 UTC (12 years, 8 months ago) by persson
File length: 11127 byte(s)
Diff to previous 1012
* playback is no longer disabled during instrument loading
* all notes playing on a channel that changes its instrument keep
  playing with the old instrument until they get a note off command
* new thread safety fix for lscp "load engine" and "set channel audio
  output device"


Revision 1012 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 7 15:52:36 2007 UTC (12 years, 9 months ago) by capela
File length: 10195 byte(s)
Diff to previous 1001
* Fixed a memory leak due to EngineFactory::Destroy() not doing it
as an actual destructor and just removing the engine instance from
factory stock and all instances allocated via EngineFactory::Create()
never got delete'd and thus their destructors never called. This bug
was evident while having many mapped instruments and querying the
instrument status via GET MIDI_INSTRUMENT INFO command, eating up
system memory very quickly and never let it go.


Revision 1001 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 27 16:17:08 2006 UTC (12 years, 9 months ago) by schoenebeck
File length: 10197 byte(s)
Diff to previous 970
* implemented effect sends (also added new LSCP commands for this feature,
  updated LSCP spec document along with this commit batch as well)


Revision 970 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 6 22:28:17 2006 UTC (12 years, 10 months ago) by schoenebeck
File length: 10123 byte(s)
Diff to previous 947
* fixed crash occuring in conjunction with the new 'MAP MIDI_INSTRUMENT'
  LSCP command (cause: RingBuffer was not able to do deep copies)


Revision 947 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 27 21:34:55 2006 UTC (12 years, 10 months ago) by schoenebeck
File length: 10117 byte(s)
Diff to previous 890
* implemented MIDI instrument mapping according to latest LSCP draft


Revision 890 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 1 13:43:04 2006 UTC (13 years, 3 months ago) by schoenebeck
File length: 10054 byte(s)
Diff to previous 846
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 846 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Mar 19 16:38:22 2006 UTC (13 years, 7 months ago) by persson
File length: 10061 byte(s)
Diff to previous 832
* more thread safety fixes: another fix for lscp "load engine" and
  midi thread. Sysex midi protected against lscp. Instrument loader
  thread protected against lscp thread.


Revision 832 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Feb 5 10:24:05 2006 UTC (13 years, 8 months ago) by persson
File length: 9882 byte(s)
Diff to previous 831
* added smoothing of volume changes caused by control change messages
* fine tuning of the crossfade volume curve


Revision 831 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 28 16:55:30 2006 UTC (13 years, 8 months ago) by persson
File length: 9684 byte(s)
Diff to previous 776
* fixed global pan (CC10) which hasn't been working for a while
* fine tuning of the curves for volume (CC7) and pan (CC10 and gig
  parameter)
* added support for the "attenuation controller threshold" gig
  parameter


Revision 776 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 21 19:05:41 2005 UTC (14 years ago) by iliev
File length: 9226 byte(s)
Diff to previous 738
* Added support for sostenuto pedal


Revision 738 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 16 17:14:25 2005 UTC (14 years, 2 months ago) by schoenebeck
File length: 9074 byte(s)
Diff to previous 727
* 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 727 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 25 15:18:44 2005 UTC (14 years, 2 months ago) by schoenebeck
File length: 9846 byte(s)
Diff to previous 668
* fixed little inconsistency: LSCP commands 'LIST AVAILABLE_ENGINES' and
  'GET CHANNEL INFO' returned different names for the gig::Engine,
  returning now only 'GIG'


Revision 668 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 20 15:30:47 2005 UTC (14 years, 3 months ago) by schoenebeck
File length: 9852 byte(s)
Diff to previous 663
* fixed a key group bug which caused undefined behavior in conjunction with
  stolen voices (this case was usually followed by a "killed voice
  survived" or "voice stealing didn't work out" error message)


Revision 663 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jun 18 21:37:03 2005 UTC (14 years, 4 months ago) by schoenebeck
File length: 9822 byte(s)
Diff to previous 659
* another voice stealing fix
  (endless loop occured when voices were stolen from other engine channels)


Revision 659 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 16 21:35:30 2005 UTC (14 years, 4 months ago) by schoenebeck
File length: 9821 byte(s)
Diff to previous 649
* don't reset scale tuning on instrument or audio output device change


Revision 649 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 15 00:01:28 2005 UTC (14 years, 4 months ago) by schoenebeck
File length: 9796 byte(s)
Diff to previous 630
* revised voice stealing (fixes crash caused by voice stealing)


Revision 630 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jun 11 14:51:49 2005 UTC (14 years, 4 months ago) by persson
File length: 9555 byte(s)
Diff to previous 554
* volume of release triggered samples now depends on note-on velocity,
  note length and gig parameter "release trigger decay" instead of
  note-off velocity.


Revision 554 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 19 19:25:14 2005 UTC (14 years, 5 months ago) by schoenebeck
File length: 9454 byte(s)
Diff to previous 505
* All compile time options are now centrally alterable as arguments to the
  ./configure script. All options are C Macros beginning with CONFIG_
  prefix and will be placed into auto generated config.h file.


Revision 505 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 3 01:00:25 2005 UTC (14 years, 5 months ago) by schoenebeck
File length: 9524 byte(s)
Diff to previous 502
fixed libgig include rules


Revision 502 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 29 14:20:22 2005 UTC (14 years, 5 months ago) by letz
File length: 9552 byte(s)
Diff to previous 475
Fix destructor


Revision 475 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 17 23:56:56 2005 UTC (14 years, 7 months ago) by schoenebeck
File length: 9543 byte(s)
Diff to previous 473
* 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 473 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 17 20:13:08 2005 UTC (14 years, 7 months ago) by schoenebeck
File length: 9466 byte(s)
Diff to previous 460
* fixed event leak (events sent to inactive keys were not freed)
* implemented MIDI channel mode messages "All Sound Off", "Reset All
  Controller", "All Notes Off" (fixes bug #5)


Revision 460 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 14 22:35:44 2005 UTC (14 years, 7 months ago) by schoenebeck
File length: 9256 byte(s)
Diff to previous 438
* spawning layered voices now within a loop instead of recursively (fixes
  segmentation fault under heavy voice count load and reduces stress on the
  stack)
* voice stealing operates on all engine channels now
* limit voice stealing to MAX_AUDIO_VOICES thefts per audio fragment cycle
* fixed keygroup handling (layered voices could kill each other)


Revision 438 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 9 22:12:15 2005 UTC (14 years, 7 months ago) by persson
File length: 8581 byte(s)
Diff to previous 412
* 24-bit decompression now supports the 20 and 18 bit formats
* support for "random" and "round robin" dimensions
* removed a warning printout for empty samples during instrument
  loading


Revision 412 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 26 22:44:51 2005 UTC (14 years, 7 months ago) by schoenebeck
File length: 8639 byte(s)
Diff to previous 411
* 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 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 26 02:01:14 2005 UTC (14 years, 7 months ago) by schoenebeck
File length: 8633 byte(s)
Diff to previous 392
* 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 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 19 02:40:24 2005 UTC (14 years, 7 months ago) by schoenebeck
File length: 11901 byte(s)
Diff to previous 376
* fixed possibility that memory got not locked
* immediately set instrument status when calling LOAD INSTUMENT NON_MODAL


Revision 376 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 12 23:48:50 2005 UTC (14 years, 8 months ago) by senkov
File length: 11849 byte(s)
Diff to previous 354
* Added INSTRUMENT_NAME to GET CHANNEL INFO command result set


Revision 354 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 29 15:17:59 2005 UTC (14 years, 8 months ago) by schoenebeck
File length: 11756 byte(s)
Diff to previous 319
* support for keyswitching
* ignore if no sample was defined for region(s) or dimension region(s)
(patch by Andreas Persson)


Revision 319 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 13 00:46:42 2004 UTC (14 years, 10 months ago) by schoenebeck
File length: 11602 byte(s)
Diff to previous 287
* 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 287 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Oct 16 17:38:03 2004 UTC (15 years ago) by schoenebeck
File length: 11600 byte(s)
Diff to previous 285
* fixed segfault which occured whenever a voice stole a voice and was in
  turn killed in the same audio fragment, to fix that the MIDI key
  informations are now updated only after all voices were processed


Revision 285 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 14 21:31:26 2004 UTC (15 years ago) by schoenebeck
File length: 11570 byte(s)
Diff to previous 271
* bunch of bugfixes (e.g. segfault on voice stealing)


Revision 271 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 8 20:51:39 2004 UTC (15 years ago) by schoenebeck
File length: 11435 byte(s)
Diff to previous 268
* 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 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 7 22:20:20 2004 UTC (15 years ago) by capela
File length: 11288 byte(s)
Diff to previous 250
* gcc-c++ 3.4.1 compability fixes.


Revision 250 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 20 00:31:13 2004 UTC (15 years ago) by schoenebeck
File length: 11293 byte(s)
Diff to previous 244
* 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 244 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 17 01:01:11 2004 UTC (15 years, 1 month ago) by schoenebeck
File length: 10342 byte(s)
Diff to previous 242
* added support for scale tuning via MIDI GS system exclusive message


Revision 242 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 15 13:59:08 2004 UTC (15 years, 1 month ago) by schoenebeck
File length: 9765 byte(s)
Diff to previous 239
* added support for release trigger dimension (that is voices which are
  spawned when a key was released)
* libgig: bugfix in dimension region switching


Revision 239 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Sep 12 14:48:19 2004 UTC (15 years, 1 month ago) by schoenebeck
File length: 9600 byte(s)
Diff to previous 233
* implemented key groups (a.k.a exclusive groups) which is important for
  drum patches and monphonic instruments
* src/engines/gig/Engine.cpp: bugfix in ProcessNoteOn() - did not always
  stick the note on event to the respective key's own event list although
  e.g. the EGADRS expects it to find there


Revision 233 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 7 09:32:21 2004 UTC (15 years, 1 month ago) by schoenebeck
File length: 9404 byte(s)
Diff to previous 225
* added support for layers
* fixed initial pitch calculation which did not honor the sample's own
  sample rate


Revision 225 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 22 14:46:47 2004 UTC (15 years, 1 month ago) by schoenebeck
File length: 9337 byte(s)
Diff to previous 133
* 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 133 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 18 14:29:02 2004 UTC (15 years, 4 months ago) by capela
File length: 8448 byte(s)
Diff to previous 112
* 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 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 6 20:57:28 2004 UTC (15 years, 4 months ago) by senkov
File length: 8356 byte(s)
Diff to previous 80
* Added methods for CHANNEL_INFO command


Revision 80 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun May 23 19:16:33 2004 UTC (15 years, 4 months ago) by schoenebeck
File length: 8131 byte(s)
Diff to previous 56
* 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 56 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 27 09:21:58 2004 UTC (15 years, 5 months ago) by schoenebeck
File length: 7899 byte(s)
Diff to previous 53
updated copyright header for 2004


Revision 53 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Apr 26 17:15:51 2004 UTC (15 years, 5 months ago) by schoenebeck
File length: 7899 byte(s)
* 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


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