Inertia's picture

OpenAL History

Project:The Open Toolkit library

This is the version history of OpenTK.Audio, which is OpenTK's OpenAL bindings.

I'm posting it here so it can be discussed and the file "/trunk/Source/OpenTK/OpenAL/History.txt" and it's folder can be removed from SVN, the website seems to be the more appropriate place for it.


Alpha v0.1 - 0.9 (merged)


  1. The following functions are not bound/imported. Issue of undoing C malloc to prevent memory leaks.
    • alutLoadMemoryFromFile
    • alutLoadMemoryFromFileImage
    • alutLoadMemoryHelloWorld
    • alutLoadMemoryWaveform

    Please use Alut.CreateBuffer* functions instead, which have similar functionality and return a Buffer Handle.

  2. Disabled Alut.Sleep because it was acting weird, rather use .Net's Thread.Sleep

All functions imported, Bool and Double functions disabled.


  1. Functions not imported:
    • alListeneri, alListener3i, alListeneriv
    • alGetListeneri, alGetListener3i, alGetListeneriv
    • alGetBooleanv, alGetIntegerv, alGetFloatv, alGetDoublev
    • imported, but currently disabled: alGetBoolean, alGetDouble
    • alBufferf, alBufferfv, alBufferi, alBuffer3i, alBufferiv
    • imported, but currently disabled: alBuffer3f
    • alGetBufferf, alGetBuffer3f, alGetBufferfv, alGetBuffer3i, alGetBufferiv
  2. DopplerVelocity, ChannelMask are deprecated and marked.
  3. The Token AL_DATA is hidden now, as it returns a pointer to unmanaged memory where the buffer was located previously to calling AL.BufferData(). (It is usually freed after buffering)

Functions not imported:

  • alEffectiv, alGetEffectiv
  • alFilteriv, alFilterfv, alGetFilteriv, alGetFilterfv
  • alAuxiliaryEffectSlotiv, alAuxiliaryEffectSlotfv, alGetAuxiliaryEffectSlotiv, alGetAuxiliaryEffectSlotfv

Misc. changes to API

  1. Added Function AL.GetErrorString()
  2. Added overloads for requesting/deleting a single buffer/source at a time.
  3. Refactored -i -fv -3f functions to be overloads e.g AL.GetSource, AL.GetListener
  4. X-Ram Extension implemented but untested, as it requires special hardware.
  5. functions with ushort, uint, ulong marked as not CLS compliant.

Alpha v0.95

  1. Cleaned up X-Ram, added docu, hid some previously public delegates.
  2. Cleaned up Efx, largely improved docu, refactored some EfxFilter.FilterXYZ glitches to EfxFilter.XYZ.
  3. commented out debugging Console.WriteLines, replaced errormessages with Trace.Writeline
  4. Added description for most enums.

Alpha v0.96

  1. Removed:

    They were merely used to reserve the range 0x0000 - 0x8000 for future filters/effects.

  2. some spelling errors corrected.

Please note that disabled and not imported functions are left out because there are simply no tokens using them, or they are likely to introduce memory leaks. If you prefer al***fv over al***3f you can request the import here.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Inertia's picture


Category:bug report» task
Priority:normal» minor
Assigned to:Anonymous» Inertia
Status:open» confirmed

-Find someone with a soundcard that supports X-Ram Extension and verify that it works as intended. (It should, but it's not confirmed)
-Eax Reverbs *can* be converted to Efx Reverbs, however the code for this conversion is considered a trade secret. Investigate.

the Fiddler's picture


Version:all versions» 0.9.x-dev

Ok, History.txt can be finally put to rest now. I'm marking this task for 0.9.x-dev, as it's something that should be done before the 1.0 release.

the Fiddler's picture


Status:confirmed» in progress (review)

Ok, as of rev. 1688History.txt is no longer included. We still need someone with an X-Fi to test the X-Ram extension.

Inertia's picture


It has been tested on 2 X-Fi ExtremeGamer cards, but the Extension does not work unless the soundcard has '64MB X-RAM' onboard. That roughly translates to any Creative Labs card with 'Fatal1ty' in the name.

I will definitely jump over my shadow and buy one once they put DDR2/3 slots on the soundcard so you can add as much RAM to it as you please (like they already did with AWE32/64 series) but for now I'm perfectly happy with my rig and would simply feel stupid paying 100€+ for testing this Extension. Sorry :)

Inertia's picture


Status:in progress (review)» fixed

X-Ram works as expected, if the hardware supports it.

the Fiddler's picture


Status:fixed» closed

Closing bugs fixed in 0.9.8-2 and 0.9.9-1.

the Fiddler's picture


Version:0.9.x-dev» 0.9.9-1