OBD:OSBD/OSGr: Difference between revisions
< OBD:OSBD
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
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