/[svn]/linuxsampler/trunk/src/Sampler.h
ViewVC logotype

Log of /linuxsampler/trunk/src/Sampler.h

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 2500 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 10 12:20:05 2014 UTC (6 years ago) by schoenebeck
File length: 38388 byte(s)
Diff to previous 2375
* Added support for multiple MIDI input ports per sampler channel (added
  various new C++ API methods for this new feature/design, old C++ API
  methods are now marked as deprecated but should still provide full
  behavior backward compatibility).
* LSCP Network interface: Added the following new LSCP commands for the new
  feature mentioned above: "ADD CHANNEL MIDI_INPUT",
  "REMOVE CHANNEL MIDI_INPUT" and "LIST CHANNEL MIDI_INPUTS". As with the
  C++ API changes, the old LSCP commands for MIDI input management are now
  marked as deprecated, but are still there and should provide full behavior
  backward compatibility.
* New LSCP specification document (LSCP v1.6).
* AbstractEngine::GSCheckSum(): don't allocate memory on the stack (was
  unsafe and caused compilation error with old clang 2.x).
* Bumped version (1.0.0.svn25).


Revision 2375 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 4 17:45:22 2012 UTC (7 years, 3 months ago) by schoenebeck
File length: 31808 byte(s)
Diff to previous 1937
* 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 1937 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 12 19:52:20 2009 UTC (10 years, 6 months ago) by schoenebeck
File length: 30837 byte(s)
Diff to previous 1934
* bugfix: don't allow to change the audio output device, MIDI input device
  or MIDI input port when using a host plugin implementation
  (e.g VST, AU, DSSI, LV2) as this would go terribly wrong


Revision 1934 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 12 10:35:55 2009 UTC (10 years, 6 months ago) by schoenebeck
File length: 29500 byte(s)
Diff to previous 1897
* bugfix: don't allow to create or destroy audio devices and MIDI devices
  of host plugin implementations (e.g VST, AU, DSSI, LV2) on their own,
  as they only exist in the context of the plugin instance and would
  otherwise crash the application


Revision 1897 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun May 10 09:31:51 2009 UTC (10 years, 8 months ago) by persson
File length: 28673 byte(s)
Diff to previous 1835
* Windows: look for editor plugins and Fantasia using base directory
  of liblinuxsampler dll
* lscp bugfix: SET CHANNEL MIDI_INPUT_TYPE didn't work with the MME
  driver


Revision 1835 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 16 17:56:50 2009 UTC (10 years, 11 months ago) by iliev
File length: 28434 byte(s)
Diff to previous 1789
* Adapted drivers/Plugin class to be used as a base class for the
  AudioUnit plugin and fixed orphaned pointers when deleting PluginGlobal
* Fixed possible iterator invalidations when resetting the sampler
* Fixed memory leaks when issuing the following LSCP commands:
  GET AUDIO_OUTPUT_DRIVER INFO
  GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO
  GET MIDI_INPUT_DRIVER INFO
  GET MIDI_INPUT_DRIVER_PARAMETER INFO
* Fixed possible compilation error when sqlite is not present


Revision 1789 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Nov 1 19:01:27 2008 UTC (11 years, 2 months ago) by iliev
File length: 27518 byte(s)
Diff to previous 1765
* 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 1765 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Sep 6 16:44:42 2008 UTC (11 years, 4 months ago) by persson
File length: 27305 byte(s)
Diff to previous 1761
* refactoring: extracted lscp notification from main() to a separate
  function
* added helper function MidiInputPort::DispatchRaw for midi device
  implementations with raw byte data
* fixed a win32 build error (atomic.h is working on windows too)
* code cleanup: moved lscp classes into LinuxSampler namespace


Revision 1761 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 29 15:42:06 2008 UTC (11 years, 4 months ago) by iliev
File length: 27056 byte(s)
Diff to previous 1723
* fixed a crash which occurs when removing a sampler channel waiting
  to start instrument loading after another channel


Revision 1723 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Apr 20 08:53:39 2008 UTC (11 years, 9 months ago) by schoenebeck
File length: 26951 byte(s)
Diff to previous 1695
* allow pan control of engine channels on C++ API level
* export denormals-are-zero mode feature to C++ API


Revision 1695 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 16 01:09:33 2008 UTC (11 years, 11 months ago) by schoenebeck
File length: 26578 byte(s)
Diff to previous 1686
* added new LSCP event "DEVICE_MIDI" which can be used by frontends to
  react on MIDI data arriving on certain MIDI input devices (so far only
  Note-On and Note-Off events are sent via this LSCP event)
* bumped version to 0.5.1.4cvs


Revision 1686 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 14 14:58:50 2008 UTC (11 years, 11 months ago) by schoenebeck
File length: 26038 byte(s)
Diff to previous 1541
* added new LSCP event "CHANNEL_MIDI" which can be used by frontends to
  react on MIDI data arriving on certain sampler channels (so far only
  Note-On and Note-Off events are sent via this LSCP event)
* bumped LSCP compliance version to 1.4
* bumped LS version to 0.5.1.3cvs


Revision 1541 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 4 18:09:26 2007 UTC (12 years, 1 month ago) by iliev
File length: 24977 byte(s)
Diff to previous 1130
- Added support for monitoring the total number of active disk streams
  (new LSCP commands: GET TOTAL_STREAM_COUNT,
  SUBSCRIBE TOTAL_STREAM_COUNT, UNSUBSCRIBE TOTAL_STREAM_COUNT)


Revision 1130 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Mar 25 18:59:14 2007 UTC (12 years, 10 months ago) by iliev
File length: 24470 byte(s)
Diff to previous 900
* Implemented new, improved notification system


Revision 900 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 5 17:53:22 2006 UTC (13 years, 6 months ago) by schoenebeck
File length: 16271 byte(s)
Diff to previous 898
* src/Sampler.h, src/Sampler.cpp: allow 3rd party applications to
  retrieve available drivers and sampler engines
* src/linuxsampler.cpp: show available engines on startup (on the console)


Revision 898 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 5 16:29:44 2006 UTC (13 years, 6 months ago) by schoenebeck
File length: 15842 byte(s)
Diff to previous 890
just a bit API doc correction


Revision 890 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 1 13:43:04 2006 UTC (13 years, 6 months ago) by schoenebeck
File length: 15246 byte(s)
Diff to previous 880
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 880 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 27 22:57:37 2006 UTC (13 years, 7 months ago) by schoenebeck
File length: 15253 byte(s)
Diff to previous 840
just some refactoring work:
- renamed class LinuxSamplerException -> Exception
- encapsulated LS API relevant files into LS namespace
- removed unnecessary header inclusions


Revision 840 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Feb 26 13:00:08 2006 UTC (13 years, 11 months ago) by persson
File length: 15409 byte(s)
Diff to previous 778
* fixed some concurrency problems between the lscp thread and the
  audio/midi threads for these commands: load engine, set channel
  audio output device, set channel midi input device/port/channel and
  remove channel. Thanks to Vincent Bongiorno for bug reports and
  testing.
* removed an autotools warning
* fixed an iterator bug
* minor code clean-ups


Revision 778 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 23 06:58:26 2005 UTC (14 years, 4 months ago) by iliev
File length: 15455 byte(s)
Diff to previous 675
Added new LSCP commands: GET TOTAL_VOICE_COUNT,
GET TOTAL_VOICE_COUNT_MAX, SUBSCRIBE/UNSUBSCRIBE TOTAL_VOICE_COUNT


Revision 675 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 22 22:09:28 2005 UTC (14 years, 7 months ago) by schoenebeck
File length: 15263 byte(s)
Diff to previous 502
* update MIDI channel info on program change


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


Revision 411 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 26 02:01:14 2005 UTC (14 years, 11 months ago) by schoenebeck
File length: 15066 byte(s)
Diff to previous 221
* 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 221 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 20 17:25:19 2004 UTC (15 years, 5 months ago) by schoenebeck
File length: 14865 byte(s)
Diff to previous 212
* src/drivers/midi/MidiInputDeviceAlsa.cpp: implemented port parameter
 "NAME" which now updates the registered ALSA seq port name as well, fixed
  port parameter "ALSA_SEQ_BINDINGS" to allow more than one binding
* src/network/lscp.y: fixed symbol STRINGVAL (that is strings encapsulated
  into apostrophes) which didn't allow space characters
* changed all driver names and driver paramaters to upper case
* fixed typo in LSCP documentation
  (section 5.3.12, was: "SET MIDI_INPUT_PORT PARAMETER",
   should be: "SET MIDI_INPUT_PORT_PARAMETER")


Revision 212 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 28 14:17:29 2004 UTC (15 years, 6 months ago) by schoenebeck
File length: 14964 byte(s)
Diff to previous 209
* introduced and implemented new LSCP command "RESET" which resets the
  whole sampler instance
* src/drivers/audio/AudioOutputDeviceAlsa.cpp: parameter 'card' now
  returns all available sound cards as possibility, added dependency to
  parameter 'card' to parameters 'fragments' and 'fragmentsize'
* src/drivers/DeviceParameter.cpp: fixed return value(s) for classes
  'DeviceCreationParameterString' and 'DeviceCreationParameterStrings'
  which returned the default value(s) not encapsulated into apostrophes
* src/network/lscpserver.cpp: fixed implementation of LSCP commands
  "GET MIDI_INPUT_DRIVER_PARAMETER INFO" and
  "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO"


Revision 209 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 18 00:29:39 2004 UTC (15 years, 6 months ago) by schoenebeck
File length: 14766 byte(s)
Diff to previous 203
* src/Sampler.cpp: changed sampler channel index allocation from consistent
channel index allocation to incrementing channel index allocation, that is
it doesn't fill channel index gaps anymore (to avoid race conditions)
* implemented "LIST CHANNELS" LSCP command


Revision 203 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 13 22:44:13 2004 UTC (15 years, 6 months ago) by schoenebeck
File length: 13068 byte(s)
Diff to previous 173
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 173 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 6 03:18:03 2004 UTC (15 years, 6 months ago) by senkov
File length: 13076 byte(s)
Diff to previous 159
moved ToString() out


Revision 159 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 29 21:11:50 2004 UTC (15 years, 7 months ago) by capela
File length: 13247 byte(s)
Diff to previous 155
* Unconsolidaded MIDI input related channel commands are back:
  SET CHANNEL MIDI_INPUT_DEVICE <chan> <midi-device>
  SET CHANNEL MIDI_INPUT_PORT <chan> <midi-port>
  SET CHANNEL MIDI_INPUT_CHANNEL <chan> <midi-chan>

* Still useful for compability with legacy clients, an almost
  deprecated command gets re-implemented:
  SET CHANNEL MIDI_INPUT_TYPE <chan> <midi-driver>

* Optional parameter list on MIDI input device creation fixed,
  but not quite fully effective yet:
  CREATE MIDI_INPUT_DEVICE <midi-driver> [<key>=<val>...]


Revision 155 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 28 04:30:11 2004 UTC (15 years, 7 months ago) by senkov
File length: 12134 byte(s)
Diff to previous 123
* Updated parser, lscp server and sampler class for new MIDI_INPUT
* Minor fixes (and major new bugs) here and there
* Consolidated 3 SET CHANNEL MIDI_xxx commands into one:
SET CHANNEL MIDI_INPUT


Revision 123 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 14 19:33:16 2004 UTC (15 years, 7 months ago) by schoenebeck
File length: 12137 byte(s)
Diff to previous 64
* src/common: added template class 'optional<>' which can be used e.g. as
  return type whenever a value might be returned, but don't has to; this
  template class pretty much acts like a pointer of the given type, but is
  much more safer than a simple pointer
* src/audiodriver: added static class AudioDeviceFactory to create audio
  devices at runtime by using a string and to obtain driver informations
  of drivers at runtime, driver classes should simply use the macro
  REGISTER_AUDIO_OUTPUT_DRIVER(DriverName,DriverClass) in their cpp file
  to register the driver to LinuxSampler (no changes needed anymore in the
  LS code to add a new audio output driver)
* src/drivers: added classes to dynamically manage driver parameters; there
  are two different kinds of parameters: parameters which are need to
  create a new device (DeviceCreationParameterX) used to e.g. create an
  audio output device or a MIDI input device and parameters which are only
  available at runtime, means when a device is already created
  (DeviceRuntimeParameterX) which will be e.g. used as audio channel
  parameters and MIDI port parameters
* src/linuxsampler.cpp: all registered audio output drivers will be shown
  on the console on startup
* src/network: implemented configuration of audio output devices via LSCP


Revision 64 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 6 20:06:20 2004 UTC (15 years, 8 months ago) by schoenebeck
File length: 11766 byte(s)
Diff to previous 61
* 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 61 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 3 19:29:44 2004 UTC (15 years, 8 months ago) by schoenebeck
File length: 12118 byte(s)
Diff to previous 57
forgot to update copyright header for 2004 for following files:
src/linuxsampler.cpp,
src/Sampler.h,
src/Sampler.cpp,
src/network/lscpscanner.cpp


Revision 57 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun May 2 17:45:43 2004 UTC (15 years, 8 months ago) by schoenebeck
File length: 12118 byte(s)
Diff to previous 53
* 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 53 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Apr 26 17:15:51 2004 UTC (15 years, 9 months ago) by schoenebeck
File length: 4528 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