Generic RWAC Wave Content: Difference between revisions

m
Fix infobox
No edit summary
m (Fix infobox)
 
(4 intermediate revisions by the same user not shown)
Line 1:
{{ParadiseResourceTypeInfobox
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.
| name = GenericRwacWaveContent
| othernames = Generic Wave Content
| id = 0xA020
| category = Sound
| memdist = SNR in Main Memory<br />Audio data in [[Bundle 2/Burnout Paradise#Memory types|secondary]]
| editor = Yes*<br /><sup><small>*EALayer3 codecs only</small></sup><br />Use [[Modding/Burnout Paradise|EALayer3]]
}}
 
Sometimes referred to as RWACsimply Wave or simplyas Wavewaves, 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=
 
For reference, RWAC ('''R'''ender'''W'''are '''A'''udio '''C'''ore) is the audio library used by Burnout Paradise and other EA games.
 
= 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, [[splicerSplicer|splicers]]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 playinginitial playback 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 which are 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 46 ⟶ 57:
|}
 
==== Example header ====
This represents a typical stream with no additional fields used.
 
{| class="wikitable"
|+ Hex: 05 04 BB 80 40 07 80 AA
|-
! Bit value !! 0 !! 0 !! 0 !! 0 !! 0 !! 1 !! 0 !! 1 !! 0 !! 0 !! 0 !! 0 !! 0 !! 1 !! 0 !! 0 !! 1 !! 0 !! 1 !! 1 !! 1 !! 0 !! 1 !! 1 !! 1 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0
|-
| '''Parsed value''' || colspan=4 | 0 || colspan=4 | 5 || colspan=6 | 1 || colspan=18 | 48000
|-
| '''Description''' || colspan=4 | Version 0 || colspan=4 | EALayer3 codec || colspan=6 | 2 channels (stereo) || colspan=18 | 48 KHz sample rate
|}
 
{| class="wikitable"
! rowspan=3 | (cont.) !! 0 !! 1 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 1 !! 1 !! 1 !! 1 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 1 !! 0 !! 1 !! 0 !! 1 !! 0 !! 1 !! 0
|-
| colspan=2 | Stream play type1 || Not looped0 || colspan=29 | 491690 total samples
! rowspan=3 | (cont.) !! 0 !! 1 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 1 !! 1 !! 1 !! 1 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 0 !! 1 !! 0 !! 1 !! 0 !! 1 !! 0 !! 1 !! 0
|-
| colspan=2 |Stream 1play type || 0Not looped || colspan=29 | 491690 total samples
|-
| colspan=2 | Stream play type || Not looped || colspan=29 | 491690 total samples
|}
 
=== Chunk ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
Line 77 ⟶ 86:
|}
 
= Enumerations =
=== EA::Audio::Core::SndPlayerCodec ===
{| class="wikitable"
|-
! Name !! Value !! Comments
|-
Line 118 ⟶ 126:
|}
 
=== EA::Audio::Core::SndPlayerPlayType ===
{| class="wikitable"
|-
! Name !! Value !! Comments
|-