Generic RWAC Wave Content: Difference between revisions

no edit summary
m (Conform to format documentation guidelines.)
No edit summary
Line 1:
Sometimes referred to as RWAC Wave or simply Wave, the '''Generic RWAC Wave Content''' resource type is a container for the EA SndPlayer Plug-In Asset. This is the primary sound asset type used throughout the game.
 
= Generating assets =
Waves can be generated (without a [[Binary File]] header) by the EA Sound Exchange command-line tool. For more information on specifics, see [[Sounds (Burnout Paradise)]].
 
=== Codec ===
As noted in the [[#EA::Audio::Core::SndPlayerCodec | enumeration]], there are several codecs to choose from when encoding. ''Burnout'' primarily uses EALayer3, a proprietary offshoot of MPEG Layer 3, or its Spike variant. It also uses XAS certain engine sounds, namely ignition, for reasons unknown. The Xbox 360 version uses EA-XMA for all audio except acceleration/deceleration, which is done with [[Ginsu Wave Content | Ginsu]] resources.
 
=== Play location ===
Three play locations are supported: RAM, stream, and gigasample. RAM-targeted assets are self-contained and generally found in engines, [[Splicer | splicerssplicer]]s, and [[AEMS Bank | AEMS banks]], while streams have data separate from the header and stored in persistent memory instead of RAM. Gigasamples are like streams, but with a portion in RAM so slow access times on the stream portion do not slow playing of the asset.
 
=== Loops ===
When loops are enabled with the <code>-loops</code> (loop start) option, the loop flag is toggled and the specified sample is written to the header. <code>-loope</code> (loop end) may also be specified, though it is unclear where this is stored.
 
=== Data ===
In these assets, sound data is stored in [[#Chunk | chunks]] to be loaded, played, and unloaded in sequence. This is done to minimize RAM usage and increase streaming efficiency. All other data is that of the sound itself.
 
= Structures =
'''Note: Waves begin with a [[Binary File]] resource.''' (Not subject to the following note.)
<br/>
'''Note: Data is stored in big endian byte order regardless of platform.'''
 
=== Header ===
{| class="wikitable"
! Offset (bits) !! Length (bits) !! Constant Name !! Description !! Comments
Line 27:
| 0 || 4 || SNDPLAYER_VERSION_BITS || Version number || 0 in Burnout
|-
| 4 || 4 || SNDPLAYER_CODEC_BITS || Codec || See [[#EA::Audio::Core::SndPlayerCodec | SndPlayerCodec]]
|-
| 8 || 6 || SNDPLAYER_NUMCHANNELS_BITS || Number of channels || Offset by 1 such that 0 = 1, 1 = 2, etc.
Line 33:
| 14 || 18 || SNDPLAYER_SAMPLERATE_BITS || Sample rate || Expected maximum of 192 kHz but can hold up to 262 kHz
|-
| 32 || 2 || SNDPLAYER_PLAYTYPE_BITS || Play type || See [[#EA::Audio::Core::SndPlayerPlayType | SndPlayerPlayType]]
|-
| 34 || 1 || SNDPLAYER_LOOPFLAG_BITS || Sets whether the asset is looped ||
Line 46:
|}
 
==== Example header ====
This represents a typical stream with no additional fields used.
 
Line 68:
|}
 
=== Chunk ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
Line 77:
|}
 
= Enumerations =
=== EA::Audio::Core::SndPlayerCodec ===
{| class="wikitable"
|-
Line 118:
|}
 
=== EA::Audio::Core::SndPlayerPlayType ===
{| class="wikitable"
|-