Войти
Мобильные платформыФорумОбщее

Какой формат звукового семпла использовать на iOS?

#0
15:07, 30 окт 2011

Занимаюсь портированием игры. Размер занимаемой памяти важен, поэтому задумался над уменьшением объема звуковых данных.

PC версия использовала 44100 / 16bit / stereo. Думаю, что для iOS можно сделать меньше.
Какие best practices существуют? Для эффектов и музыки.

Слушая через динамик, легко предположу, что 22050 / 8 / mono или даже меньше, но с другой стороны, пользователь может играть и в наушниках.

#1
17:55, 30 окт 2011

как ни странно, но в игры на iOS многие играют с наушниками, поэтому безболезненно уменьшить качество звуков по сравнению с PC не получится. а так, какой хочешь формат, такой и выбирай. кстать, память для звуков можно уменьшить за счет их кеширования.

#2
8:23, 31 окт 2011

22khz / 16 bit / stereo терпимо звучит. После конвертации надо немного поработать эквалайзером, подвытащив часть средних и верхних частот на место.
Некоторые короткие звуки, "шумовые" по характеру (взрывы, выстрелы) можно попробовать первести в 8 bit, если шум дискретизации не будет сильно заметен.
Люди играют на айфоне обычно в дороге или шумных местах, поэтому не всегда наушники спасают от чистого восприятия звука. Приходится искать компромисс, когда из-за звука не хватает места для других ассетов.

#3
9:54, 31 окт 2011

Vibe
> звука не хватает места для других ассетов
Оперативной памяти там за глаза, если хочется чтобы билд влазил в 20 Мб, то можно конвертировать в .ogg. Да можно и в памяти хранить как .ogg, а при воспроизведении проводить временную распаковку требуемых выборок в .wav, правда это реализовать сложновато. По сабжу - экономите на оперативной памяти или на самом билде?

#4
12:31, 31 окт 2011

TorpedO.vrn
> По сабжу - экономите на оперативной памяти или на самом билде?

На оперативной памяти. Звуков очень много и они, сейчас, занимают половину от общего объема игры.
На диске храню как ogg, но bass разжимает их в памяти обратно в wav. Не знаю можно ли указать ему, чтобы хранил ogg, наверное нет.

Vibe
> 22khz / 16 bit / stereo терпимо звучит.

Да, наверное так и буду делать. А для эффектов 22khz / 16/8 bit / mono

#5
12:52, 31 окт 2011

afconvert -f caff -d ima4  filename.ext на выходе получишь оптимальный caf

#6
13:44, 31 окт 2011

SereG
IMA ADPCM - неплохой компромисс между степенью сжатия и скоростью декодирования.

#7
14:14, 31 окт 2011

В таком случае можно выборочно грузить  звуки. Т.е. у вас одновременно можно воспроизвести, скажем, 5 звуков, следовательно в памяти будет всегда не более 5 звуков. Если потребуется воспроизвести такой звук, который не загружен в память,  то грузим его из файла (можно в потоке) вместо неиспользуемого звука и воспроизводим.

#8
4:16, 16 ноя 2011

TorpedO.vrn

Ну да, можно конечно, но будут возникать протормаживания.

kalach
BUzer

Попробовал IMA - устраивает. НО глупый BASS(?) его разжимает обратно в WAV (судя по занимаемой приложением памяти).

#9
5:35, 16 ноя 2011

SereG
Я просто распаковываю текущую часть mp3 stream'а, ее воспроизвожу, закончив иду к следующей части. Это делается довольно просто.

#10
15:30, 16 ноя 2011

SereG
Нда, это не очень хорошо. Покопайся во флажках - может ему как-то можно сказать, чтобы разжимал на лету.

#11
16:18, 16 ноя 2011

22кГц/16бит
можно даже 11  (разница будет еле заметна только при моментальном сравнении)
но не  в коем случае не 8 бит будет и шипеть и артефакты в звуке появятся (хотя глухим этот совет не подходит)

#12
20:47, 16 ноя 2011

SereG
> НО глупый BASS(?) его разжимает обратно в WAV (судя по занимаемой приложением
> памяти).
В FMOD'e есть флаг стриминга, видимо, в БАССе тоже что-то такое есть

#13
20:55, 16 ноя 2011

StiX
> В FMOD'e есть флаг стриминга, видимо, в БАССе тоже что-то такое есть

Та это понятно, но не будешь же каждый "пик" в программе стримить.

Поговорил с саппартом баса, подтвердили что IMA4 сэмплы разжимаются в памяти в PCM.

Ладно, ограничусь уменьшением битрейта)

Мобильные платформыФорумОбщее

Тема в архиве.