EXTERNAL_BUFFER чем не оно?научить SNDRENDER работать с кольцевым буфером в штатном режиме
EXTERNAL_BUFFER чем не оно?научить SNDRENDER работать с кольцевым буфером в штатном режиме
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
поставил фиксы boo_boo, добавил ещё одну фичу (отключение показа неактивных иконок)...
незнаю
у мну фиксы не прокатили и звук стал только хуже.
заколебало блин уже. наверное добью до юзабельной 0.1 и начну писать потактовую эмуляцию (да и к тому же чтоб разные устройства рендерили ОДИНАКОВОЕ количество семплов на фрейм).
хорошо: больше движков - лучше. хотя, проблемы c количеством семплов уже нет, просто boo_boo выложил что-то не тоСообщение от Sinus
тем, что этот екстернал буфер один на все экземпляры SNDRENDER, а если охота микшировать потоки самому, это не катитСообщение от SMT
я то самое выложил, но Sinus хочет, видимо, чтоб кол-во семплов было равным на каждом фрейме, а не в среднем. ИМХО это было бы приятно, хотя не принципиально вообщемСообщение от SMT
Последний раз редактировалось boo_boo; 05.04.2006 в 17:44.
в смысле -- хуже? это ты про "высокочастотное сипение" с новым wavplay? похоже, у тебя не тянет с 8-ю фрагментами, надо больше (у меня такой феномен проявляется, когда их меньше 8-и, а если система загружена, то и при 8и).Сообщение от Sinus
если заменить строчку на
tmp = 0xFF0000 | (int) (log(frag_size) + 0.5);
исчезло сипение? системы у всех разные... поэтому и нужна возможность задавать из конфига размер буфера (AUDIO_HW_BUFFER) и, как выясняется, еще и кол-во фрагментов -- то, что у тебя нормально звучит, у меня дает лаг, и наоборот тоже лажа.
вообщем, ИМХО надо передавать в wav_start 2 параметра (из конфига): frag_num и frag_size, а вышеупомянутую строчку превратить в
tmp = (frag_num << 16) | (int) (log(frag_size) + 0.5);
ЗЫ частоте семплирования по-хорошему тоже место в конфиге
Последний раз редактировалось boo_boo; 05.04.2006 в 17:50.
буду дома- попробую.Сообщение от boo_boo
размер буфера (тот который AUDIO_HW_BUFFER) не хотелось бы в конфиг перекладывать, ибо надо тогда динамические массивы юзать.вообщем, ИМХО надо передавать в wav_start 2 параметра (из конфига): frag_num и frag_size, а вышеупомянутую строчку превратить в
tmp = (frag_num << 16) | (int) (log(frag_size) + 0.5);
ЗЫ частоте семплирования по-хорошему тоже место в конфиге
ничего страшного конечно (вон тот же config.cpp вообще деревья строчит), но всё таки не очень хотелось бы- меньше потенциальных глюков.
а вот frag_num и frag_size надо бы в конфиг.
и ещё чтоб ты написал туториал какие надо ставить- я допустив абсолютно не в курсе что это значит.
malloc или new либо проходит 1 раз при старте, либо нет, откуда глюки?!Сообщение от Sinus
это кол-во буферов и размер каждого . отимальные подбираются опытным путем, а по умолчанию надо поставить с запасом. UPD кстати, AUDIO_HW_BUFFER это сейчас и есть frag_size, только в сэмплах.Сообщение от Sinus
Последний раз редактировалось boo_boo; 06.04.2006 в 01:52.
короче вот результаты моиз изголений:
несмотря на то, что /*max 8 fragments*/
у меня лучший результат достигается про значениях 11-12 (я убрал пока логарифм нафих).
и в старой версии wavplay.cpp установка размера фрагмента шла в самом конце, а в новом- где-то посредине. это так надо?
я перенёс в конец- ничего вроде не поменялось.
и вообще, лучше всего себя вела SDL - почти чистый звук.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)