forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Delphi (http://forum.boolean.name/forumdisplay.php?f=66)
-   -   Как смешать wav-файлы? (http://forum.boolean.name/showthread.php?t=16382)

Phantom 30.04.2012 01:16

Ответ: Как смешать wav-файлы?
 
Мне кажется, что делить амплитуду на два, после микширования - ошибочно. Громкость при этом станет ниже на слух. Конечно, жёсткое лимитирование мне тоже кажется каким-то варварством. Советовался с Романзесом, когда делал подобное, он тоже сказал, что скорее всего не нужно делить на 2.

Цитата:

поробовал. при "s1 + s2" громкое шипение. почти все результирующие значения = 32767.
Такое чувство, что у тебя либо используется беззнаковый тип (не знаю, как там в делфи), либо знаковый, но размером больше. Проще говоря ты каждый семпл держишь в памяти как положительное число, а на самом деле диапазон должен быть от -32768 до 32767. Я когда экспериментировал, пробовал делать амплитуду всех семплов выше нуля, получалось похоже как у тебя.

giraf 06.06.2012 17:43

Ответ: Как смешать wav-файлы?
 
к каждой выборке исходного файла прибавлять значения выборок из другого, но чтобы результат был не больше 255 (-255) при 8 бит и при 16 бит - 32767 (-32767), желательно усреднить значения, а также снизить смещение по DC.

barsunduk 07.06.2012 23:25

Ответ: Как смешать wav-файлы?
 
Вложений: 1
Цитата:

Сообщение от giraf (Сообщение 229616)
к каждой выборке исходного файла прибавлять значения выборок из другого, но чтобы результат был не больше 255 (-255) при 8 бит и при 16 бит - 32767 (-32767), желательно усреднить значения, а также снизить смещение по DC.

спасибо, но всё это уже пробовалось. вот пример в аттаче. там самый "лучший" результат смешивания - "mix_result_(for_checking).wav". тихий ужас, короче.

(только сильно не ржать, пожалуйста, над прогой. это я давно уже наскоряк пример сэмплера накидал, без графического интерфейса, на основе stringgrid. перетаскивать сэмплы в стринггрид левой кнопкой мыши, в гриде - тем же способом копировать, а с шифтом - перемещать. полные наборы сэмплов для eJay можно качнуть на рутрекере. а все версии eJay у меня тормозят)

попробуйте исправить косячный алгоритм смешивания. (всё в процедуре TfrmSampler.FileExport1Accept(Sender), если что). если получится, буду признателен за обнародование рабочего варианта.

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


Часовой пояс GMT +4, время: 05:11.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot