Feature #13

Make a XAudio2 driver

Added by vl almost 10 years ago. Updated almost 8 years ago.

Status:Closed Start date:09/01/2008
Priority:Low Due date:
Assignee:kaetemi % Done:

100%

Category:NeL: General
Target version:Version 0.7.0 Estimated time:74.00 hours

Description

Make a XAudio2 driver

100_kipees_fmod_32.ogg - 100 noisy creatures on FMod with MaxTracks 32 (769 kB) kaetemi, 09/03/2008 11:22 pm

100_kipees_xaudio2_128.ogg - 100 noisy creatures on XAudio2 with MaxTracks 128 (989.5 kB) kaetemi, 09/03/2008 11:22 pm

History

#1 Updated by kaetemi almost 10 years ago

  • % Done changed from 0 to 70
  • Estimated time set to 12.00

XAudio2 driver requires the following additional libraries: libogg, libvorbis, libvorbisfile. These additional libraries may also be used in the other sound drivers at a later point in time. Additionally, a DirectX SDK later than March 2008 is required for successfully compiling the driver, and the end-user needs to have the version used for compiling or later of the DirectX End-User runtimes (which always include all directx runtime versions up to the version installed, it is probably also possible to include the required directx dlls directly with the client distribution instead if the directx redist license allows this).

#2 Updated by kaetemi almost 10 years ago

  • % Done changed from 70 to 60
  • Estimated time changed from 12.00 to 52.00

There's some weird design choices in the music channel system of NLSOUND, like for bnp files the name of the bnp file and the offset of the file inside is sent, which is pretty much not really necessary stuff for drivers that can handle nel files just fine. Something else that comes to mind is the fact that you need to call the music channel functions on the sound driver with a channel id, instead of on some sort of music channel interface similar to how the sample sources work.

#3 Updated by kaetemi almost 10 years ago

Sound in character selection OK. Music interface between nlsound and driver definitely needs to be changed.

#4 Updated by kaetemi almost 10 years ago

  • Estimated time changed from 52.00 to 58.00

XAudio2 throws me errors on random sound samples, dunno why (and there's no documentation on the errors, yay)...
Will need to build some small sound test apps to find out why this is happening.
Some part of sound already seems to be working fine, anyways :)


  • XAPO ASSERT: iSrcOffset (NWORD)uSrcSampleCount || iSrcOffset (NWORD)uSrcSampleCount-1 || iSrcOffset (NWORD)uSrcSampleCount-1*2, {ResampleLinearFromInt16MonoSse2, Line 1029} **********************************************************************
################################################################################
  1. XAUDIO2: src_fast.cpp:554:
  2. ASSERT FAILED: m_SRCParameters.iSrcOffset -m_SRCParameters.iChannelCount || m_SRCParameters.iSrcOffset 0 ################################################################################

  • XAPO ASSERT: pSRCParameters->iSrcOffset 1 || pSRCParameters>iSrcOffset == 0, {ResampleLinearFromInt16MonoSse2, Line 917} **********************************************************************

#5 Updated by kaetemi almost 10 years ago

Identified source of XAudio2 assert errors to a problematic call from a source voice callback OnBufferStart to the source voice function SetFrequencyRatio.
CSourceXAudio2 implementation will be reviewed to work around this (undocumented) behaviour of XAudio2.

#6 Updated by kaetemi almost 10 years ago

  • % Done changed from 60 to 70

Changed implementation of CSourceXAudio2 to fix issue with assert failure of XAudio2.

#7 Updated by kaetemi almost 10 years ago

Driver runs stable right now, not fully implemented yet.

#8 Updated by kaetemi almost 10 years ago

  • % Done changed from 70 to 80
  • Estimated time changed from 58.00 to 61.00

Eax listener environments work.

#9 Updated by kaetemi almost 10 years ago

  • % Done changed from 80 to 90
  • Estimated time changed from 61.00 to 74.00

#10 Updated by kaetemi almost 10 years ago

  • Category changed from Sound to Sound Lowlevel
  • Status changed from Assigned to Closed
  • % Done changed from 90 to 100

Change of planning.
Replaced by #99 (buffer streaming, music)
Replaced by #100 (multi channel buffers)
Replaced by #167 (occlusion and obstruction)

#11 Updated by sfb over 9 years ago

  • Target version set to Version 0.7.0

Changing the target version for this issue to reflect changes applicable to this version.

#12 Updated by kervala almost 8 years ago

  • Project changed from NeL to Ryzom
  • Category deleted (Sound Lowlevel)
  • Target version deleted (Version 0.7.0)

#13 Updated by kervala almost 8 years ago

  • Category set to NeL: General
  • Target version set to Version 0.7.0

Also available in: Atom PDF