Page 24 of 66
Posted: Sun Jul 08, 2007 5:12 pm
by Serge
Атауальпа
Нет никакого батника. Всё собирается VC или любым другим компилятором
Posted: Sun Jul 08, 2007 6:05 pm
by Quantum
Serge
Потестил примеры всё работает но mini иногда потрескивает.
Не должно, хотя в бета релиз вошла новая версия движка, которая ещё глобально не тестировалась на предмет качества звучания. Трещит в случайных местах или всегда на одной и тойже секунде?
Щелчки идут при автоопределении нагрузки. Потом Win запоминает конфигурацию и следующей загрузке уже не щёлкает.
Колонки трещат всё время, как будто plug не совсем чётко вошёл в разьём. Но звук то всё равно выводится виндой в другой разьём и перенаправить его в винде нельзя нигде в настройках (или я просто не знаю как).
Posted: Sun Jul 08, 2007 6:36 pm
by Serge
Quantum
Мне покаалось что щелчки повторяются. Я подумал что проблема в стыковке звуковых фрагментов если звук воспроизволится через статический буфер.
Но звук то всё равно выводится виндой в другой разьём и перенаправить его в винде нельзя нигде в настройках (или я просто не знаю как).
Значит это от драйвера зависит. У меня если переключить штекер запускается автоопределение нагрузки и потом звук всё время выводится в этот разъём.
Posted: Sun Jul 08, 2007 7:29 pm
by Serge
Quantum
Добавил вызов SND_GETFREESPACE equ 17
Только для PCM_OUT. Возвращает размер незаполненной части буфера
Code: Select all
get_buffer_free:
;param
; eax=stream
;retval
; ebx = buffer free space
; eax = error code
push ecx
push 0 ;output
mov ebx, esp
push eax ;input
mov eax, esp
push 4 ;.out_size
push ebx ;.output
push 4 ;.in_size
push eax ;.input
push SND_GETFREESPACE ;.code
push dword [hSound] ;.handle
mov eax, 68
mov ebx, 17
mov ecx, esp
int 0x40
add esp, 24+4 ;skip input
pop ebx ;load output
pop ecx
ret
Posted: Mon Jul 09, 2007 12:52 am
by Serge
SPraid
Если хочешь сделать mp3 плеер для sb16 то единственный способ писать на С. Я добавил к mpg123 функции для чтения mpeg потока.
Они все собраны в mpg/readers.c Сначала надо создать reader функцией create_reader потом установить читаемый файл вызовом init_reader. head_read читает заголовок фрейма а read_frame - фрейм. test_mp3 и play_mp3 в плеере выполняют всю работу по определению файла и его декодированию
Posted: Mon Jul 09, 2007 1:09 am
by Quantum
Serge
Добавил вызов SND_GETFREESPACE equ 17
Отлично! Теперь можно обновлять буфер в неблокирующем режиме, что даёт определённые плюсы.
Кстати о треске. Теперь я тоже заметил этот эффект на старте воспроизведения (файл не имеет значения). При задании частоты в 44.1КГц эффект пропадает. Такое ощущение, что на самом старте в буфере мусор. При использовании ресемплера ничего подобного не происходит.
Posted: Mon Jul 09, 2007 1:13 am
by Serge
Quantum
Треск очень слабый, как статика на виниле. При ресемплировании он может сглаживаться.
Какой буфер имеется ввиду ?
Posted: Mon Jul 09, 2007 1:33 am
by Quantum
Serge
Возможно, мы говорим о разных вещах. Я заметил, что на протяжении первых 100-200 мсек проигрывания слышна не музыка из трека, а какой-то мусор, т.е. проигрывание как бы спотыкается на самом старте. Потом всё играет нормально (как и должно). Если перезапустить приложение, глюк повторяется. Это всё при 48КГц. Если же включить ресемплер, то этот глюк мистическим образом исчезает, т.е. проигрывание стартует гладко. Никакого треска, накладывающегося на проигрывание в моём случае не слышно.
Чтобы переключить частоту достаточно изменить константу в исходнике (mini.asm):
Code: Select all
UF_FREQ equ 48000 ; Set sampling rate to 48KHz (22050, 44100, 48000)
Попробуй поставить 44100.
И ещё, на всякий случай, предлагаю тебе скачать виндовую версию uFMOD. В папке masm32 есть экзешник по функциональности аналогичный mini. Там тоже 48КГц и никакого треска и подобных артефактов быть не должно.
Какой буфер имеется ввиду ?
Буфер стрима, который создаётся функцией CreateBuffer.
Posted: Mon Jul 09, 2007 12:26 pm
by Mario79
Serge
Есть проблемы с воспроизведением:
(оба файла с битрейтом 320)
http://www.kolibri.hut1.ru/temp/1.mp3 прерывистое воспроизведение
http://www.kolibri.hut1.ru/temp/2.mp3 замедленное воспроизведение
Posted: Mon Jul 09, 2007 12:37 pm
by Serge
Quantum
Исправил все ошибки с 2_16_48. Теперь mini.beta играет без статики и пульсаций в начале файла.
Posted: Mon Jul 09, 2007 2:44 pm
by Serge
Mario79
Для первого файла надо обновить дрова, а для второго плеер
http://infinity-sound.narod.ru/ac97snd
Posted: Mon Jul 09, 2007 4:42 pm
by Serge
Залил на SVN новое дерево каталогов для плеера. Если путь к Фасму не прописан в PATH надо отредактировать fasm.rules.
http://infinity-sound.narod.ru/sdk.7z - pe2kos.exe и sound.lib
Posted: Mon Jul 09, 2007 6:30 pm
by Quantum
Serge
Исправил все ошибки с 2_16_48
Оперативно.
Теперь mini.beta играет без статики и пульсаций в начале файла.
Интересно, почему у меня не было статики... Может ICH6 как-то её поглощает? Например, SB Live действительно фильтрует звук перед выводом. Поэтому я перестал тестить движок на этой карточке.
Posted: Mon Jul 09, 2007 6:38 pm
by Serge
Quantum
Скорее это кодек и потом я слушаю через наушники. Был баг с копированием семлов 2_16_48 когда воспроизведение смещалось и ещё менялось чередование каналов. Поэтому было ощущение потрескивания пластинки.
Posted: Tue Jul 10, 2007 12:02 am
by Serial
Serge
mp3-файлы с CD/DVD воспроизводятся с короткими паузами через каждые ~3-4 секунды
Эта фича-баг излечима? и будет ли лечится?