Clicky

Crossfire Designs
Back to mainpage
Change language
Send a mail About this site
Webdesign
Source code
Software
Art
Articles
Links
Image gallery

sourcecode/sl3b_notes.txt
::New in beta 2 (over beta 1)

		* FLAC audio file support
		* Access to mixer output and audio device output
		* Access to sound channel mapping
	 	* Audio streaming from user applications
	 	* Heavy improvements on C++ side (type safe implementation), C++ examples included
	 	* Improved silent output (null device for disk writing), supports multichannel output
	 	* Some functions and variables overhauled for easier understanding
	 	* Playback improvements under Vista
	 	* Cleaning up reduced DLL size dramatically (< 90K vs. 180k)
	 	* Bugfixes and improvements
	 	* More examples, also for Lazarus
	 	* Many improvements on manual


:: General improvements over release 2.5a

    * 3D sound positioning and Doppler effect
    * XML help file
    * Support of C++
    * Support of OpenAL (not enabled in beta)
    * OGG and FLAC support
    * Multichannel playback of multichannel files (OGG, FLAC, WAV)
    * Multichannel playback (instead of only Stereo) of MOD type files (MOD/WOW, S3M, XM)
    * Heavily improved class model, much more easy initialization and handling
    * Multichannel samples
    * Cubic interpolation
    * New buffering system for seamless playback
    * Extremely improved Mono Surround encoder (Pro Logic compatible)
    * New Stereo Surround encoder (Pro Logic II compatible)
    * Many bug fixes


::Known issues

  - OpenAL driver not included yet (too many issues)
  - C++ implementation still not optimal, but is vastly improved with every release
  - Don't initialize Directsound output with LFE channel; LFE channel not correct mapped
  - You shouldn't load IT module files; there is a replayer, but it's in beginning stage
  - 7 channel playback untested
  - Occasional sound clicking when playing back MODule files (volume ramper defective)
  - WaveOut won't work under Windows Vista (you don't want to use it anyway, LONG lag)
  - Windows 95 WaveOut playback will stutter (install/use DirectSound)
  - Windows 98 WaveOut playback may stutter when system is under load (install/use DirectSound)
  - Multichannel playback may not function properly on NVidia Nforce 2 Soundstorm (driver related bug)

::Final Version 3 goals

  - MODule sound clicking issue removed
  - Improved manual quality
  - Use type safe values for all methods
  - Load modules as stream instead of as sound collection
  - Fully working OpenAL driver
  - More demo apps (especially for C++ and Free Pascal/Lazarus)

::Future goals

  - Windows ACM support (compressed WAVe files, MP3)
  - Audio filters
  - WASAPI support (Vista sound interface)
  - Support of Linux and MacOS
  - Floating point mixer
  - Extensibility by Add-Ons
  - 3D environment simulation (covered by audio filters)
  - IT module support
  - Free connectability of all sound sources, removing the strict hierarchy concept

::Tested platforms

  - Windows XP SP 2 (several installations)
  - Windows Vista (several 32 Bits installations, one 64 Bits installation)
  - Windows 2000 (several installations)
  - Windows 98 SE with DirectX 9.0c (virtual machine)
  - Windows 95c with DirectSound 8 (virtual machine)
  - Windows NT 4 Server (virtual machine)
  - Windows XP x64 (virtual machine; with and without SP2)

::Release notes

   3 beta 2
   .fixed memory leak in ogg loader
   .added FLAC support
   .cleaned up numerous details
   .added tSoundStream.setInfo for external streaming
   .renamed tSound to tSoundCollection
   .silent driver supports multichannel formats (silent output generally overhauled)
   .added panning for 6 channel output
   .playbackinfo.samplesize wasn't filled; fixed
   .fixed bug in ogg decoder error handling
   .reduced code overhead for file formats
    .all use the same mixer now
    .tidied up double variables
    .removed useless code
   .internal mixing to output handling restructured and decoupled up to handle filtering and user data passing
   .modified class system for safe manual mixing and sound data grabbing
   .added function "getMixData" for grabbing mixing buffer
   .added function "getOutputData" for grabbing output buffer
   .added method "setChannelMapping" to tSoundStream; allows easy user based channel mapping
   .added function "getChannelMapping" to tSoundStream; returns current channel map
   .added functions connect/disconnect to tSoundStream for registering to tSoundCollection
   .fixed noise problem when 8 bit wave files had additional tags at their end
   .cleared LFE situation (anyway, it's NOT recommended to enable LFE playback manually; channel mapping probably won't work)
   .changed snd_mono...snd_7chn to channels_mono...channels_7
   .tSample.create accepts direct channel count, like startPlayback
   .improved error behaviour of mixer (stops flawed streams)
   .added function "getUpperNode" to tSoundCollection and tSoundStream; returns upper object
   .made information records type safe

   3 beta 1
   .OGG support included
   .DirectSound driver improved (better threading, multichannel)
   .BP support removed
   .sound drivers can do a global registering -> one step app initialization
   .renamed tSounddat to tSoundStream, for better understanding
   .added type tSoundinfo, now part of every sound object (except driver), for information
   .added setvolume overload function for tSoundStream -- Streams and samples that are
    beyond mono require dedicated volume settings for each input channel
   .added interpolation for streaming sounds (streaming was underrated until now)
     - active by default
   .Support for MS Visual C++
     - DLL wrapper used
     - class interface in C++ almost identical
   .getvu now supports multiple channels per source
     - backwards compatible by overload function
   .added set/getVolumeMatrix for multichannel input- and output-mixing
     - SL supports now matrix mixing (multiple input to multiple output channels)
   .added channel mapping type and enabled channel mapping for setvolume/getvolume
   .all old BP style objects have been converted to classes
   .automatic driver initialization works by initiating tSoundInterface.create
     - just call it and it will create the best fitting driver and overwrites itself
       with the driver instance
   .added support for multichannel samples (until now only mono samples were supported)
   .fixed some flaws in sample management
   .changed name of driver class to tSoundInterface, better reflecting that we are
    now working with sound interfaces
   .tSoundInterface allows output device selection
    (getDeviceCount, getSoundDeviceInfo, selectDevice, getCurrentDevice)
    - devices can be changed at runtime, no re-init required!
   .added channel mapping routines; channel mapping for different output
   .setinterpolation can differ between implemented methods by now, not simply on/off
   .Surround mixdown heavily improved
     - now with "real" mixed center channel
     - surround channel lowpass filter implemented
     - time shifting between L/R to avoid same L/R content to appear in center speaker
   .Pro Logic II compatible 5.0 matrix to Stereo mixdown implemented
   .fixed bug that whole mixing buffer got erased instead of the current double
    buffer chunk only (hindered correct surround lookback-buffer for required delay)
   .added 3D interface unit sl3dext for simple 3D functionality
   .changed setvolume; if given channel is -1, all channel volumes will be set to given value
   .setvolume, getvolume, setpanning use double values from 0..1 (1..2 for amplification) instead of words
   .getVU returns double from 0..1 instead of byte from 0..255
   .added possibility to change sound interface after tSoundInterface.create
   .added functions "pauseAll", "resumeAll" and "stopAll" to tsound
     - will do these actions to all underlying sounds
   .status and sound type flags now separate (data.flags/data.status)
   .added class tSampleDirect for direct sample data load from memory
   .added support for OpenAL
   .changed startplayback method, allows to specify the number of buffers
   .added type tPlaybackInfo for tSoundInterface to store most of the playback specific information
   .added getPlaybackInfo to tSoundInterface
   .added 3D functions to all classes (moved from sl3dext)
   .fixed clicking bug when sound ramping was still running and new volume was set
   .modules add their instrument names to soundinfo.info

[Back]

Send a mail About this site