в своем редакторе использовал bass.dll для ресэмплинга из высококачественных вавок и ogg в 10.2khz для использования в играх. однако итог получается очень тихий. на форуме дали код по увеличению громкости - прикрутил. качество так себе. больше искажений привносит, чем громкости добавляет. тут меня просветили что нужна нормализация. ну нужна так нужна - на форуме bass.dll чот посоветовали... однако у меня ж руки крюки, так что не выходит. в дискорде посоветовали использовать программу SoX. конвертирует вроде неплохо. в смысле при использования флага нормализации. результат явно погромче, чем тот мой старый из bass.dll. однако эта программа, хоть и консольная - то есть можно прилепить костыль и использовать, но требует тыщу дллок в своей папке. это меня просто убивает. конечно я могу сделать распаковку из редактора, уж тем более все равно такая распаковка происходит... это как бы сразу и приложение и установщик в одном флаконе. однако хотелось бы больше юзерфрендливости. если в случае с bass.dll я могу сконвертировать результат прям в памяти и тут-же из памяти его проиграть, то с SoX такого не получится. там сначала надо будет родить файл результата конвертирования и потом его загрузить в редактор и проиграть. это ну вабще не айс
да, работать будет, но это такой костыль блин...
посему у меня два вопроса:
1. может ли кто посодействовать с перепиливанием кода оригинала SoX, чтобы оно из приложения превратилось в одиночную дллку, и получается могла работать с памятью? типа подсунул образ файла оригинала из памяти - оно результат родило тут-же память. тут-же из памяти проиграл, послушал, устроило - сохранил, создался файл. не понравилось - закрыл, память просто очистилась и все как раньше было, без всяких промежуточных сохранений на жесткий диск.
https://sourceforge.net/p/sox/code/ci/master/tree/ понятия не имею что это за язык.
2. о самой нормализации - по идее, в самом начале я родил алгоритм ресэмплинга из высосокачественной вавки в мои целевые 10.2к, правда я весьма посредственно представлял что там должно было происходить... и результат был, как бы мне сойдет, но я не уверен что это был правильный результат
посему забил, и вернулся к bass.dll. так я к чему - может быть есть какой-то алгоритм, какие-то правила для этой самой нормализации... то есть моя вавка - это мульон значений от -127 до +127. может мне просто в цикле нужно производить какие-то операции с этими значениями и в итоге этот самый SoX нафиг не нужен будет? ну и в каком месте следует производить эту нормализацию? с оригинальной высококачественной вавкой и после конвертировать в 10.2к, или можно сначала конвертировать в 10.2к и уже после производить эту нормализацию? просто с 10.2к данных будет в разы меньше
а высококачественная вавка - там надо будет сначала определить в каком формате данные, стерео или моно... гемороя больше. не говоря что это может быть ogg файл. в случае bass.dll ему все фиолетово для конвертации что wav что 16 бит, что 24, что ogg - результат мне предоставит 8bit mono PCM 10.2. проще связываться с уже конверченным результатом и что-то там нормализировать, но правильнее думаю все-таки с высококачественной вавкой творить свои дела, и уже потом конвертировать - ведь там данных больше.
так уж получилось что хочу всего и сразу
честно говоря в своем редакторе уже сам начинаю путаться где и что... посему для вставки сэмплов в игру хотелось бы прикрутить сии прибамбасы, чтоб сэмплы стали красивше, а не так как сейчас. и причем чтоб все однокликово, хотя я понимаю что однокликово не получится, что лучше заранее подготовить сэмплы в крутых аудио редакторах, и только потом импортировать... но просто такими редакторами пользоваться умеют не все и посему для таких людей, которые не знают всякие монстры аудиоредактирования - хотелось бы подстелить соломки, создав такой однокликовый функционал.