OBD:OSBD/OSGr: Difference between revisions

From OniGalore
Jump to navigation Jump to search
mNo edit summary
(additional knowledge about channel count)
Line 20: Line 20:
{{OBDtr| 0x14 | char[32] |EBEBEB| 61 63 35... | ac5lp1.aif | permutation sound name (reference to f.e. 09376-ac5lp1.aif.[[OBD:SNDD|SNDD]] of level 3) }}
{{OBDtr| 0x14 | char[32] |EBEBEB| 61 63 35... | ac5lp1.aif | permutation sound name (reference to f.e. 09376-ac5lp1.aif.[[OBD:SNDD|SNDD]] of level 3) }}
|}
|}
 
;Number of channels
:By design the number of channels is supposed to be the same as that of the referenced SNDDs (this implies that all the SNDDs in a group are supposed to have the same channel count).
:If for whatever reason the channel counts in OSGr and SNDD are ''not'' consistent, then the behaviour depends on whether the OSGr is referenced from an OSIm or from an OSAm:
:*the channel count in an OSAm's OSGr determines the channel count of the decompressed sound buffer, therefore mono SNDDs will sound 2x higher/faster if the channel count in their OSGr is set to 2, and stereo SNDDs (e.g., music) will sound 2x lower/slower if the channel count in their OSGr is set to 1.
:*the channel count in an OSIm's OSGr seems to have no effect if the SNDDs are mono, i.e. setting the OSGr's channel count to 2 does not result in a higher pitch. As for stereo SNDDs, apparently they cannot be used in an OSIm's OSGr at all.
;Fury vocalizations
;Fury vocalizations
:Those are sped up by 1.14 in Oni, which explains why they sound weird when exported.
:Those are sped up by 1.14 in Oni, which explains why they sound weird when exported.

Revision as of 01:03, 22 July 2021

Osb r gr.gif

Offset Type Raw Hex Value Description
0x00 int32 72 47 53 4F OSGr Oni Sound Group
0x04 int32 B4 00 00 00 180 size of OSGr chunk (from after this field and to the end)
0x08 int32 06 00 00 00 6 version (see below)
0x0C float 00 00 80 3F 1.0 playback volume (present for version 2 and above, default is 1)
0x10 float 00 00 80 3F 1.0 playback speed AKA pitch (present for version 3 and above, default is 1)
0x14 int16 00 00 0 prevent repeats (present for version 6 and above, default is 1 for versions 4 and 5 and 0 for versions lower than 4)
0x16 int16 00 00 0 last selected permutation (present for version 6 and above, default is 0, used with prevent repeats)
0x18 int32 01 00 00 00 1 number of channels (1 or 2, same as in the sound files linked from permutations)
0x1C int32 03 00 00 00 3 number of permutations
First permutation
0x00 int32 0A 00 00 00 10 weight
0x04 float 00 00 80 3F 1.0 minimum volume
0x08 float 00 00 80 3F 1.0 maximum volume
0x0C float 33 33 33 3F 0.7 minimum pitch
0x10 float 33 33 33 3F 0.7 maximum pitch
0x14 char[32] 61 63 35... ac5lp1.aif permutation sound name (reference to f.e. 09376-ac5lp1.aif.SNDD of level 3)
Number of channels
By design the number of channels is supposed to be the same as that of the referenced SNDDs (this implies that all the SNDDs in a group are supposed to have the same channel count).
If for whatever reason the channel counts in OSGr and SNDD are not consistent, then the behaviour depends on whether the OSGr is referenced from an OSIm or from an OSAm:
  • the channel count in an OSAm's OSGr determines the channel count of the decompressed sound buffer, therefore mono SNDDs will sound 2x higher/faster if the channel count in their OSGr is set to 2, and stereo SNDDs (e.g., music) will sound 2x lower/slower if the channel count in their OSGr is set to 1.
  • the channel count in an OSIm's OSGr seems to have no effect if the SNDDs are mono, i.e. setting the OSGr's channel count to 2 does not result in a higher pitch. As for stereo SNDDs, apparently they cannot be used in an OSIm's OSGr at all.
Fury vocalizations
Those are sped up by 1.14 in Oni, which explains why they sound weird when exported.
Version
Just as for other OSBD, there have been several version of the binary format.
Over time, some fields that used to be hardcoded became customizeable on a group-per-group basis.
Thus, later versions include some extra fields as compared to earlier ones.
The above example belongs to the latest OSGr version encountered in Oni: 6.
Lower versions lack certain fields, and the following content is simply shifted backwards.
Dialog from level0_Tools

dialog_sound_group_properties.png