/[svn]/linuxsampler/trunk/src/network/lscp.y
ViewVC logotype

Log of /linuxsampler/trunk/src/network/lscp.y

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1047 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 19 19:38:04 2007 UTC (17 years, 1 month ago) by schoenebeck
File length: 46898 byte(s)
Diff to previous 1026 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Sun Jan 14 17:10:59 2007 UTC (17 years, 2 months ago) by schoenebeck
File length: 46648 byte(s)
Diff to previous 1005 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Fri Dec 29 20:06:14 2006 UTC (17 years, 3 months ago) by schoenebeck
File length: 46136 byte(s)
Diff to previous 1001 , to selected 826
* global volume can now be altered at runtime
  (added two new LSCP commands for this, LSCP specs updated)


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


Revision 981 - (view) (download) (annotate) - [select for diffs]
Modified Sun Dec 17 22:35:01 2006 UTC (17 years, 3 months ago) by iliev
File length: 44399 byte(s)
Diff to previous 973 , to selected 826
* Added new notification events for tracking audio/MIDI device changes,
MIDI instrument map changes and MIDI instrument changes


Revision 973 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 15 21:40:27 2006 UTC (17 years, 3 months ago) by schoenebeck
File length: 41021 byte(s)
Diff to previous 947 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Mon Nov 27 21:34:55 2006 UTC (17 years, 4 months ago) by schoenebeck
File length: 38347 byte(s)
Diff to previous 826
* implemented MIDI instrument mapping according to latest LSCP draft


Revision 826 - (view) (download) (annotate) - [selected]
Modified Sun Jan 8 20:19:49 2006 UTC (18 years, 2 months ago) by schoenebeck
File length: 34247 byte(s)
Diff to previous 778
* bugfix in LSCP parser which was confused by space(s) within device
  parameters
  (e.g. "SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 SOMEPARAM='foo bar'")
* changed version to 0.3.3cvs


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


Revision 705 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jul 20 21:43:23 2005 UTC (18 years, 8 months ago) by schoenebeck
File length: 33533 byte(s)
Diff to previous 573 , to selected 826
* 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 573 - (view) (download) (annotate) - [select for diffs]
Modified Tue May 24 03:18:30 2005 UTC (18 years, 10 months ago) by schoenebeck
File length: 33045 byte(s)
Diff to previous 563 , to selected 826
command syntax (BNF) of LSCP specification is now auto generated


Revision 563 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 22 20:43:32 2005 UTC (18 years, 10 months ago) by schoenebeck
File length: 32693 byte(s)
Diff to previous 556 , to selected 826
* (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 556 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 21 01:10:12 2005 UTC (18 years, 10 months ago) by schoenebeck
File length: 32455 byte(s)
Diff to previous 555 , to selected 826
* Little LSCP API change: renamed events "CHANNELS" -> "CHANNEL_COUNT" and
  "INFO" -> "CHANNEL_INFO" to be more meaningful (patch by Grigor Iliev).


Revision 555 - (view) (download) (annotate) - [select for diffs]
Modified Fri May 20 13:22:53 2005 UTC (18 years, 10 months ago) by schoenebeck
File length: 32270 byte(s)
Diff to previous 527 , to selected 826
* tiny fix in LSCP parser; returned prefix "Err" instead of "ERR" on syntax
  errors (patch by Grigor Iliev)


Revision 527 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 9 11:59:58 2005 UTC (18 years, 10 months ago) by capela
File length: 32270 byte(s)
Diff to previous 483 , to selected 826
* [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 483 - (view) (download) (annotate) - [select for diffs]
Modified Mon Mar 21 23:40:56 2005 UTC (19 years ago) by schoenebeck
File length: 31871 byte(s)
Diff to previous 411 , to selected 826
* JACK audio driver: fixed handling of channel parameter 'JACK_BINDINGS'
* fixed parser bug of multiplicity parameters


Revision 411 - (view) (download) (annotate) - [select for diffs]
Modified Sat Feb 26 02:01:14 2005 UTC (19 years, 1 month ago) by schoenebeck
File length: 31367 byte(s)
Diff to previous 397 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Mon Feb 21 04:28:50 2005 UTC (19 years, 1 month ago) by senkov
File length: 31364 byte(s)
Diff to previous 274 , to selected 826
* Added first cut of instrument database query support.


Revision 274 - (view) (download) (annotate) - [select for diffs]
Modified Sat Oct 9 00:46:18 2004 UTC (19 years, 5 months ago) by schoenebeck
File length: 31172 byte(s)
Diff to previous 228 , to selected 826
* MidiInputPort: fixed dispatching of MIDI events to engines which are
  listening to all MIDI channels
* switched MIDI channel indexing to low level indexing (means 0..15 now)


Revision 228 - (view) (download) (annotate) - [select for diffs]
Modified Sat Aug 28 14:55:34 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 31171 byte(s)
Diff to previous 226 , to selected 826
* src/network/lscp.y: fixed symbol 'midi_input_channel_index' to allow
  keyword 'ALL' for the respective LSCP commands


Revision 226 - (view) (download) (annotate) - [select for diffs]
Modified Wed Aug 25 22:00:33 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 31065 byte(s)
Diff to previous 225 , to selected 826
* ALSA MIDI driver: create one MIDI port by default, implemented parameter
  info for parameter 'ALSA_SEQ_BINDINGS'
* ALSA audio driver: implemented parameter info for driver parameters
  'FRAGMENTS' and 'FRAGMENTSIZE'
* JACK audio driver: fixed creation of channels on device creation, channel
  parameter 'NAME' now actually updates the respective JACK port name,
  implemented channel parameter 'JACK_BINDINGS' (as well as its parameter
  info)
* src/network/lscpserver.cpp: fixed commands
  "GET MIDI_INPUT_DRIVER_PARAMETER INFO" and
  "GET AUDIO_OUTPUT_DRIVER_PARAMETER  INFO", fixed backward compatibility
  for "SET AUDIO_OUTPUT_TYPE" and "SET MIDI_INPUT_TYPE" commands
* src/networ/lscp.y: added comma character (',') to symbol 'char'
* src/drivers/DeviceParameter.cpp: fixed methods RangeMin(), RangeMax() in
  class DeviceCreationParameterInt which returned wrong values


Revision 225 - (view) (download) (annotate) - [select for diffs]
Modified Sun Aug 22 14:46:47 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 31045 byte(s)
Diff to previous 221 , to selected 826
* 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 221 - (view) (download) (annotate) - [select for diffs]
Modified Fri Aug 20 17:25:19 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 31073 byte(s)
Diff to previous 219 , to selected 826
* 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 219 - (view) (download) (annotate) - [select for diffs]
Modified Tue Aug 17 20:35:04 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 30844 byte(s)
Diff to previous 214 , to selected 826
* 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 214 - (view) (download) (annotate) - [select for diffs]
Modified Sat Aug 14 23:00:44 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 17929 byte(s)
Diff to previous 212 , to selected 826
* src/drivers/DeviceParameter.cpp: fixed return values for
classes 'DeviceRuntimeParameterString' and 'DeviceCreationParameterString'
which returned their values without being encapsulated into apostrophes,
fixed return values for 'DeviceRuntimeParameterBool' and
'DeviceCreationParameterBool' to be returned in lower case (as defined in
the LSCP documentation)
* src/network/lscp.y: key value pairs now also allow strings (without
spaces) to be not encapsulated into apostrophes (e.g. foo=bar instead of
foo='bar')
* src/linuxsampler.cpp: show on the console which TCP port the LSCP server
is using


Revision 212 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jul 28 14:17:29 2004 UTC (19 years, 8 months ago) by schoenebeck
File length: 17969 byte(s)
Diff to previous 210 , to selected 826
* 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 210 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jul 24 12:33:49 2004 UTC (19 years, 8 months ago) by schoenebeck
File length: 17849 byte(s)
Diff to previous 209 , to selected 826
* implemented "SET ECHO" LSCP command


Revision 209 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jul 18 00:29:39 2004 UTC (19 years, 8 months ago) by schoenebeck
File length: 17399 byte(s)
Diff to previous 185 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Wed Jul 7 02:49:51 2004 UTC (19 years, 8 months ago) by senkov
File length: 17316 byte(s)
Diff to previous 170 , to selected 826
* GET MIDI_INPUT_PORT_PARAMETER INFO command


Revision 170 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jul 3 20:08:07 2004 UTC (19 years, 8 months ago) by senkov
File length: 17146 byte(s)
Diff to previous 159 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Tue Jun 29 21:11:50 2004 UTC (19 years, 9 months ago) by capela
File length: 17458 byte(s)
Diff to previous 155 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Mon Jun 28 04:30:11 2004 UTC (19 years, 9 months ago) by senkov
File length: 16779 byte(s)
Diff to previous 143 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Wed Jun 23 18:54:08 2004 UTC (19 years, 9 months ago) by capela
File length: 14880 byte(s)
Diff to previous 141 , to selected 826
* 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 141 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 21 01:21:33 2004 UTC (19 years, 9 months ago) by senkov
File length: 14585 byte(s)
Diff to previous 138 , to selected 826
* LOAD INSTRUMENT NON_MODAL


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


Revision 135 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jun 20 16:01:50 2004 UTC (19 years, 9 months ago) by senkov
File length: 14448 byte(s)
Diff to previous 123 , to selected 826
* Update parser to comply with the latest spec


Revision 123 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 14 19:33:16 2004 UTC (19 years, 9 months ago) by schoenebeck
File length: 13305 byte(s)
Diff to previous 111 , to selected 826
* 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 111 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jun 5 20:55:50 2004 UTC (19 years, 9 months ago) by schoenebeck
File length: 9652 byte(s)
Diff to previous 64 , to selected 826
* LSCP allows now comment lines, that is lines starting with a hash ('#')
  character
* src/engines/gig/Voice.cpp: fixed "SET CHANNEL VOLUME" bug


Revision 64 - (view) (download) (annotate) - [select for diffs]
Modified Thu May 6 20:06:20 2004 UTC (19 years, 10 months ago) by schoenebeck
File length: 9405 byte(s)
Diff to previous 56 , to selected 826
* 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) (annotate) - [select for diffs]
Modified Tue Apr 27 09:21:58 2004 UTC (19 years, 11 months ago) by schoenebeck
File length: 9387 byte(s)
Diff to previous 53 , to selected 826
updated copyright header for 2004


Revision 53 - (view) (download) (annotate) - [select for diffs]
Modified Mon Apr 26 17:15:51 2004 UTC (19 years, 11 months ago) by schoenebeck
File length: 9387 byte(s)
Diff to previous 35 , to selected 826
* 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) (annotate) - [select for diffs]
Added Fri Mar 5 13:46:15 2004 UTC (20 years ago) by schoenebeck
File length: 9353 byte(s)
Diff to selected 826
* 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