[quote="dr.Titus"]
Если GetCurrentPadding даст реальную позицию, не огрубленную до 48семплов или еще хуже, то да, это спасет отца русской демократии)
Это надо проверять, более того, еще и от драйвера звуковухи может зависеть.
ZXAAA → PC-ZX Staff, Emmulator's → Unreal+Youtube. И про проблемы синхронизации в эмуляторах.
Страницы Назад 1 … 13 14 15 16 17 … 22 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
[quote="dr.Titus"]
Если GetCurrentPadding даст реальную позицию, не огрубленную до 48семплов или еще хуже, то да, это спасет отца русской демократии)
Это надо проверять, более того, еще и от драйвера звуковухи может зависеть.
Вобщем попробуй в своем эмуле. Я так понимаю у тебя там уже все готово, нужно просто новые функции вывода звука заюзать через WASAPI и все, а вся подстройка получится автоматом.
[quote="deathsoft"]
Вобщем попробуй в своем эмуле. Я так понимаю у тебя там уже все готово, нужно просто новые функции вывода звука заюзать через WASAPI и все, а вся подстройка получится автоматом.
Сперва надо во всем этом разобраться, и писать тесты.
Тили-тили тесто, как из WASAPI, ASIO и DirectSound выбрать невесту? )
Почитал статью про ASIO.
В общем, как я понимаю, использовать ASIO не рентабельно, т.к.
1) Далеко не все аудиокарты, особенно ширпотребовские, поддерживают ASIO аппаратно.
2) Те, что не поддерживают, проигывают ASIO через KS/WASAPI.
А использовать WASAPI тоже не айс, т.к.
1) Больше никаких системных и прочих звуков слышно не будет.
2) Могут повиснуть другие программы, пытающиеся выводить аудио в этот момент стандартным путем.
Получается, для корректности и совместимости остается все тот же DirectSound с гигантским буфером 10мс, и такой же грубой нотификацией.
[quote="dr.Titus"]
А использовать WASAPI тоже не айс, т.к.
1) Больше никаких системных и прочих звуков слышно не будет.
2) Могут повиснуть другие программы, пытающиеся выводить аудио в этот момент стандартным путем.
1. Если использовать в shared режиме, то другие программы прекрасно будут выводить и микшировать звук.
2. Ничего повиснуть не может, программы как проигрывали звук, так и будут его проигрывать, только звуковые данные будут идти вникуда (вера только проверял на проигрывателе foobar2000 с плугином WASAPI exclusive).
желательно сделать опцию shared/exclusive чтобы юзер сам для себя решил что ему нужно, чтобы эмуль монопольно и качественно проигрывал звук, или чтобы звук от эмуля микшировался с другими звуками (при этом еще и преобразование частоты дискретизации делается).
Для XP и 2003 использовать directsound/ks (тут просто альтернатив нету).
В vista и выше только WASAPI, т.к. directsound тут - это просто клиент WASAPI и выводит через него в shared режиме.
Если директсаунд клиент WASAPI, то почему имеет такую грубую нотификацию? Или просто так всем было удобнее?
В статье той написано, что KS - это до XP. Но может просто ошиблись.
Кстати, под XP KS мне так и не удалось оживить, на сколько я помню.
И вообще, в наше время, уже, наверное, нет смысла поддерживать XP. Или я ошибаюсь?
[quote="dr.Titus"]
В статье той написано, что KS - это до XP. Но может просто ошиблись.
KS - до висты, это 98/2000/XP/2003[quote="dr.Titus"]
Кстати, под XP KS мне так и не удалось оживить, на сколько я помню.
Все у тебя прекрасно работало, я тестировал на своем компе. Только у тебя был косяк - нельзя было выбирать выходы звуковухи (а их может быть очень много) и мне приходилось слушать через динамики, хотя основной выход у меня на наушники.[quote="dr.Titus"]
И вообще, в наше время, уже, наверное, нет смысла поддерживать XP. Или я ошибаюсь?
Ну это каждый сам для себя решает. Унриал на XP работает без проблем.
Переделай свой графический тест на WASAPI, интересно посмотреть там на стабильность параметров. И сорец приложи, чтобы я мог если что подкоректировать код, если там какие косяки с инициализацией звуковухи возникнут.
[quote="deathsoft"]
Все у тебя прекрасно работало, я тестировал на своем компе. Только у тебя был косяк - нельзя было выбирать выходы звуковухи (а их может быть очень много) и мне приходилось слушать через динамики, хотя основной выход у меня на наушники.
Странно, даже я не помню, как оно работало или не работало, а ты помнишь)[quote="deathsoft"]
Ну это каждый сам для себя решает. Унриал на XP работает без проблем.
Да у меня оно изначально планировалось, чтобы вообще на более ранних системах работало, т.к. писал еще в 2006 году.
Но сейчас XP что-то сильно стремительно уходит из оборота.
[quote="dr.Titus"]
Странно, даже я не помню, как оно работало или не работало, а ты помнишь)
Конечно помню, если я давал сорцы и следил за темой, у меня там был свой интерес.[quote="dr.Titus"]
Да у меня оно изначально планировалось, чтобы вообще на более ранних системах работало, т.к. писал еще в 2006 году.
Но сейчас XP что-то сильно стремительно уходит из оборота.
Ну я как то даже под NT4 унриал запускал, на том компе он тормозил правда сильно, звук пришлось отключить.
[quote="deathsoft"]
Конечно помню, если я давал сорцы и следил за темой, у меня там был свой интерес.
Интерес реализовался?
А у меня все же сохранились воспоминания, что звука мне так добиться и не удалось)
[quote="dr.Titus"]
Интерес реализовался?
Нет, сорцов то доработанных ты не выложил (той проги которую сделал с выбором звуковухи и печати логов). Я то надеялся взять код оттуда, чтобы не разбираться с ms сэмплом самому.[quote="dr.Titus"]
А у меня все же сохранились воспоминания, что звука мне так добиться и не удалось)
Потому что ты видимо выбирал не тот выход звуковухи, а динамики не переткал в другой выход, а я то сразу понял что играет не в тот выход и наушники переподключил.
Собственно твои тесты с кернель стримингом начались отсюда ГЯФ
Особо стоит обратить внимание на это сообщение та же клоака
Собственно интересует вот этот гяф графический тест переписанный на WASAPI.Отредактировано deathsoft (2016-11-03 20:01:56)
Вот мой тест KS, который гонял в 2013 году - Ссылка
Пароль: ks
Если только разберешься, ибо я забыл уже, что там и к чему)
[quote="dr.Titus"]
Вот мой тест KS, который гонял в 2013 году - Ссылка
Пароль: ks
Если только разберешься, ибо я забыл уже, что там и к чему)
Спасибо.
Скачал и поставил foobar2000. Потом в него плагины ASIO и WASAPI.
ASIO у меня не заработала, говорит, что частота семплирования не та. А чего не та, и где менять, не ясно.
А WASAPI заработала, и звук через нее получше, чем через стандартный системный миксер, хотя системный у мена настроен на 24 бита 96кГц.
На ударных всяких высокочастотных тарелочках стало заметно слышно лучше качество.
Единственное, не понятно, чем отличается WASAPI event от WASAPI push.
[quote="dr.Titus"]
Стал искать статьи по WASAPI на русском языке
Ну, тут очень обзорно, частично устаревшая инфа (AIMP уже давно WASAPI exclusive поддерживает) и в этой статье ни слова о программировании (а на картинке даже не показан direct sound как клиент WASAPI shared)
[quote="dr.Titus"]
Единственное, не понятно, чем отличается WASAPI event от WASAPI push.
Надо всегда использовать event, push - для тех карт которые не поддерживают event и там синхронизация абы какая, а event - синхронизация по проигрыванию части сэмплов в буфере (сигнализируется объект типа event, что надо запихнуть в карту новые данные). push - насколько я понял - тупо по системному таймеру кидает в карту данные, если карта данные принять не может, то делает sleep на сколько то там, потом опять пытается сунуть новую порцию.
[quote="dr.Titus"]
ASIO у меня не заработала, говорит, что частота семплирования не та. А чего не та, и где менять, не ясно.
Менять в настройках драйвера звуковухи (для realtek карт это иконка в трее, там есть закладка default format)(частота по умолчанию, у меня стоит 192кгц, 24бита). В foobar2000 для asio есть дополнительне настройки прямо в плеере, там вызывается панель настроек asio драйвера. Если у тебя asio не настоящий, а asio4all, то толку от него ноль, но просто преобразует интерфейс WASAPI в интерфейс ASIO, чтобы программы расчитанные на ASIO могли хоть как то работать.
Если интересно, могу скинуть asio sdk, в свое время спиздил у штейнберга, эти мудаки выдают сдк только при регистрации и чуть ли не под какое то там nda.Отредактировано deathsoft (2016-11-04 12:01:00)
У меня, кстати, звуковуха достаточно неплохая - Audigy II что ли, или типа того. В свое время дорого стоила.
И усилок хороший YAMAHA. И колонки S90. Через это все достаточно хорошо слышно качество.
Да и слух у меня хороший музыкальный)
[quote="dr.Titus"]
И усилок хороший YAMAHA. И колонки S90. Через это все достаточно хорошо слышно качество.
Да и слух у меня хороший музыкальный)
Это все не важно, подключаешь анализатор спектра на выход и смотришь что там. И сразу ни усилок ни колонки не влияют. Если нет анализатора спектра, можно звуковуху закольцевать и использовать программу RMAA. Вот статейка http://www.aimp.ru/blogs/?p=214
[quote="deathsoft"]
Если интересно, могу скинуть asio sdk, в свое время спиздил у штейнберга, эти мудаки выдают сдк только при регистрации и чуть ли не под какое то там nda.
Скинь.
Хотя, вряд ли в ASIO есть особая надобность, раз оно поддерживается не везде, тогда как WASAPI везде, и качество через него при эксклюзивном режиме с точностью до бита.
[quote="dr.Titus"]
Хотя, вряд ли в ASIO есть особая надобность, раз оно поддерживается не везде, тогда как WASAPI везде, и качество через него при эксклюзивном режиме с точностью до бита.
Настоящее ASIO может дать существенно меньшие задержки, т.к. оно интегрированно в кишки драйвера (все зависит от того как производитель звуковухи написал драйвер и интегрировал туда ASIO).
Вот sdk версии 2.3 http://rgho.st/7FlSbQbHG
Попробуй с реальным ASIO, может там можно супер точно получить позицию буфера.
Спасибо!
Я склоняюсь к универсальному способу, чтобы обычный человек себе поставил, и у него сразу все работало) Без танцев с бубном вокруг АСИО или чего-то там еще)
[quote="dr.Titus"]
Я склоняюсь к универсальному способу, чтобы обычный человек себе поставил, и у него сразу все работало) Без танцев с бубном вокруг АСИО или чего-то там еще)
Так надо несколько способов, как во всех нормальных плеерах. А юзер сам выберет, что ему лучше.
Кстати, скорее всего моя Audigy 2 поддерживает ASIO, судя по тому, что пишут в инетах.
Код:ASIOError ASIOGetSamplePosition (ASIOSamples *sPos, ASIOTimeStamp *tStamp);
Purpose:
Inquires the sample position/time stamp pair.
Notes:
In order to be able to synchronize properly, the sample position / time stamp pair must refer to the
*current block*, that is, the engine will call ASIOGetSamplePosition() in its bufferSwitch()
callback and expect the time for the first sample of the current block. Thus, when requested in the
very first bufferSwitch after ASIOStart(), the sample position should be zero, and the time stamp
should refer to the very time where the stream was started. It also means that the sample position
must be block aligned. The driver must ensure proper interpolation if the system time can not be
determined for the block position. The driver is responsible for precise time stamps as it usually has
most direct access to lower level resources. Proper behavior of ASIOGetSamplePosition() and
ASIOGetLatencies() are essential for precise media synchronization!
Т.ч. судя по всему есть возможность получать точную позицию.
[quote="dr.Titus"]
Кстати, скорее всего моя Audigy 2 поддерживает ASIO, судя по тому, что пишут в инетах.
Напиши простенький тест, интеренсо же, какая точность через реальный ASIO, может существенно лучше чем через WASAPI будет.
Страницы Назад 1 … 13 14 15 16 17 … 22 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
ZXAAA → PC-ZX Staff, Emmulator's → Unreal+Youtube. И про проблемы синхронизации в эмуляторах.