/[svn]/linuxsampler/trunk/src/network/lscpserver.h
ViewVC logotype

Log of /linuxsampler/trunk/src/network/lscpserver.h

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1135 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 29 09:40:45 2007 UTC (12 years, 9 months ago) by iliev
File length: 15981 byte(s)
Diff to previous 1133
* Added new LSCP command - SET FX_SEND NAME
* The default map is now the first available map


Revision 1133 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 26 08:27:06 2007 UTC (12 years, 9 months ago) by iliev
File length: 15693 byte(s)
Diff to previous 1130
- code cleanup


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


Revision 1047 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 19 19:38:04 2007 UTC (12 years, 11 months ago) by schoenebeck
File length: 11179 byte(s)
Diff to previous 1026
* by default now all "MAP MIDI_INSTRUMENT" LSCP commands (also the
  "PERSISTENT" ones) block until the respective mapping is completely
  established in the sampler, added a new argument though to allow
  explicit mapping in the background ("MAP MIDI_INSTRUMENT NON_MODAL")
* LSCP documentation updated


Revision 1026 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 14 17:10:59 2007 UTC (13 years ago) by schoenebeck
File length: 11166 byte(s)
Diff to previous 1005
* extended response of LSCP command "GET FX_SEND INFO" to return the FX
  Send's MIDI controller and current send level and added two new LSCP
  commands "SET FX_SEND MIDI_CONTROLLER" and "SET FX_SEND LEVEL"
  respectively


Revision 1005 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 29 20:06:14 2006 UTC (13 years ago) by schoenebeck
File length: 10983 byte(s)
Diff to previous 1001
* global volume can now be altered at runtime
  (added two new LSCP commands for this, LSCP specs updated)


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


Revision 973 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 15 21:40:27 2006 UTC (13 years, 1 month ago) by schoenebeck
File length: 10457 byte(s)
Diff to previous 947
* revised and extended MIDI instrument mapping feature to allow managing
  arbitrary amount of maps and assigning each sampler channel individually
  to one map (this commit batch includes LSCP spec document update and
  respective implementation on LS side)


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


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


Revision 705 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 20 21:43:23 2005 UTC (14 years, 6 months ago) by schoenebeck
File length: 9317 byte(s)
Diff to previous 667
* 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 667 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 19 21:22:34 2005 UTC (14 years, 7 months ago) by senkov
File length: 9086 byte(s)
Diff to previous 563
* added cmdline options for lscp address and port


Revision 563 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun May 22 20:43:32 2005 UTC (14 years, 7 months ago) by schoenebeck
File length: 9026 byte(s)
Diff to previous 527
* (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 527 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 9 11:59:58 2005 UTC (14 years, 8 months ago) by capela
File length: 8994 byte(s)
Diff to previous 475
* [bug #9] Fixed for a LSCP command syntax convention
  consistency, regarding the enumeration of available
  sampler engines, Audio and MIDI drivers; this has
  affected the semantics of the following commands:
    GET AVAILABLE_ENGINES
    GET AVAILABLE_AUDIO_DRIVERS
    GET AVAILABLE_MIDI_DRIVERS
  which are now returning an integer count of engines
  and drivers, respectively, while the following
  new commands are now being introduced:
    LIST AVAILABLE_ENGINES
    LIST AVAILABLE_AUDIO_DRIVERS
    LIST AVAILABLE_MIDI_DRIVERS
  taking on the previous functionality, returning
  a comma separated list of names.

* LinuxSampler version bumped to 0.3.1.


Revision 475 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 17 23:56:56 2005 UTC (14 years, 10 months ago) by schoenebeck
File length: 8857 byte(s)
Diff to previous 411
* 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 411 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Feb 26 02:01:14 2005 UTC (14 years, 10 months ago) by schoenebeck
File length: 8826 byte(s)
Diff to previous 397
* 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 397 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 21 04:28:50 2005 UTC (14 years, 10 months ago) by senkov
File length: 8823 byte(s)
Diff to previous 385
* Added first cut of instrument database query support.


Revision 385 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 17 02:53:45 2005 UTC (14 years, 11 months ago) by schoenebeck
File length: 8786 byte(s)
Diff to previous 360
* lscpserver: we now only use one instrument loader thread; commands for
  loading instruments in the background wait in a queue to be processed one
  by one to avoid possible race conditions and to improve I/O efficiency
* fixed possible race condition while streaming with multiple disk threads
  by using an own decompression buffer for each disk thread
* libgig: fixed some memory leaks caused by non virtual base constructors


Revision 360 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 7 00:19:30 2005 UTC (14 years, 11 months ago) by senkov
File length: 8997 byte(s)
Diff to previous 227
* Updated implementation for real time notify messages:
VOICE_COUNT, STREAM_COUNT, BUFFER_FILL


Revision 227 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 26 22:05:44 2004 UTC (15 years, 4 months ago) by schoenebeck
File length: 8593 byte(s)
Diff to previous 225
* ALSA audio driver: bugfix in device parameter 'CARD' which caused an
  error message if used in conjunction with 'CREATE AUDIO_OUTPUT_DEVICE'
  LSCP command
* JACK audio driver: fixed minor JACK port name issue and the device was
  not activated by default on creation which caused it to render solely
  silence
* src/network/lscpserver.cpp: retry to bind socket for 3 minutes if bind
  failed


Revision 225 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 22 14:46:47 2004 UTC (15 years, 4 months ago) by schoenebeck
File length: 8509 byte(s)
Diff to previous 219
* 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 219 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 17 20:35:04 2004 UTC (15 years, 5 months ago) by schoenebeck
File length: 8508 byte(s)
Diff to previous 212
* completely removed the lex scanner and replaced it by pure yacc rules
  for all terminal symbols (that is command keywords and variables) to
  avoid misunderstandings while parsing (e.g. recognition of command
  keywords in string arguments)
* src/drivers/audio/AudioChannel.cpp: changed channel parameter 'Name' to
 'NAME' as defined in the LSCP documentation


Revision 212 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 28 14:17:29 2004 UTC (15 years, 5 months ago) by schoenebeck
File length: 8537 byte(s)
Diff to previous 211
* 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 211 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 25 23:27:41 2004 UTC (15 years, 5 months ago) by schoenebeck
File length: 8506 byte(s)
Diff to previous 210
* src/linuxsampler.cpp: tidied up a bit, "initialization completed"
  message shown only after the server is actually running
* src/testcases/: print the name of each test suite before running the
  tests of the suite, added first tests against the LSCP server using a
  socket connection to the LSCP server (tests for the following LSCP
  commands: "ADD CHANNEL", "GET CHANNELS", "REMOVE CHANNEL")


Revision 210 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 24 12:33:49 2004 UTC (15 years, 5 months ago) by schoenebeck
File length: 8347 byte(s)
Diff to previous 209
* implemented "SET ECHO" LSCP command


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: 8239 byte(s)
Diff to previous 185
* 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 185 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 7 02:49:51 2004 UTC (15 years, 6 months ago) by senkov
File length: 8217 byte(s)
Diff to previous 184
* GET MIDI_INPUT_PORT_PARAMETER INFO command


Revision 184 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 7 02:00:37 2004 UTC (15 years, 6 months ago) by senkov
File length: 8121 byte(s)
Diff to previous 170
* Added MISCELLANEOUS event to help debugging client/server
interaction. It spits out every line received by the server.


Revision 170 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 3 20:08:07 2004 UTC (15 years, 6 months ago) by senkov
File length: 8120 byte(s)
Diff to previous 159
* moved ToString to common
* Implemented handling of multiple connections
* Implemented guts for event subscription/unsubscription
* Illustrated event notification sending by sending MISC events
when connections are established or terminated.


Revision 159 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 29 21:11:50 2004 UTC (15 years, 6 months ago) by capela
File length: 8551 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, 6 months ago) by senkov
File length: 8317 byte(s)
Diff to previous 143
* 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 143 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 23 18:54:08 2004 UTC (15 years, 6 months ago) by capela
File length: 7160 byte(s)
Diff to previous 140
* SET CHANNEL AUDIO_OUTPUT_TYPE <chan> <driver> command is back!
  creates an audio output device instance of the given driver type
  ('Jack' or 'Alsa') with default parameters if none exists,
  otherwise it just picks the first available device and assign
  it to the intended sampler channel.

* The AudioOutputDevice class get's a new pure virtual method,
  Driver(), which is implemented on both of the existing inherited
  classes, AudioOutputDeviceAlsa and AudioOutputDeviceJack, with
  the sole purpose to return the driver type name as a String
  ('Alsa' and 'Jack', respectively).

* The quoting on the filename argument for the LOAD INSTRUMENT
  command has been made optional; you can have both ways, with
  single quotes or none, keeping compability with older LSCP
  specification.

* An additional sanity check is made on LOAD INSTRUMENT, whether
  the sampler channel has an audio output device assigned, thus
  preventing the server from crashing on instrument file load.

* The GET AUDIO_OUTPUT_DEVICE INFO now includes the missing
  'driver' item, as predicted by the draft protocol document.


Revision 140 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 21 00:23:56 2004 UTC (15 years, 7 months ago) by senkov
File length: 6921 byte(s)
Diff to previous 138
Cleanup for GCC bug workaround


Revision 138 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 20 23:18:24 2004 UTC (15 years, 7 months ago) by senkov
File length: 6802 byte(s)
Diff to previous 137
* Fix for CREATE_AUDIO_OUTPUT_DEVICE with all default params
* Fix for GET AUDIO_OUTPUT_DEVICES resultset
* Support for BACKGROUND loading


Revision 137 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 20 16:49:47 2004 UTC (15 years, 7 months ago) by capela
File length: 6788 byte(s)
Diff to previous 135
* Changed LSCPServer::LoadInstrument() signature, which adds a new
  boolean argument (bool bBackground) where the loading mode maybe
  selected, whether modal (the default), or modeless (in background).


Revision 135 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 20 16:01:50 2004 UTC (15 years, 7 months ago) by senkov
File length: 6762 byte(s)
Diff to previous 133
* Update parser to comply with the latest spec


Revision 133 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 18 14:29:02 2004 UTC (15 years, 7 months ago) by capela
File length: 6764 byte(s)
Diff to previous 123
* 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 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: 6328 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: 5098 byte(s)
Diff to previous 56
* 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 56 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 27 09:21:58 2004 UTC (15 years, 8 months ago) by schoenebeck
File length: 5086 byte(s)
Diff to previous 53
updated copyright header for 2004


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


Revision 35 - (view) (download) (as text) (annotate) - [select for diffs]
Added Fri Mar 5 13:46:15 2004 UTC (15 years, 10 months ago) by schoenebeck
File length: 5083 byte(s)
* implemented parser for the LinuxSampler control protocol (LSCP) by using
  flex / bison (where src/network/lscp.l is the input file for lex / flex
  and src/network/lscp.y is the input file for yacc / bison), parser and
  scanner can be regenerated by 'make parser'
* implemented LSCP network server (only single threaded so far), LSCP
  server will be launched if LinuxSampler was started with "--server" flag,
  implemented the following LSCP commands so far: "LOAD INSTRUMENT", "GET
  CHANNEL VOICE_COUNT", "GET CHANNEL STREAM_COUNT", "GET CHANNEL
  BUFFER_FILL", "SET CHANNEL VOLUME" and "RESET CHANNEL"
* disk thread now started within the engine


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