ViewVC logotype

Log of /linuxsampler/trunk/src/linuxsampler.cpp

Parent Directory Parent Directory | Revision Log Revision Log

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

Revision 816 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 22 19:29:52 2005 UTC (14 years, 9 months ago) by wylder
File length: 11570 byte(s)
Diff to previous 778
change kill statement to use pid rather than thread id

Revision 778 - (view) (download) (annotate) - [select for diffs]
Modified Fri Sep 23 06:58:26 2005 UTC (15 years ago) by iliev
File length: 11524 byte(s)
Diff to previous 770
Added new LSCP commands: GET TOTAL_VOICE_COUNT,

Revision 770 - (view) (download) (annotate) - [select for diffs]
Modified Sun Sep 11 15:56:29 2005 UTC (15 years ago) by schoenebeck
File length: 11348 byte(s)
Diff to previous 667
* synthesis core optimizations

Revision 667 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jun 19 21:22:34 2005 UTC (15 years, 3 months ago) by senkov
File length: 11315 byte(s)
Diff to previous 579
* added cmdline options for lscp address and port

Revision 579 - (view) (download) (annotate) - [select for diffs]
Modified Tue May 24 19:20:20 2005 UTC (15 years, 4 months ago) by schoenebeck
File length: 10315 byte(s)
Diff to previous 563
* src/network/lscpserver.cpp: fixed segfault
  (patch by Grigor Iliev, fixes #17)
* added man page
* final preparations for the first official release (which will be 0.3.1)

Revision 563 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 22 20:43:32 2005 UTC (15 years, 4 months ago) by schoenebeck
File length: 10879 byte(s)
Diff to previous 425
* (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 425 - (view) (download) (annotate) - [select for diffs]
Modified Sat Mar 5 07:27:48 2005 UTC (15 years, 6 months ago) by persson
File length: 10873 byte(s)
Diff to previous 420
* fixed a bug that sometimes caused clicks at the beginning of samples
* added denormal number elimination for CPUs with SSE2 support

Revision 420 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 3 03:25:17 2005 UTC (15 years, 6 months ago) by schoenebeck
File length: 10315 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, 7 months ago) by schoenebeck
File length: 9711 byte(s)
Diff to previous 361
* 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
* 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 361 - (view) (download) (annotate) - [select for diffs]
Modified Wed Feb 9 01:22:18 2005 UTC (15 years, 7 months ago) by schoenebeck
File length: 9431 byte(s)
Diff to previous 360
* bunch of fixes for OSX (patch by Stephane Letz)

Revision 360 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 7 00:19:30 2005 UTC (15 years, 7 months ago) by senkov
File length: 9290 byte(s)
Diff to previous 328
* Updated implementation for real time notify messages:

Revision 328 - (view) (download) (annotate) - [select for diffs]
Modified Sat Dec 25 21:58:58 2004 UTC (15 years, 9 months ago) by schoenebeck
File length: 8213 byte(s)
Diff to previous 325
* architecture independence fixes, should now compile again for non x86
* tiny fix of command line switch --version

Revision 325 - (view) (download) (annotate) - [select for diffs]
Modified Tue Dec 21 04:54:37 2004 UTC (15 years, 9 months ago) by senkov
File length: 8159 byte(s)
Diff to previous 319
* Added some profiling capabilities, bugs.

Revision 319 - (view) (download) (annotate) - [select for diffs]
Modified Mon Dec 13 00:46:42 2004 UTC (15 years, 9 months ago) by schoenebeck
File length: 11492 byte(s)
Diff to previous 271
* 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 271 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 8 20:51:39 2004 UTC (15 years, 11 months ago) by schoenebeck
File length: 11107 byte(s)
Diff to previous 214
* 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 214 - (view) (download) (annotate) - [select for diffs]
Modified Sat Aug 14 23:00:44 2004 UTC (16 years, 1 month ago) by schoenebeck
File length: 8957 byte(s)
Diff to previous 211
* 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
* src/linuxsampler.cpp: show on the console which TCP port the LSCP server
is using

Revision 211 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jul 25 23:27:41 2004 UTC (16 years, 2 months ago) by schoenebeck
File length: 8929 byte(s)
Diff to previous 207
* 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

Revision 207 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jul 15 21:51:15 2004 UTC (16 years, 2 months ago) by schoenebeck
File length: 10878 byte(s)
Diff to previous 203
* src/linuxsampler.cpp: print out LinuxSampler version and show all
  registered MIDI input drivers
* renamed class 'InputOutputDevice' -> 'Device'

Revision 203 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jul 13 22:44:13 2004 UTC (16 years, 2 months ago) by schoenebeck
File length: 10580 byte(s)
Diff to previous 123
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 123 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 14 19:33:16 2004 UTC (16 years, 3 months ago) by schoenebeck
File length: 10578 byte(s)
Diff to previous 61
* 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 61 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 3 19:29:44 2004 UTC (16 years, 4 months ago) by schoenebeck
File length: 10350 byte(s)
Diff to previous 53
forgot to update copyright header for 2004 for following files:

Revision 53 - (view) (download) (annotate) - [select for diffs]
Modified Mon Apr 26 17:15:51 2004 UTC (16 years, 5 months ago) by schoenebeck
File length: 10350 byte(s)
Diff to previous 41
* 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',
* temporarily removed all command line options
* LSCP server is now launched by default

Revision 41 - (view) (download) (annotate) - [select for diffs]
Modified Wed Mar 31 10:28:42 2004 UTC (16 years, 5 months ago) by schoenebeck
File length: 10973 byte(s)
Diff to previous 35
removed unnecessary dependencies

Revision 35 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 5 13:46:15 2004 UTC (16 years, 6 months ago) by schoenebeck
File length: 11053 byte(s)
Diff to previous 33
* 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
* disk thread now started within the engine

Revision 33 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 16 19:30:42 2004 UTC (16 years, 7 months ago) by schoenebeck
File length: 11984 byte(s)
Diff to previous 31
* implemented bidirectional voice state transition, means voice state can
  switch arbitrary times between 'Sustained'<-->'Released' within it's life
  time, thus the release process of a voice can be cancelled
* src/eg_vca.cpp: extended envelope generator by additional states
  ('Attack_Hold', 'Decay_1' and 'Decay_2')
* applied patch from Vladimir Senkov which adds new command line parameters
  ('--jackout', '--alsaout' and '--samplerate')
* configure.in: fixed compiler warning

Revision 31 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jan 18 20:31:31 2004 UTC (16 years, 8 months ago) by schoenebeck
File length: 9494 byte(s)
Diff to previous 20
* Added JACK support: Audio rendering process is now callback based and
  independant of used audio output system. Interfaces to other audio output
  systems can be added by creating a class derived from abstract base class
  'AudioIO' and embedding the new class into linuxsampler.cpp.
* src/audiothread.cpp: applied patch from Vladimir Senkov which fixes
  hanging notes in conjunction with the sustain pedal

Revision 20 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 25 00:02:45 2003 UTC (16 years, 9 months ago) by schoenebeck
File length: 8882 byte(s)
Diff to previous 18
* added command line switch --volume to set the global volume level
* added command line switch --inputclient to connect to an Alsa sequencer
  input client on startup (e.g. a MIDI port with a keyboard)
* added command line switch --instrument to select an instrument in case
  the instrument file provides more than one instrument

Revision 18 - (view) (download) (annotate) - [select for diffs]
Modified Sun Dec 7 05:03:43 2003 UTC (16 years, 9 months ago) by schoenebeck
File length: 7269 byte(s)
Diff to previous 13
* src/audioio.cpp: added support for Alsa 1.0.0
* src/audiothread.cpp: fixed several bugs in sustain pedal handling
* src/diskthread.cpp: fixed several bugs which occured under extreme
  conditions (endless loop in audiothread, freezing the whole application,
  outage of available disk streams)
* src/voice.cpp: fixed cubic interpolation (disabled by default; you can
  enable it by setting USE_LINEAR_INTERPOLATION to 0 in src/voice.h)
* src/configure.in: added check for Alsa version

Revision 13 - (view) (download) (annotate) - [select for diffs]
Modified Fri Nov 21 15:07:23 2003 UTC (16 years, 10 months ago) by schoenebeck
File length: 7269 byte(s)
Diff to previous 12
* src/voice.cpp: fixed bug which caused a voice not free it's disk stream
  when the whole sample was already played back and the voice was going to
  free itself resulting in outage of unused disk streams after a while
* src/audioio.cpp: implemented automatic fallback to ALSA plughw when the
  sound card doesn't support one of the hardware parameters
* src/linuxsampler.cpp: solved segmentation fault issue when receiving a
  SIGINT which was caused due to the fact that all threads entered the
  signal handler (there still seems to occur a segfault on some certain
  circumstances though)
* added print out of all-time maximum usage of voices and streams and the
  current number of unused streams
* src/thread.cpp: the StopThread() method will now block until the
  associated thread actually stopped it's execution

Revision 12 - (view) (download) (annotate) - [select for diffs]
Modified Sun Nov 16 19:01:50 2003 UTC (16 years, 10 months ago) by schoenebeck
File length: 6962 byte(s)
Diff to previous 10
* src/gig.cpp: fixed bug in decompression algorithm which caused it not to
  detect the end of a stream and let the disk streams reload forever also
  resulting in strange sounds at the end of disk voices (concerned only
  playback of compressed gig files)
* src/audiothread.cpp: deallocation of voices when they reached the end of
  playback (thus e.g. when sustain pedal is pressed and a disk stream
  reached it's end)
* various endian corrections needed for non intel systems
* introduced debug level, you can set the debug level and thus the
  verbosity of LinuxSampler in src/global.h

Revision 10 - (view) (download) (annotate) - [select for diffs]
Modified Tue Nov 11 23:30:47 2003 UTC (16 years, 10 months ago) by senoner
File length: 7103 byte(s)
Diff to previous 9
* src/audiothread.cpp, src/audiothread.h: added Sustain Pedal support
  implemented by postponing note-offs and leting multiple voices play
  on the same MIDI key.
* added the RTELMemoryPool Class which is a fast RT-safe memory allocator
  and list manger
* src/linuxsampler.cpp: added a voice and stream counter debug message

Revision 9 - (view) (download) (annotate) - [select for diffs]
Added Wed Nov 5 14:47:10 2003 UTC (16 years, 10 months ago) by schoenebeck
File length: 6954 byte(s)
* transition from plain Makefile to autotools, source files moved to src/
* configure.in: added test for x86 architecture
* src/voice.h: x86 specific asm optimization for double to int casts only
  if compiling for x86 architecture

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