781 lines
34 KiB
Plaintext
781 lines
34 KiB
Plaintext
|
|
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.
|
|
|