/[svn]/linuxsampler/trunk/src/engines/gig/InstrumentResourceManager.cpp
ViewVC logotype

Log of /linuxsampler/trunk/src/engines/gig/InstrumentResourceManager.cpp

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 3733 - (view) (download) (annotate) - [select for diffs]
Modified Sat Feb 1 18:11:20 2020 UTC (5 months ago) by schoenebeck
File length: 48348 byte(s)
Diff to previous 3719
NKSP: Added support for 'patch' variables.

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

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

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

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

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

* Bumped version (2.1.1.svn46).



Revision 3719 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jan 15 16:12:51 2020 UTC (5 months, 2 weeks ago) by schoenebeck
File length: 48289 byte(s)
Diff to previous 3054
* gig engine: Fixed potential crash with polynomial interpolator
  and max. pitch.

* Bumped version (2.1.1.svn39).


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


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


Revision 2902 - (view) (download) (annotate) - [select for diffs]
Modified Tue May 3 14:00:16 2016 UTC (4 years, 2 months ago) by schoenebeck
File length: 48195 byte(s)
Diff to previous 2837
* Reload instrument script automatically after being modified by an
  instrument editor.
* Bumped version (2.0.0.svn8).


Revision 2837 - (view) (download) (annotate) - [select for diffs]
Modified Sun Aug 23 06:14:00 2015 UTC (4 years, 10 months ago) by persson
File length: 45375 byte(s)
Diff to previous 2687
* fixed printf type errors (mostly in debug messages)



Revision 2687 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jan 4 17:16:05 2015 UTC (5 years, 6 months ago) by schoenebeck
File length: 45364 byte(s)
Diff to previous 2427
* Instrument editor interface: Changed instrument editor plugin interface,
providing additional informations like the EngineChannel for which the
instrument editor was spawned for. This allows the instrument editors to
interact more actively with the sampler.
* Bumped version (1.0.0.svn60).


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


Revision 2327 - (view) (download) (annotate) - [select for diffs]
Modified Sat Mar 10 16:16:14 2012 UTC (8 years, 3 months ago) by persson
File length: 45275 byte(s)
Diff to previous 2326
* sfz/sf2 engine: fixed crash when using small audio fragment size


Revision 2326 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 8 19:40:14 2012 UTC (8 years, 3 months ago) by persson
File length: 45328 byte(s)
Diff to previous 2309
* bugfix: instrument loading crashed for sfz and sf2 in Ardour (#176)
* more thread safety fixes for the instrument loading thread


Revision 2309 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 30 10:40:19 2012 UTC (8 years, 5 months ago) by iliev
File length: 46798 byte(s)
Diff to previous 2291
* fixed bug #162


Revision 2291 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 24 17:00:29 2011 UTC (8 years, 7 months ago) by capela
File length: 46774 byte(s)
Diff to previous 2275
* LV2 State extension;
  replaces LV2 Persist and LV2 Files extensions (patch by David Robilard).

Revision 2275 - (view) (download) (annotate) - [select for diffs]
Modified Mon Sep 19 21:48:45 2011 UTC (8 years, 9 months ago) by schoenebeck
File length: 46753 byte(s)
Diff to previous 2185
* Bugfix: When creating MIDI instrument map entries with "PERSISTENT"
  type, the instruments were uselessly precached with zero samples,
  however it still took the full preloading time and on 1st program
  change the respective instrument was completely reloaded again.
* Bumped version to 1.0.0.svn15


Revision 2185 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jun 19 09:09:38 2011 UTC (9 years ago) by persson
File length: 46998 byte(s)
Diff to previous 2012
* fixed compilation with gcc 4.6.1
* another "make dist" fix, for LV2 plugin
* made --enable-pthread-testcancel default on Mac OS X
* Mac OS X: fixed hanging threads


Revision 2012 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 23 17:53:17 2009 UTC (10 years, 8 months ago) by iliev
File length: 46964 byte(s)
Diff to previous 1876
* 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 1876 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 27 12:16:12 2009 UTC (11 years, 3 months ago) by schoenebeck
File length: 49099 byte(s)
Diff to previous 1868
* added optional 3rd party user data parameter for following
  liblinuxsampler C++ API methods: InstrumentEditor::Main(),
  InstrumentEditor::Launch(), InstrumentManager::LaunchInstrumentEditor()
* minor cosmetics regarding configure script summary
* debian packaging: include DSSI and LV2 plugin binaries of the sampler
  into the liblinuxsampler package
* RPM packaging: include DSSI and LV2 plugin binaries of the sampler
  into the liblinuxsampler package
* bumped version to 0.5.1.12cvs


Revision 1868 - (view) (download) (annotate) - [select for diffs]
Modified Wed Mar 18 22:16:14 2009 UTC (11 years, 3 months ago) by schoenebeck
File length: 49071 byte(s)
Diff to previous 1852
* C++ API method InstrumentManager::LaunchInstrumentEditor() now returns
  a pointer to the launched InstrumentEditor object


Revision 1852 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 1 22:22:03 2009 UTC (11 years, 4 months ago) by schoenebeck
File length: 49025 byte(s)
Diff to previous 1797
* bugfix: on sample reference changes (instrument editor), only un-cache
  the respective sample if it's really not used by any sampler engine
  anymore
* re-cache samples in case they were changed by an instrument editor, e.g.
  when a sample was added while playing (#82)
* bumped version to 0.5.1.10cvs


Revision 1797 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 4 19:33:13 2008 UTC (11 years, 7 months ago) by persson
File length: 47605 byte(s)
Diff to previous 1774
* let the GET FILE INSTRUMENT INFO command only return keyswitch range
  if keyswitching is actually used (#106)


Revision 1774 - (view) (download) (annotate) - [select for diffs]
Modified Thu Sep 11 18:11:06 2008 UTC (11 years, 9 months ago) by iliev
File length: 46897 byte(s)
Diff to previous 1771
* don't retrieve key bindings and keyswitch bindings if
  the instrument is not loaded in the instrument manager
* notification events are now sent when sending MIDI
  messages using SEND CHANNEL MIDI_DATA lscp command
* fixed a bug in the keyswitch bindings retrieval


Revision 1771 - (view) (download) (annotate) - [select for diffs]
Modified Wed Sep 10 15:02:24 2008 UTC (11 years, 9 months ago) by iliev
File length: 46764 byte(s)
Diff to previous 1662
* added new LSCP command: SEND CHANNEL MIDI_DATA which can be used by
  frontends to send MIDI messages to specific sampler channel
* added two additional fields to GET FILE INSTRUMENT INFO command -
  KEY_BINDINGS and KEYSWITCH_BINDINGS
* InstrumentResourceManager::GetInstrumentInfo now scans the specified
  instrument file only if it is not loaded in the instrument manager


Revision 1662 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 3 16:21:38 2008 UTC (12 years, 5 months ago) by schoenebeck
File length: 45325 byte(s)
Diff to previous 1659
* the promised "cleanup": rewrote virtual MIDI device's notification a bit
  (using now a safe double buffer approach using "SynchronizedConfig"
  instead of the Trylock() approach previously to synchronize the list of
  virtual MIDI devices)
* bumped version to 0.5.1.2cvs


Revision 1659 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 3 00:13:27 2008 UTC (12 years, 5 months ago) by schoenebeck
File length: 45280 byte(s)
Diff to previous 1653
* added support for triggering notes by instrument editors
  (still some cleanup / refactoring ahead, but it should work)
* bumped version to 0.5.1.1cvs


Revision 1653 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jan 30 01:51:46 2008 UTC (12 years, 5 months ago) by schoenebeck
File length: 41867 byte(s)
Diff to previous 1646
* added support for notifying instrument editors on note-on / note-off
  events (e.g. to highlight the pressed keys on the virtual keyboard
  of gigedit)
* fixed return value of recently added Thread::TestCancel() method
* be verbose on DLL load errors (on Linux)


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


Revision 1525 - (view) (download) (annotate) - [select for diffs]
Modified Sun Nov 25 17:47:46 2007 UTC (12 years, 7 months ago) by schoenebeck
File length: 39388 byte(s)
Diff to previous 1455
* LSCP: added new LSCP commands: "GET FILE INSTRUMENTS <file>",
  "LIST FILE INSTRUMENTS <file>" and
  "GET FILE INSTRUMENT INFO <file> <index>" for retrieving informations
  about an arbitrary instrument file on the system where the sampler is
  running on (LSCP specs yet to be updated!)
* bumped version to 0.5.0.1cvs
* bumped LSCP compliance to LSCP version 1.3


Revision 1455 - (view) (download) (annotate) - [select for diffs]
Modified Sun Oct 21 11:59:59 2007 UTC (12 years, 8 months ago) by persson
File length: 36782 byte(s)
Diff to previous 1424
* bugfix: the thread used by an editor plugin didn't die when the
  editor closed


Revision 1424 - (view) (download) (annotate) - [select for diffs]
Modified Sun Oct 14 22:00:17 2007 UTC (12 years, 8 months ago) by schoenebeck
File length: 36706 byte(s)
Diff to previous 1375
* 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 1375 - (view) (download) (annotate) - [select for diffs]
Modified Wed Oct 3 18:41:09 2007 UTC (12 years, 9 months ago) by schoenebeck
File length: 36665 byte(s)
Diff to previous 1321
* code refactoring, moved the following files from
  src/engines/ -> src/plugins/ :

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


Revision 1321 - (view) (download) (annotate) - [select for diffs]
Modified Tue Sep 4 01:12:49 2007 UTC (12 years, 10 months ago) by schoenebeck
File length: 36654 byte(s)
Diff to previous 1212
* 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 1212 - (view) (download) (annotate) - [select for diffs]
Modified Tue May 29 23:59:36 2007 UTC (13 years, 1 month ago) by schoenebeck
File length: 20294 byte(s)
Diff to previous 1038
* added highly experimental support for on-the-fly instrument editing
  within the sampler's process (by using instrument editor plugins),
  you'll notice the new "Registered instrument editors:" message on
  startup, the plugin path can be overridden at compile time with
  ./configure --enable-plugin-dir=/some/dir
* added a new LSCP command "EDIT INSTRUMENT <sampler-channel>" to spawn
  a matching instrument editor for the instrument on the given sampler
  channel (LSCP command syntax might be subject to change soon)
* config.h is not going to be installed along with liblinuxsampler's
  API header files anymore (not necessary anymore)
* take care of $(DESTDIR) when creating the instruments DB on 'make
  install' rule (needed for packaging and cross compilation)
* bumped version to 0.4.0.5cvs


Revision 1038 - (view) (download) (annotate) - [select for diffs]
Modified Sat Feb 3 15:33:00 2007 UTC (13 years, 5 months ago) by persson
File length: 16152 byte(s)
Diff to previous 970
* 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 970 - (view) (download) (annotate) - [select for diffs]
Modified Wed Dec 6 22:28:17 2006 UTC (13 years, 7 months ago) by schoenebeck
File length: 11963 byte(s)
Diff to previous 958
* fixed crash occuring in conjunction with the new 'MAP MIDI_INSTRUMENT'
  LSCP command (cause: RingBuffer was not able to do deep copies)


Revision 958 - (view) (download) (annotate) - [select for diffs]
Modified Wed Nov 29 19:48:38 2006 UTC (13 years, 7 months ago) by schoenebeck
File length: 11896 byte(s)
Diff to previous 947
* store volume for each MIDI instrument mapper entry individually instead
  of managing the volume as shared setting with the respective instrument
  entry of its InstrumentManager


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


Revision 554 - (view) (download) (annotate) - [select for diffs]
Modified Thu May 19 19:25:14 2005 UTC (15 years, 1 month ago) by schoenebeck
File length: 10534 byte(s)
Diff to previous 517
* 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 517 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 8 00:26:21 2005 UTC (15 years, 2 months ago) by schoenebeck
File length: 10523 byte(s)
Diff to previous 438
* implemented progress indicator for loading instruments
  (can be polled with "GET CHANNEL INFO", field "INSTRUMENT_STATUS")


Revision 438 - (view) (download) (annotate) - [select for diffs]
Modified Wed Mar 9 22:12:15 2005 UTC (15 years, 3 months ago) by persson
File length: 8529 byte(s)
Diff to previous 420
* 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 420 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 3 03:25:17 2005 UTC (15 years, 4 months ago) by schoenebeck
File length: 8574 byte(s)
Diff to previous 411
* fixed some segfaults (which occured on EngineChannel destruction)
* InstrumentResourceManager: recache small samples if their current
  number of silence sample points are not sufficient enough for the used
  audio output device
* src/linuxsampler.cpp: voice / streams statistics on the console is back
  again (can be turned on with command line switch --statistics)


Revision 411 - (view) (download) (annotate) - [select for diffs]
Modified Sat Feb 26 02:01:14 2005 UTC (15 years, 4 months ago) by schoenebeck
File length: 8147 byte(s)
Diff to previous 354
* 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 354 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jan 29 15:17:59 2005 UTC (15 years, 5 months ago) by schoenebeck
File length: 6797 byte(s)
Diff to previous 349
* support for keyswitching
* ignore if no sample was defined for region(s) or dimension region(s)
(patch by Andreas Persson)


Revision 349 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jan 25 01:05:33 2005 UTC (15 years, 5 months ago) by schoenebeck
File length: 6750 byte(s)
Diff to previous 56
raised verbosity of debug message in case of caching a whole sample


Revision 56 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 27 09:21:58 2004 UTC (16 years, 2 months ago) by schoenebeck
File length: 6554 byte(s)
Diff to previous 53
updated copyright header for 2004


Revision 53 - (view) (download) (annotate) - [select for diffs]
Added Mon Apr 26 17:15:51 2004 UTC (16 years, 2 months ago) by schoenebeck
File length: 6554 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