Ajouts de musique et irrKlang.
This commit is contained in:
		
							
								
								
									
										780
									
								
								SQCSim2021/external/irrKlang-1.6.0/changes.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										780
									
								
								SQCSim2021/external/irrKlang-1.6.0/changes.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,780 @@
 | 
			
		||||
 | 
			
		||||
irrKlang 1.6
 | 
			
		||||
 | 
			
		||||
- stopped support for .NET 1.1, please use the versions for .NET 2 or .NET 4 instead,
 | 
			
		||||
  or an older version of irrKlang if you still need .NET 1 support
 | 
			
		||||
  
 | 
			
		||||
- irrKlang for .NET 4 now needs version 4.5 at miminum
 | 
			
		||||
 | 
			
		||||
- there is now a new function stopAllSoundsOfSoundSource() to stop all sounds of a specific sound source
 | 
			
		||||
 | 
			
		||||
- irrKlang.NET for .NET 4 now also has a strong name (it is now a signed assembly)
 | 
			
		||||
 | 
			
		||||
- irrklang for gcc now supports gcc 5.1
 | 
			
		||||
 | 
			
		||||
- irrKlang 1.5 for windows was depending on the MSVC runtime dll, this is now 
 | 
			
		||||
  no longer the case with irrKlang 1.6
 | 
			
		||||
 | 
			
		||||
- fixed a bug causing duplicated DirectSound buffers to share the playbackSpeed sometimes, causing
 | 
			
		||||
  some sounds to have a wrong frequency when played.
 | 
			
		||||
  
 | 
			
		||||
- fixed update() problem in single threaded mode
 | 
			
		||||
  if you run irrKlang in single threaded mode, you can now call irrKlang::update as often and 
 | 
			
		||||
  fast as you want. This was supposed to be called only about once every second prevousliy, and
 | 
			
		||||
  could cause irrklang to stall previously if called too often.
 | 
			
		||||
 | 
			
		||||
- added support for Visual Studio 2017
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.5
 | 
			
		||||
 | 
			
		||||
- Added support for unicode file names. 
 | 
			
		||||
  irrKlang now uses UTF8 internally on all operating systems. If you are running it on Windows, and want to use
 | 
			
		||||
  wchar_t types, you can use the irrKlang provided function makeUTF8fromUTF16string() to convert your wchar_t* string to
 | 
			
		||||
  a char* string.
 | 
			
		||||
  In the .NET version of irrKlang, the API hasn't changed, but irrklang now supports unicode 
 | 
			
		||||
  file names there automatically as well.
 | 
			
		||||
  
 | 
			
		||||
- Added 64 bit support. 
 | 
			
		||||
  There is now a separate irrKlang SDK for 64 bit builds
 | 
			
		||||
  
 | 
			
		||||
- Added support for playing back 24 bit flac files
 | 
			
		||||
 | 
			
		||||
- Uses less resources on linux now: PCM handles are now closed as soon as possible, freeing resources much earlier.
 | 
			
		||||
 | 
			
		||||
------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
irrKlang 1.4.1
 | 
			
		||||
 | 
			
		||||
- irrKlang now loads the alsa lib from the correct directory on previously unsupported linux systems.
 | 
			
		||||
 | 
			
		||||
------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.4.0
 | 
			
		||||
 | 
			
		||||
- Fixed a potential crash in the windows version, when using DirectSound8
 | 
			
		||||
 | 
			
		||||
- Improved speed of the Windows version of irrKlang by about 20%
 | 
			
		||||
 | 
			
		||||
- irrKlang now also works with newer Linux distributions (like Ubuntu 12), 
 | 
			
		||||
  which moved the ALSA lib file into a new directory.
 | 
			
		||||
  
 | 
			
		||||
- Cleared up some inconsistencies in the documentation
 | 
			
		||||
 | 
			
		||||
- Removed a very small memory leak in Linux and Mac OS X
 | 
			
		||||
  
 | 
			
		||||
---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.3.0b
 | 
			
		||||
 | 
			
		||||
- Added support for .NET framework 4.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a problem with audio recording: GUIDs were not correctly
 | 
			
		||||
  decoded for some devices, causing manual device selection to fail
 | 
			
		||||
  on Windows.
 | 
			
		||||
  
 | 
			
		||||
---------------------------------------------------------------------
 | 
			
		||||
  
 | 
			
		||||
irrKlang 1.3.0
 | 
			
		||||
 | 
			
		||||
- There is now the possibility to capture the mixed output audio data
 | 
			
		||||
  from irrKlang, using the ISoundMixedOutputReceiver interface.
 | 
			
		||||
  Can be used to store the sound output as .wav file or for creating 
 | 
			
		||||
  an Oscillograph and similar.
 | 
			
		||||
  
 | 
			
		||||
- The movement speed of 3d sound listeners has been ignored in previous
 | 
			
		||||
  releases for 3d sound doppler effects, this has been corrected now.
 | 
			
		||||
 | 
			
		||||
- irrKlang now also runs on 64 bit linux systems. It previously
 | 
			
		||||
  looked for the alsa lib in /usr/lib/libasound.so, but on 64 bit
 | 
			
		||||
  system this is located in /usr/lib32/libasound.so. This is fixed now.
 | 
			
		||||
  
 | 
			
		||||
---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.2.0 
 | 
			
		||||
 | 
			
		||||
- Added .flac file playback support. Implemented as plugin, ikpFlac.dll.
 | 
			
		||||
 | 
			
		||||
- Fixed a bug causing the volume of 3D sounds not to be set correctly
 | 
			
		||||
  when using DirectSound8 and playing more than one 3D sound of the
 | 
			
		||||
  same file at the same time.
 | 
			
		||||
  
 | 
			
		||||
- File formats with unknown extensions are now loaded by Plugins only
 | 
			
		||||
  if they could not be loaded by the internal decoders.
 | 
			
		||||
 | 
			
		||||
- Several API documentation updates and improvements.
 | 
			
		||||
 | 
			
		||||
- C++ documentation now has search functionality
 | 
			
		||||
 | 
			
		||||
- Replaced .chm documentation files now with plain .html files
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.1.3c 
 | 
			
		||||
 | 
			
		||||
- [This update only changes the implementation, the interfaces all remain the
 | 
			
		||||
   same, so only the irrKlang.dll file needs to be replaced since version 1.1.3.]
 | 
			
		||||
 | 
			
		||||
- Fixed a bug causing irrKlang to crash when playing looped, streamed sounds in 3D
 | 
			
		||||
  under special circumstances.
 | 
			
		||||
  
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.1.3b 
 | 
			
		||||
 | 
			
		||||
- [This update only changes the implementation, the interfaces all remain the
 | 
			
		||||
   same, so only the irrKlang.dll file needs to be replaced since version 1.1.3.]
 | 
			
		||||
 | 
			
		||||
- Small bug fix for the DirectSound drivers: Looped streamed sounds sometimes
 | 
			
		||||
  restarted with a small pause (~10 ms) in between.
 | 
			
		||||
  
 | 
			
		||||
- The ISound and ISoundSource classes in irrKlang.NET now implement the 
 | 
			
		||||
  IDisposable interface, so it is now easily possible to free their resources
 | 
			
		||||
  manually. 
 | 
			
		||||
 | 
			
		||||
- The .NET version now uses less memory (earlier unmanaged resource disposal).
 | 
			
		||||
  
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.1.3 
 | 
			
		||||
 | 
			
		||||
- Added support for multichannel audio recording. When starting audio recording using
 | 
			
		||||
  startRecordingBufferedAudio() or startRecordingCustomHandledAudio(),
 | 
			
		||||
  set the new last parameter to the amount of channels you want to record audio data.
 | 
			
		||||
  
 | 
			
		||||
- Reduced latency of the Linux version (ALSA).
 | 
			
		||||
 | 
			
		||||
- Improved Mac OS X performance (CoreAudio), irrKlang now performs better on computers
 | 
			
		||||
  with slow hardware.
 | 
			
		||||
  
 | 
			
		||||
- Added two VisualBasic.NET examples
 | 
			
		||||
 | 
			
		||||
- ForcedStreamingThreshold property of ISound now also available in 
 | 
			
		||||
  the .NET verion of irrKlang.
 | 
			
		||||
  
 | 
			
		||||
- IAudioRecoder::IsRecording now returns the correct value in the .NET 
 | 
			
		||||
  version of irrKlang.
 | 
			
		||||
  
 | 
			
		||||
- IAudioRecorder now correctly returns a SampleFormat data with a lenght of 0 if 
 | 
			
		||||
  nothing has been recorded before.
 | 
			
		||||
  
 | 
			
		||||
- In irrKlang.NET, IAudioRecorder.RecordedAudioData does not throw an 
 | 
			
		||||
  OutOfMemoryException anymore if nothing has been recorded yet.
 | 
			
		||||
 | 
			
		||||
- ISoundSource::getForcedStreamingForceThreshold has been renamed to
 | 
			
		||||
  ISoundSource::getForcedStreamingThreshold
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.1.2b 
 | 
			
		||||
 | 
			
		||||
- Added support for (external) multichannel sound hardware on MacOSX.
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.1.2 
 | 
			
		||||
 | 
			
		||||
- Added support to play back 24 bit wave files.
 | 
			
		||||
 | 
			
		||||
- The DirectSound drivers now use more aggressive sound buffer sharing,
 | 
			
		||||
  causing irrKlang to use a lot less memory and also speeding it up a lot
 | 
			
		||||
  when playing a lot of big sounds.
 | 
			
		||||
  
 | 
			
		||||
- There is now a way to access the internal used audio interfaces (ALSA, DirectSound,
 | 
			
		||||
  DirectSound8, WinMM, CoreAudio) using ISoundEngine::getInternalAudioInterface().  
 | 
			
		||||
 | 
			
		||||
- There are now two .NET versions of irrKlang available, one for the .NET CLR 1.1 
 | 
			
		||||
  and one for .NET CLR 2.0 (.NET Framework 2, 3 and 3.5). Of course, you can still
 | 
			
		||||
  use every version with every project, this is mainly to reduce the size of installers.
 | 
			
		||||
  See details in readme.txt
 | 
			
		||||
  
 | 
			
		||||
- It is now possible in the .NET version to access the decoded sample audio data of 
 | 
			
		||||
  non-streamed sounds using ISound.SampleData
 | 
			
		||||
  
 | 
			
		||||
- It is now possible in the .NET version to access the recorded audio data directly
 | 
			
		||||
  using IAudioRecorder.RecordedAudioData
 | 
			
		||||
 | 
			
		||||
- Fixed a bug in the .NET version of the method EnableCompressorSoundEffect()
 | 
			
		||||
  which totally skrewed up its parameters.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a bug causing the AudioRecorder only to work for one recording session
 | 
			
		||||
  in DirectSound.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a bug causing the irrklang DirectSound driver to start playing the sound when
 | 
			
		||||
  it changing its 'looped' flag when the sound is paused.
 | 
			
		||||
  
 | 
			
		||||
- There is now a new example for C# available which shows how to use irrKlang with
 | 
			
		||||
  Windows.Forms.
 | 
			
		||||
  
 | 
			
		||||
- The forced streaming treshold has been adjusted to 2MB
 | 
			
		||||
 | 
			
		||||
- Fixed some documentation mistakes in ISoundEngine::addSoundSourceFromPCMData
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 1.1.0 
 | 
			
		||||
 | 
			
		||||
- Several speed optimizations and memory usage improvments.
 | 
			
		||||
 | 
			
		||||
- It is now possible to directly access the decoded PCM sample data of 
 | 
			
		||||
  every loaded sound source.
 | 
			
		||||
  Use ISoundSource::getSampleData() for this.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a bug causing the UserData object and other resources not to be garbage 
 | 
			
		||||
  collected when using ISoundStopEventReceiver in the .NET version of irrKlang.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a bug causing the sudden end of sound loops under very rare circumstances.
 | 
			
		||||
 | 
			
		||||
- The 'Could not init COM' warning was senseless and has been removed.
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
irrKlang 1.0.4 
 | 
			
		||||
 | 
			
		||||
- irrKlang is now able to record audio. Use createIrrKlangAudioRecorder() to create an
 | 
			
		||||
  audio recorder object. It currently only works in Windows	and with DirectSound (subject to change).	
 | 
			
		||||
	
 | 
			
		||||
- A new method ISoundEngine::addSoundSourceFromPCMData() now adds to possibility to use sound
 | 
			
		||||
  source from pure PCM data.
 | 
			
		||||
	
 | 
			
		||||
- The three method overloads of addSoundSource() have now been renamed to
 | 
			
		||||
  addSoundSourceFromFile(), addSoundSourceFromMemoryFile(), and addSoundSourceAlias().
 | 
			
		||||
	
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
irrKlang 1.0.3
 | 
			
		||||
 | 
			
		||||
- irrKlang now supports Power PCs (PPC). All features and file formats except 
 | 
			
		||||
  Module playback (.mod, .it, .xm, .s3m) are now supported on this platform.
 | 
			
		||||
  
 | 
			
		||||
- There is now a function to enumerate available audio devices. Select a device ID from this list to 
 | 
			
		||||
  let irrKlang use a specific audio device. You can create this list using
 | 
			
		||||
  irrklang::ISoundDeviceList* list = createSoundDeviceList();
 | 
			
		||||
  or in .NET (C#):
 | 
			
		||||
  IrrKlang.ISoundDeviceList list = new IrrKlang.ISoundDeviceList();
 | 
			
		||||
 | 
			
		||||
- The sound stop event receiver now has an additional parameter, describing the reason why the
 | 
			
		||||
  sound has been stopped. The signature of the method is now
 | 
			
		||||
  virtual void OnSoundStopped(ISound* sound, E_STOP_EVENT_CAUSE reason, void* userData) = 0;
 | 
			
		||||
  or in .NET (C#):
 | 
			
		||||
  public void OnSoundStopped(IrrKlang.ISound sound, IrrKlang.StopEventCause reason, object userData);
 | 
			
		||||
  
 | 
			
		||||
- irrKlang.NET is now a signed assembly to work around some security hassle Microsoft introduced on Vista.
 | 
			
		||||
  
 | 
			
		||||
- On newer linux versions (such as Ubuntu 7.10), irrKlang sometimes would play sound too fast or with
 | 
			
		||||
  a lot of noise, this is repaired now.
 | 
			
		||||
 | 
			
		||||
- The Linux version of irrKlang shared object file is now named 
 | 
			
		||||
   libirrKlang.so instead of previously irrKlang.so
 | 
			
		||||
 | 
			
		||||
- ALSA driver latency highly improved
 | 
			
		||||
   
 | 
			
		||||
- IrrKlang.NET now supports retrieving the audio format of a sound, using ISoundSource::AudioFormat.
 | 
			
		||||
   
 | 
			
		||||
- IrrKlang can now optionally be told which sound device to use for sound output. In addition using
 | 
			
		||||
  this feature, it is now possible to define an ALSA device name to be used for alsa output when calling
 | 
			
		||||
  createIrrKlangDevice().
 | 
			
		||||
  
 | 
			
		||||
- irrKlang ignored the new flag ESEO_PRINT_DEBUG_INFO_TO_STDOUT on unix based operation systems,
 | 
			
		||||
  this is fixed now.
 | 
			
		||||
 
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
irrKlang 1.0.2 
 | 
			
		||||
 | 
			
		||||
- Breaking interface changes:
 | 
			
		||||
   - All interfaces are now located in one single, new namespace named 'irrklang'.
 | 
			
		||||
   - vector3df is now named vec3df
 | 
			
		||||
   - IReadFile is now named IFileReader
 | 
			
		||||
   - IReferenceCounted is now named IRefCounted and IVirtualReferenceCounted now IVirtualRefCounted 
 | 
			
		||||
   - primitive types now have the prefix ik_
 | 
			
		||||
   - all header files have now the prefix ik_
 | 
			
		||||
   - IFileFactory::createAndOpenFile() is now named createFileReader().
 | 
			
		||||
   These changes where necessary to simplify and clean up the interface, as well as to make irrklang independent
 | 
			
		||||
   of future changes of the Irrlicht Engine. 
 | 
			
		||||
   
 | 
			
		||||
- It is now possible to change the play position of a sound using ISound::setPlayPosition().
 | 
			
		||||
 | 
			
		||||
- Software devices such as ALSA, WinMM and CoreAudio also support teh setPlaybackSpeed() functionality now.
 | 
			
		||||
   
 | 
			
		||||
- Max values of 3D sound now behave differently: They won't mute the sound anymore when 
 | 
			
		||||
  the max distance is reached. This should not affect if you set your 3D sound min/max values 
 | 
			
		||||
  correctly before: The audible radius of a sound is only influenced by the minimum value, 
 | 
			
		||||
  the maximum should be set to a extremely high value usually (such as 1mio) which is the
 | 
			
		||||
  default. If the maximum value is set to a small value, the sound won't attenuate anymore
 | 
			
		||||
  after this distance and stay audible from then on.
 | 
			
		||||
  In short: In nearly all cases, it is not necessary to change the max value of the sound
 | 
			
		||||
  if not in linear rolloff mode. Details can be found in the documentation.
 | 
			
		||||
 | 
			
		||||
- It is now possible to retrieve the audio format of sound sources. Informations
 | 
			
		||||
  like channel count (mono/stereo), frame count, sample rate, etc are possible to
 | 
			
		||||
  be retrieved using ISoundSource::getAudioFormat()
 | 
			
		||||
  
 | 
			
		||||
- The internals of irrKlang has been refactored: irrKlang.dll/.so/.dylib files are now smaller, use
 | 
			
		||||
  an improved thread locking mechanism and should run a bit faster.
 | 
			
		||||
  
 | 
			
		||||
- irrKlang now supports a RollOff factor for 3D sounds. Use ISoundEngine::setRolloffFactor() for this.
 | 
			
		||||
 | 
			
		||||
- it is now possible to get the name of the used sound driver by calling ISoundEngine::getDriverName();
 | 
			
		||||
 | 
			
		||||
- irrKlang now only prints status messages to stdout if ESEO_PRINT_DEBUG_INFO_TO_STDOUT was set when
 | 
			
		||||
  creating the device (which is the default).
 | 
			
		||||
  
 | 
			
		||||
- There is a new example application included in the SDK: A music player.   
 | 
			
		||||
  
 | 
			
		||||
- ISound::getPlayPosition() didn't return 100% accurate positions in all cases, this is fixed now.
 | 
			
		||||
  
 | 
			
		||||
- irrKlang won't touch files anymore for preloading when streaming was specified.
 | 
			
		||||
 | 
			
		||||
- ISoundSource::getIsSeekingSupported() now returns if the sound supports seeking using 
 | 
			
		||||
  ISound::setPlayPosition().
 | 
			
		||||
 | 
			
		||||
- Fixed a problem with 3D sounds: On some sound boards on windows operating systems older than Vista,
 | 
			
		||||
  the 3D sound would not stop at the maximum 3D distance when using DirectSound.
 | 
			
		||||
  
 | 
			
		||||
- Using ISoundEngine::setDefault3DSoundMaxDistance() had a small bug, which caused the max distance
 | 
			
		||||
  not to work in all cases, this is fixed now.
 | 
			
		||||
  
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
irrKlang 1.0.1 
 | 
			
		||||
 | 
			
		||||
- Removed the deprecated header ESoundEffects.h
 | 
			
		||||
 | 
			
		||||
- Fixed a rarely happening bug causing irrKlang to crash when stopping streamed sounds in the software devices
 | 
			
		||||
  at disadvantageous times.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a rarely happening bug which could have caused a deadlock when stopping a huge
 | 
			
		||||
  amount of streamed at the same time sounds.
 | 
			
		||||
  
 | 
			
		||||
- Documentation fixes
 | 
			
		||||
  
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
irrKlang 1.0 
 | 
			
		||||
 | 
			
		||||
- Added ISound::setIsLooped(), to make it possible to change the loop mode of sounds during runtime.
 | 
			
		||||
 | 
			
		||||
- It is now possible to preload sounds when using the addSoundSource() method, by
 | 
			
		||||
  setting the parameter 'preload' to true. If this flag is set to false (which is default)
 | 
			
		||||
  the sound engine will not try to load the sound file when calling this method, 
 | 
			
		||||
  but only when play() is called with this sound source as parameter.
 | 
			
		||||
  
 | 
			
		||||
- Plugins can now be loaded manually from a custom path using ISoundEngine::loadPlugins();
 | 
			
		||||
  
 | 
			
		||||
- The listener position is now set to a default value when starting up irrKlang.
 | 
			
		||||
  Previously, when playing 3D sounds without changing or setting the listener position at all,
 | 
			
		||||
  3D sounds would sound differently based on the chosen audio driver.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a bug of the Linux version of irrKlang, causing ALSA to crash on
 | 
			
		||||
  some very few systems (known as the '!snd_interval_empty(i)'-problem).
 | 
			
		||||
 | 
			
		||||
- Resampling mono sounds in all devices except directSound (it was ok there already)
 | 
			
		||||
  now uses only half the memory as before.
 | 
			
		||||
 | 
			
		||||
- To reduce name clashes with the windows headers for people not using namespaces,
 | 
			
		||||
  the Interface IUnknown has been renamed to IRefCounted.
 | 
			
		||||
 | 
			
		||||
- IrrKlang can now be used easily together with the latest 6 versions of
 | 
			
		||||
  Irrlicht (header compatibility).
 | 
			
		||||
  
 | 
			
		||||
- Fixed a small bug in the .NET version which could return 'false' instead of 'true' under
 | 
			
		||||
  special circumstances when calling isCurrentlyPlaying() (Microsoft compiler bug).
 | 
			
		||||
  
 | 
			
		||||
- The documentation has been updated and extended with lots of examples.
 | 
			
		||||
 | 
			
		||||
- Examples now also include project files for visual studio 6.0
 | 
			
		||||
  
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
irrKlang 1.0-RC1 
 | 
			
		||||
 | 
			
		||||
- irrKlang now supports MacOSX, using CoreAudio. 
 | 
			
		||||
  There is a new sound output driver enumeration literal, named ESOD_CORE_AUDIO, which
 | 
			
		||||
  will be chosen automaticly when using ESOD_AUTO_DETECT on MacOsX.
 | 
			
		||||
  Please note that irrKlang is a universal binary for both x86 and ppc, but
 | 
			
		||||
  only x86 hardware is supported yet, altough some few features might work with the 
 | 
			
		||||
  ppc irrKlang version. 
 | 
			
		||||
 | 
			
		||||
- This version is release candiate 1 for version 1.0. There are now known bugs in irrKlang 
 | 
			
		||||
  currently, and if no major bugs will be found, version 1.0 will be released after some time.
 | 
			
		||||
  We are already working on new user requested features which will be integrated after the 
 | 
			
		||||
  1.0 release.
 | 
			
		||||
  
 | 
			
		||||
- irrKlang.NET is now able to override the file access just like the C++ version. There is 
 | 
			
		||||
  a tutorial in examples.net\CSharp.04.OverrideFileAccess demonstrating this.
 | 
			
		||||
  Use IFileFactory with ISoundEngine::addFileFactory for this.
 | 
			
		||||
    
 | 
			
		||||
- Added a method to irrKlang.NET, making it possible to add System::IO::Streams as sound
 | 
			
		||||
  sources. Note that the stream is totally read into memory when adding the sound source.
 | 
			
		||||
  If you want irrKlang to dynamically open and close custom file streams without loading
 | 
			
		||||
  everything into memory, use the addFileFactory with your own IFileFactory implementation.
 | 
			
		||||
  
 | 
			
		||||
- Documentation improvements for the .NET version.
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
irrKlang 0.9.1 
 | 
			
		||||
 | 
			
		||||
- License change: All of the irrKlang Pro features (except static linking and signed assembly)
 | 
			
		||||
  are now available for non-commercial use too. Please take a closer look at the new
 | 
			
		||||
  license and the website for details.
 | 
			
		||||
  The license was changed because of lots of user requests, so that free and open 
 | 
			
		||||
  source projects are now able to use irrKlang pro's features as well. To compensate this,
 | 
			
		||||
  this means that irrKlang is no more free for commercial use.
 | 
			
		||||
  
 | 
			
		||||
- Mp3 files with ID3 v2 or later tags in it have not been played correctly in irrKlang, this is 
 | 
			
		||||
  fixed now.
 | 
			
		||||
  
 | 
			
		||||
- It is now possible to add sound source aliases for an existing sound source.
 | 
			
		||||
  This is useful if you want to play multiple sounds but each sound isn't necessarily one single file.
 | 
			
		||||
  Also useful if you want to or play the same sound using different names, volumes or min and max 3D distances.
 | 
			
		||||
  Use the now existing third overload of ISoundEngine::addSoundSource() which takes another 
 | 
			
		||||
  sound source as parameter for this.
 | 
			
		||||
   
 | 
			
		||||
- added ISound::PlayLength property to irrKlang.NET to retrieve the length of sounds in milliseconds.
 | 
			
		||||
 | 
			
		||||
- irrKlang.NET now needs a lower amount of memory every time a sound is played and also
 | 
			
		||||
  frees the memory used by these sounds earlier.
 | 
			
		||||
  
 | 
			
		||||
- irrKlang.NET now supports sound sources just as the irrKlang C++ version does,
 | 
			
		||||
  which means better access and possibility to influence sounds.
 | 
			
		||||
  
 | 
			
		||||
- irrKlang.NET now also supports default 3D min and max distances.
 | 
			
		||||
 | 
			
		||||
- irrKlang.NET now supports playing sounds directly from custom memory areas, 
 | 
			
		||||
  byte arrays (byte[]). Use ISoundEngine.addSoundSource(yourMemoryArray, someName) for this.
 | 
			
		||||
  
 | 
			
		||||
- Using irrKlang.NET, streamed sound files have not been closed on some systems. This is fixed now.
 | 
			
		||||
  
 | 
			
		||||
- It is now possible to set the wanted stream mode for sound sources using 
 | 
			
		||||
  ISoundSource::setStreamMode().
 | 
			
		||||
  
 | 
			
		||||
- Reduced the file size of the irrKlang library again a bit.
 | 
			
		||||
 | 
			
		||||
- There are two new tutorials for irrKlang.NET in C# available now.
 | 
			
		||||
	
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.9 
 | 
			
		||||
 | 
			
		||||
- irrKlang is now available in two editions: 
 | 
			
		||||
   - irrKlang which is still free, also for commercial use
 | 
			
		||||
   - irrKlang Pro, for a small license fee (see details on http://ambiera.com)
 | 
			
		||||
  Some of the new features added in this version are only available in 
 | 
			
		||||
  irrKlang Pro (see website for details). The 'pro' features can be accessed 
 | 
			
		||||
  and tested with the free version as well, but the audio engine will start playing
 | 
			
		||||
  additional sounds (female voice saying 'irrKlang pro') from time to time once
 | 
			
		||||
  a pro feature has been used.
 | 
			
		||||
 | 
			
		||||
- irrKlang now supports DirectSound8 as additional sound output driver.
 | 
			
		||||
  Note that the E_SOUND_OUTPUT_DRIVER enumeration has a new member now:
 | 
			
		||||
  ESOD_DIRECT_SOUND_8. The ESOD_DIRECT_SOUND is still available.
 | 
			
		||||
  
 | 
			
		||||
- Doppler effects are now supported (with the DirectSound drivers at least).
 | 
			
		||||
  Use ISound::setVelocity to set a sounds velocity, ISoundEngine::setListenerPosition()
 | 
			
		||||
  to set the listeners velocity and ISoundEngine::setDopplerEffectParameters() to
 | 
			
		||||
  adjust two parameters influencing the doppler effects intensity.
 | 
			
		||||
  
 | 
			
		||||
- There are now sound stop events: Events which are called when a sound has finished
 | 
			
		||||
  playback. Use the new interface ISoundStopEventReciever for this.
 | 
			
		||||
  The interface has only one method to be implemented by the user: OnSoundStopped().
 | 
			
		||||
  Implement this interface and set it via ISound::setSoundStopEventReciever().
 | 
			
		||||
  The sound stop event is guaranteed to be called when a sound or sound stream is finished,
 | 
			
		||||
  either because the sound reached its playback end, its sound source was removed,
 | 
			
		||||
  ISoundEngine::stopAllSounds() has been called or the whole engine was deleted.
 | 
			
		||||
  
 | 
			
		||||
- Sound effects are now usable when using the ESOD_DIRECT_SOUND_8 
 | 
			
		||||
  driver (default). Available sound effects are:
 | 
			
		||||
  - Chorus
 | 
			
		||||
  - Compressor
 | 
			
		||||
  - Distortion
 | 
			
		||||
  - Echo
 | 
			
		||||
  - Flanger
 | 
			
		||||
  - Gargle
 | 
			
		||||
  - 3DL2Reverb
 | 
			
		||||
  - ParamEq
 | 
			
		||||
  - WavesReverb
 | 
			
		||||
  Those effects can be accessed via ISound::getSoundEffectControl(), if the
 | 
			
		||||
  'enableSoundEffects' flag was set to true when starting the sound with
 | 
			
		||||
  play2D() or play3D().
 | 
			
		||||
  
 | 
			
		||||
- There is now the option to change the play back speed and the frequency
 | 
			
		||||
  of a sound. Use ISound::setPlaybackSpeed() for this.
 | 
			
		||||
  
 | 
			
		||||
- It is now possible to set a default volume for every sound source via
 | 
			
		||||
  ISoundSource::setDefaultVolume().
 | 
			
		||||
  
 | 
			
		||||
- There is now a statically linkable version of irrKlang available (currently
 | 
			
		||||
  windows and irrKlang pro only). 
 | 
			
		||||
  Just #Define IRRKLANG_STATIC in your project settings or before including the 
 | 
			
		||||
  irrKlang headers to use the static lib version of irrKlang.
 | 
			
		||||
  Note that you need to use multi threaded runtime libraries in your project 
 | 
			
		||||
  when using irrKlang as static lib, other wise you will get linker errors 
 | 
			
		||||
  (like "__getmbcp already defined in LIBC.lib(mbctype.obj)") or random crashes. 
 | 
			
		||||
  In Visual Studio, this setting can be found in 
 | 
			
		||||
  Project Settings -> C++ -> Code Generation -> Runtime Library.
 | 
			
		||||
  
 | 
			
		||||
- Memory sound sources are now copied by default, so the memory block can be discarded after
 | 
			
		||||
  calling ISoundEngine::addSoundSource(). There is a new parameter 'copyMemory' which
 | 
			
		||||
  can be set to false to make the engine use the old, non memory copying behavior.
 | 
			
		||||
  
 | 
			
		||||
- ISoundEngine::getSoundSource() now has a second parameter making it possible
 | 
			
		||||
  to only retrieve a already added sound source without loading it.
 | 
			
		||||
  
 | 
			
		||||
- There is a new example available showing how to use sound effects.
 | 
			
		||||
  
 | 
			
		||||
- Refactored a lot of internal code, reducing the file size of the 
 | 
			
		||||
  irrKlang binaries.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a possible synchronization problem (possible crash)
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.8.1 
 | 
			
		||||
 | 
			
		||||
- There was a serious bug in the WAV file reader which read over the end of files,
 | 
			
		||||
  when streamed, causing a short 'click' sound. Fixed now.
 | 
			
		||||
 | 
			
		||||
- 8 Bit sound streams don't produce a click when stopped anymore. 
 | 
			
		||||
 | 
			
		||||
- Audio stream readers which report a wrong amount of frames in the stream now 
 | 
			
		||||
  don't get clipped before playing the end of the sound anymore.
 | 
			
		||||
  
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.8 
 | 
			
		||||
 | 
			
		||||
- There are now two ways to set default min and max distances for 3D sounds:
 | 
			
		||||
	ISoundEngine::setDefault3DSoundMinDistance(), ISoundEngine::setDefault3DSoundMaxDistance
 | 
			
		||||
  for global min/max control, as well as
 | 
			
		||||
	ISoundSource::setDefaultMinDistance(), ISoundSource::setDefaultMaxDistance().
 | 
			
		||||
  to influence the default min/max value based on the sound source.
 | 
			
		||||
  
 | 
			
		||||
- Some documentation updates
 | 
			
		||||
  
 | 
			
		||||
- The short 'click'/'pop' sound which sometimes has been played on streamed, non looped sounds
 | 
			
		||||
  when using the DirectSound device is now removed.
 | 
			
		||||
 | 
			
		||||
- The ALSA driver now also works with sound hardware not supporting power of two buffer sizes.
 | 
			
		||||
 | 
			
		||||
- License change: irrKlang.so file may also be redistributed.
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.7 
 | 
			
		||||
 | 
			
		||||
- Added possibility to remove sound sources (selective or all at once).
 | 
			
		||||
  See ISoundEngine::removeSoundSource() (two overloads) and 
 | 
			
		||||
  ISoundEngine::removeAllSoundSources().
 | 
			
		||||
  
 | 
			
		||||
- There is now the possibility to get the length of any sound source or playing sound.
 | 
			
		||||
  See ISound::getPlayLength() and ISoundSource::getPlayLength().
 | 
			
		||||
  
 | 
			
		||||
- Resources of finished played sounds are now freed much earlier, causing smaller memory usage.
 | 
			
		||||
  
 | 
			
		||||
- When stream playback is paused, the play position returned by ISound::getPlayPosition()
 | 
			
		||||
  won't advance forward anymore in DirectSound, this was a bug which is now fixed.
 | 
			
		||||
 | 
			
		||||
- Fixed a bug which caused ISound::isFinished() to be returned incorrect values when 
 | 
			
		||||
  using the DirectSound driver.
 | 
			
		||||
  
 | 
			
		||||
- Fixed a bug causing a wrong value being reported using getPlayPosition() when playing
 | 
			
		||||
  very long streams using the WinMM or the ALSA driver.
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.6 
 | 
			
		||||
 | 
			
		||||
- There are some new supported file formats: MOD, XM, IT and S3M. Implemented using the
 | 
			
		||||
  excellent Dynamic Universal Music Bibliotheque.
 | 
			
		||||
 | 
			
		||||
- irrKlang now is available for .NET languages (C#, VisualBasic.NET, 
 | 
			
		||||
  IronPhyton, Boo, Delphi.NET etc).
 | 
			
		||||
  See /bin/dotnet for the binary, and /examples.net for some examples.
 | 
			
		||||
 | 
			
		||||
- irrKlang now chooses sound drivers in a more intelligent way when running in
 | 
			
		||||
  driver auto detect mode (ESOD_AUTO_DETECT).
 | 
			
		||||
  For example when DirectSound is available but fails starting up (for whatever reason),
 | 
			
		||||
  irrKlang will select the winMM driver instead of not playing any sound. 
 | 
			
		||||
  
 | 
			
		||||
- It is now possible to influence or disable the threshold where irrKlang desides
 | 
			
		||||
  to stream a file regardless of the user specified setting. 
 | 
			
		||||
  Use ISoundSource::setForcedStreamingThreshold for this.
 | 
			
		||||
  
 | 
			
		||||
- irrKlang is now compatible with Irrlicht 1.3, the IFileReader interface has been
 | 
			
		||||
  updated. Meaning you can use the same IFileReader interfaces between those two 
 | 
			
		||||
  engines and for example make irrKlang read files using Irrlicht's file system.
 | 
			
		||||
 | 
			
		||||
- irrKlang now needs even less memory when playing a lot of short soundfiles at the same time,
 | 
			
		||||
  achieved through a nicer internal (de)allocation scheme.
 | 
			
		||||
 | 
			
		||||
- When using software 3d sound (using winMM or ALSA), the left and right speaker were swapped.
 | 
			
		||||
  This is fixed now.
 | 
			
		||||
  
 | 
			
		||||
- Failed COM initialization is now only a warning, and irrKlang will not abort with an error.
 | 
			
		||||
 | 
			
		||||
- Under some circumstances (bad windows scheduling, cpu intensive applications etc) it could 
 | 
			
		||||
  happen that looped, streamed sound filed played via DirectSound in irrKlang would play
 | 
			
		||||
  strange noises after the first repeat. This has been corrected now.
 | 
			
		||||
 | 
			
		||||
- On some hardware under Linux, irrKlang wasn't able to set the wanted buffer size, 
 | 
			
		||||
  this has been improved now.
 | 
			
		||||
  
 | 
			
		||||
- Removed a bug causing visual studio 2005 projects not to compile when using irrKlang without
 | 
			
		||||
  a WIN32 define.
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.5 
 | 
			
		||||
 | 
			
		||||
- Linux is now supported as platform. irrKlang uses ALSA as output target here by default.
 | 
			
		||||
 | 
			
		||||
- irrKlang now supports winMM as output driver next to DirectSound in Windows.
 | 
			
		||||
 | 
			
		||||
- added a new method to pause/unpause all sounds:
 | 
			
		||||
	ISoundEngine::setAllSoundsPaused( bool bPaused = true )
 | 
			
		||||
 | 
			
		||||
- The flag ESEO_LOAD_PLUGINS now correctly prevents loading of plugins if 
 | 
			
		||||
  not set. This was not working before.
 | 
			
		||||
  
 | 
			
		||||
- ISoundEngine::stopAllSounds() didn't work with the DirectSound output driver correctly,
 | 
			
		||||
  this has been corrected now.
 | 
			
		||||
 | 
			
		||||
- irrKlang can now be used as static lib. Just #Define IRRKLANG_STATIC in your project 
 | 
			
		||||
  settings or before including the irrKlang headers to use the static lib version
 | 
			
		||||
  of irrKlang. Note that you need to use multi threaded runtime libraries in your project 
 | 
			
		||||
  when using irrKlang as static lib, other wise you will get linker errors 
 | 
			
		||||
  (like "__getmbcp already defined in LIBC.lib(mbctype.obj)") or random crashes. 
 | 
			
		||||
  In Visual Studio, this setting can be found in 
 | 
			
		||||
  Project Settings -> C++ -> Code Generation -> Runtime Library.
 | 
			
		||||
  (If the static library isn't released in this package it may come as separate archive)
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.4 
 | 
			
		||||
 | 
			
		||||
- Added support for the GCC compiler
 | 
			
		||||
 | 
			
		||||
- Added the possibility to load sounds directly from memory.
 | 
			
		||||
  For this, two overloaded methods to the ISoundEngine interface have been added:
 | 
			
		||||
    ISoundSource* addSoundSource(void* memory, ik_s32 sizeInBytes, const ik_c8* soundName);
 | 
			
		||||
    ISoundSource* addSoundSource(const ik_c8* fileName, E_STREAM_MODE mode=SM_AUTO_DETECT);
 | 
			
		||||
 | 
			
		||||
- Added possibility to override file access easily.
 | 
			
		||||
 | 
			
		||||
- Added two tutorials: MemoryPlayback and OverrideFileAccess.
 | 
			
		||||
 | 
			
		||||
- Added support for the Code::Blocks IDE
 | 
			
		||||
 | 
			
		||||
- Removed streamMode parameter from getSoundSource(). If you needed this, please use
 | 
			
		||||
  addSoundSource() now instead.
 | 
			
		||||
 | 
			
		||||
- Sounds are now loaded correctly independent of their file extension.
 | 
			
		||||
 | 
			
		||||
- irrKlang no longer crashes if more than one instance of it is created.
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.3 
 | 
			
		||||
 | 
			
		||||
- Added the option to play mp3 files. This functionality is available as plugin and
 | 
			
		||||
  works when the  file ikpMP3.dll is available. Simply remove it if you don't want
 | 
			
		||||
  or need mp3 support for your software. Please note that if you are using mp3
 | 
			
		||||
  files in your application, you might need to pay a license fee to Thompson for
 | 
			
		||||
  their patent (This is nothing irrKlang specific, every application needs to do
 | 
			
		||||
  this today if Thompson wants it to.)
 | 
			
		||||
  The ikpMP3.dll decoder is available as full source in the \plugins directory
 | 
			
		||||
  and licensed under the LGPL.
 | 
			
		||||
 | 
			
		||||
- Added plugin support. Create a .dll which starts with ikp (for IrrKlangPlugin)
 | 
			
		||||
  including a function looking like this:
 | 
			
		||||
  __declspec(dllexport) void __stdcall irrKlangPluginInit(
 | 
			
		||||
        ISoundEngine* engine, const char* version) { // your code here }
 | 
			
		||||
  irrKlang will load the dll and invoke that function. There is an example plugin
 | 
			
		||||
  with full source code in the \plugins directory which enhances irrKlang
 | 
			
		||||
  to decode mp3 files.
 | 
			
		||||
 | 
			
		||||
- IrrKlang now supports 3D buffers (enabled by default). Previously, they have been
 | 
			
		||||
  emulated. By not specifying the ESEO_USE_3D_BUFFERS flag when calling
 | 
			
		||||
  createIrrKlangDevice(), irrKlang will not use 3D buffers.
 | 
			
		||||
 | 
			
		||||
- Added the possibility to write debug info to any windows debugger supporting
 | 
			
		||||
  OutputDebugString() (like VisualStudio). This is pretty useful if your application
 | 
			
		||||
  does not capture any console output. Use ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER to
 | 
			
		||||
  enable this feature when calling createIrrKlangDevice().
 | 
			
		||||
 | 
			
		||||
- irrKlang now supports multiple rolloff models. 3D sounds are now played back with
 | 
			
		||||
  a logarithmic rolloff by default. In previous versions, irrKlang used a linear rolloff
 | 
			
		||||
  model. Use ESEO_LINEAR_ROLLOFF when calling createIrrKlangDevice() to switch
 | 
			
		||||
  to the linear rolloff model.
 | 
			
		||||
 | 
			
		||||
- The createIrrKlangDevice() function now accepts several options as flags. Note that
 | 
			
		||||
  the C++ compiler automaticly converts bools to this flags so if you used a previous
 | 
			
		||||
  version of the engine you might want to check if your parameters are correctly set.
 | 
			
		||||
 | 
			
		||||
- Added the method ISound::getPlayPosition() which returns the current play position of
 | 
			
		||||
  the sound in milliseconds.
 | 
			
		||||
 | 
			
		||||
- Fixed a possible crash when stopping a streamed sound manually at the same time
 | 
			
		||||
  it also stopped automaticly.
 | 
			
		||||
 | 
			
		||||
- Fixed playback of looped streamed sounds causing artifacts under several circumstances.
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.2 
 | 
			
		||||
 | 
			
		||||
- Fixed 3d positioning of sounds
 | 
			
		||||
 | 
			
		||||
- Fixed a bug in ik_ISound.h causing irrKlang header not to compile with some strict compiler settings.
 | 
			
		||||
 | 
			
		||||
- Added some internal performance improvements
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
irrKlang 0.1 
 | 
			
		||||
 | 
			
		||||
Initial release.
 | 
			
		||||
 | 
			
		||||
Although this is the first release, irrKlang already has some features:
 | 
			
		||||
 | 
			
		||||
- Support for .WAV and .OGG files (MP3, FLAC, SPEEX support planned and
 | 
			
		||||
coming soon)
 | 
			
		||||
 | 
			
		||||
- Buffered and streamed audio playback
 | 
			
		||||
 | 
			
		||||
- Seamless 2D and 3D audio: It is possible to play short simple stereo
 | 
			
		||||
sounds as well multiple large streamed sound files in 3D space at the
 | 
			
		||||
same time for example.
 | 
			
		||||
 | 
			
		||||
- High level autodetection: The engine can do everything for you. Just
 | 
			
		||||
tell it to play a sound file, and it will load, cache and/or stream
 | 
			
		||||
sound data for you automaticly, depending on what is best for
 | 
			
		||||
performance and memory usage. But if you want to specify how the engine
 | 
			
		||||
should handle this, you can specify this as well.
 | 
			
		||||
 | 
			
		||||
- Extendable: Possibility to write own file format readers/decoders to
 | 
			
		||||
extend the engine with it.
 | 
			
		||||
 | 
			
		||||
- Multi/Singlethreaded modes: The engine can run both multithreaded or
 | 
			
		||||
singlethreaded in the same thread as your application, to make it
 | 
			
		||||
possible to debug your application easier for example.
 | 
			
		||||
 | 
			
		||||
- Low level audio output manipulation: Before starting to play a sound
 | 
			
		||||
or even during it is already playing, it is possible of course to alter
 | 
			
		||||
any aspect of it like panning, volume and 3d position.
 | 
			
		||||
 | 
			
		||||
- Fast 3D audio on low end hardware: Because some low end audio hardware
 | 
			
		||||
is not able to play 3D sounds without significant performance loss or
 | 
			
		||||
some don't support 3d audio buffers at all, irrEdit has a high
 | 
			
		||||
performance 3d sound buffer emulator built-in, causing a sound
 | 
			
		||||
experience nearly as it was a real 3d sound buffer.
 | 
			
		||||
 | 
			
		||||
- Separate music and sound control: As most applications want to
 | 
			
		||||
separate between sound and music playback, the engine offers to control
 | 
			
		||||
them separately, like for example via a master volume control. No need
 | 
			
		||||
to manage alls your playing sounds just to change the volume of all
 | 
			
		||||
sounds. (The control of the 'music' part in the API is not available in
 | 
			
		||||
version 0.1 yet, but can be used via normal sounds already)
 | 
			
		||||
 | 
			
		||||
- Full playback control: Play any sound and forget about it if you want.
 | 
			
		||||
Then later, you can query at any time which sound is currently playing
 | 
			
		||||
and influene this if you want.
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user