Несколько дорожек OpenSL

Я пытался сделать педаль петли для Android. У меня 1 трек работает очень хорошо. Я хочу знать, какие ресурсы/интерфейсы мне нужны для реализации нескольких треков. Я использую OpenSL ES и прочитал документ со спецификацией.

Некоторые мысли на данный момент:

Как включить n треков в выходной микс? Не будут ли они смешиваться друг с другом? Как мне нормализовать выходной микс? Как только один трек будет записан, как я могу объединить два трека в один?

Почему эти функции так мало поддерживаются? Я неправильно использую библиотеку или использую не ту?

Я очень заинтересован в программировании с музыкой/звуком и хотел бы ознакомиться с наиболее часто используемыми технологиями.


person covercash2    schedule 14.10.2013    source источник


Ответы (1)


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

person HerrLip    schedule 15.10.2013
comment
Это правильно, но помните, что при суммировании целых чисел может произойти переполнение. Лучше всего делать это с плавающей запятой или, по крайней мере, использовать более широкий тип данных для вашего промежуточного результата (например, int32_t, а не int16_t). - person Ian Ni-Lewis; 14.06.2016