OBD:SNDD: Difference between revisions

6 bytes removed ,  31 May 2020
(getting it right about PC demo format (again) etc)
Line 305: Line 305:
It has been verified (on the main menu music) that in PC Oni (both demo and retail) SNDDs are looped/chained accurately based on the actual sample count (and not on an approximate number of game ticks). Mac Oni probably ''does'' use game ticks, ending each segment slightly early. This eliminates pops that would be caused by a full playback of the IMA4 padding at the end of a segment, followed by the initial transient of the next segment. Early segment end would also be perceived as either a slight pop or a slightly "rushed" beat, but ingame it would be barely noticeable. If a Mac user can record his/her main menu theme playing for half a minute or so, then the resulting audio would be sufficient to validate or invalidate the "early cut" hypothesis.
It has been verified (on the main menu music) that in PC Oni (both demo and retail) SNDDs are looped/chained accurately based on the actual sample count (and not on an approximate number of game ticks). Mac Oni probably ''does'' use game ticks, ending each segment slightly early. This eliminates pops that would be caused by a full playback of the IMA4 padding at the end of a segment, followed by the initial transient of the next segment. Early segment end would also be perceived as either a slight pop or a slightly "rushed" beat, but ingame it would be barely noticeable. If a Mac user can record his/her main menu theme playing for half a minute or so, then the resulting audio would be sufficient to validate or invalidate the "early cut" hypothesis.


For what it's worth, the two segments of the main menu theme, '''SNDDmus_ot6.aif''' and '''SNDDmus_ot7.aif''' do ''not'' have the exact same duration (sample count) - and not even the same frame count (415 frames for '''SNDDmus_ot6''' vs 414 frames for '''SNDDmus_ot7''') -, although musically they're both supposed to consist of four 4:4 bars. So, even for the main menu theme, and even on PC where playback is seamless (no dropped samples), the music we hear is made of segments that end one game tick early or late, and you really can't tell that anything is off:
For what it's worth, the two segments of the main menu theme, '''SNDDmus_ot6.aif''' and '''SNDDmus_ot7.aif''' do ''not'' have the exact same duration (sample count) - and not even the same frame count (415 frames for '''SNDDmus_ot6''' vs 414 frames for '''SNDDmus_ot7''') -, although musically they're both supposed to consist of four 4:4 bars. So, even for the main menu theme, and even on PC where playback is seamless (no dropped samples), the musical segments themselves can have wrong timing at the end (one tick early or late), and you really can't tell that anything is off:
{{divhide|Main menu theme (temporary; will fill in with actual data later)}}
{{divhide|Main menu theme a.k.a. "Oni Trailer"}}
{|
{|
|
|
Line 317: Line 317:
|
|
:'''SNDDmus_ot6'''
:'''SNDDmus_ot6'''
:100 frames = 1.6667 seconds
:415 frames = 6.9166667 seconds
:~= '''36750''' samples (@ 22.05 kHz)
:~= '''152512.5''' samples (@ 22.05 kHz)
|
|
:0x916C = 37228 = 36x1024 + 364 bytes
:0x25B0C = 154380 = 150x1024 + 780 bytes
:= 36x1012 + 352 = '''36784''' stereo samples
:= 150x1012 + 768 = '''152568''' stereo samples
:= 1.668208616780045 s (@ 22.05 kHz)
:= 6.919183673469388 s (@ 22.05 kHz)
|
|
:0x98BC = 39100 = 1150x34 bytes
:0x27940 = 162112 = 4768x34 bytes
:= 575x64 = '''36800''' stereo samples
:= 2384x64 = '''152576''' stereo samples
:= 1.668934240362812 s (@ 22.05 kHz)
:= 6.919546485260771 s (@ 22.05 kHz)
|
|
:As compared to the PC version of the SNDD,
:As compared to the PC version of the SNDD,
:the Mac version has 16 extra samples at the end
:the Mac version has 8 extra samples at the end
:(i.e., the last 8 bytes of the last two blocks).
:(i.e., the last 4 bytes of the last two blocks).
|-
|-
|
|
:'''SNDDmus_ot7'''
:'''SNDDmus_ot7'''
:897 frames = 14.95 seconds
414 frames = 6.9 seconds
:~= '''329647.5''' samples (@ 22.05 kHz)
:~= '''152145''' samples (@ 22.05 kHz)
|
|
:0x5172A = 333610 = 325x1024 + 810 bytes
:0x25A3C = 154172 = 150x1024 + 572 bytes
:= 325x1012 + 798 = '''329698''' stereo samples
:= 150x1012 + 560 = '''152360''' stereo samples
:= 14.95229024943311 s (@ 22.05 kHz)
:= 6.909750566893424 s (@ 22.05 kHz)
|
|
:0x55880 = 350336 = 10304x34 bytes
:0x27874 = 161908 = 4762x34 bytes
:= 5152x64 = '''329728''' stereo samples
:= 2381x64 = '''152384''' stereo samples
:= 14.95365079365079 s (@ 22.05 kHz)
:= 6.910839002267574 s (@ 22.05 kHz)
|
|
:As compared to the PC version of the SNDD,
:As compared to the PC version of the SNDD,
Line 351: Line 351:
|}
|}
{{divhide|end}}
{{divhide|end}}


==PCM export==
==PCM export==