Ну да, 'if we look', 'also notice the hard edges'. Интересно, а что произойдёт со СПЕКТРОМ сигнала, когда ты его линейно или ещё как проинтерполируешь? Кстати второй пример там некорректен, там явно есть частоты с F>8кгц.Цитата:
Сообщение от Shiru
Вид для печати
Ну да, 'if we look', 'also notice the hard edges'. Интересно, а что произойдёт со СПЕКТРОМ сигнала, когда ты его линейно или ещё как проинтерполируешь? Кстати второй пример там некорректен, там явно есть частоты с F>8кгц.Цитата:
Сообщение от Shiru
Нет, для действительно качественной передискретизации не нужна никакая интерполяция, ни с мегаточностью, ни с гигаточностью. Нужна просто правильная цифровая передискретизация и фильтрация. Какая - я уже писал. Всё остальное - один большой фейк, от неспособности ставить произвольную частоту семплирования =)Цитата:
Сообщение от Mike
И ещё в догонку - как интерполировать 37500/1.5=25000 Гц семпл в 37500 гц?
ну вы, товарищи, даёёёте :/ спорите о том, чего даже не видели, не то что слышали...
я ГС программил, и могу вам на 100% сказать, что:
1. Интерполяция там есть линейная (и не надо тут заливать по поводу послушать эмуль и сравнить басс.длл! если хотите - возтмите рифф трекер и послушайте семплы на низких нотах... да че там, на реальных ГС даже слышно, что она есть);
2. Не следует понимать "как успеется" в том смысле, что не хватит быстродействия. по-моему, это всего лишь означает, что она может проводиться через раз от семпла к семплу (по обьективным причинам, так как при "передискретизации", например, с 25000 на 37500, средний отсчет будет вставляться не всегда, ибо это невозможно, и это правильно);
3. Int в ГС приходит с частотой 37500Гц (гадаете тут че-то, даже не почитав написанные уже давно статьи в популярных журналах). Значения в ЦАПы выкидываются чтением из определенной области памяти. это удобно! там создается буфер готовых данных, т.е. именно тех, которые нужно выкидывать в ЦАПы с частотой 37500. и 320 тактов, для того, чтобы прочитать память... этого хватает;
4. А мод ГС интерпретирует тоже нормально. ему не надо укладываться в 320 тактов, у него времени вагоон! ему, главное, подготовить новый буфер до того, как проиграется старый (при коротких циклах в сэмплах он не успевает, а потому тормозит, и это тоже было задокументировани очень давно!).
что касается линейной интерполяции. по смыслу - это лажа! это неправильно! да, звук перестаёт звинеть, но это неправильно. ГС успевает её считать запросто, ниче сложного в линейной нет, по таблицам всё делается быстро (у меня в R.A.P.е в реальном времени тоже считается, всё путём). и всякие сплайновые интерполяции - это тоже лажа для звука!
а какая должна быть правильная интерполяция? читайте SE#2, статью про музыку. такое чувство, что многие из пишуших здесь ничего и не читали, а было столько полезного написано :/
Каков размер буфера подготовленных для вывода в ЦАПы данных? Я как не прикидывал, не получается у меня в рамках GS успеть интерпретировать модуль и подготовить буфер (да ещё чтоб с линейной интерполяцией)!Цитата:
Сообщение от psb
а слабо полностью проэмулировать эмулятор, то есть играть mod/xm/s3m/it в режиме "высокоуровневой эмуляции" :) :) ;)Цитата:
Сообщение от Shiru
unreal тоже самое делает, и ничего, особенно на процессор не жалуетсяЦитата:
Сообщение от lvd
Скорости не хватит.Цитата:
Сообщение от SMT
А слабо YM2203 проэмулировать? :) :) ;)Цитата:
Сообщение от SMT
SMT это сделать не слабо. Исходники эмуляторов почти всей линейки YM-чипов открыты (см. исходники MAME). Только смысл?Цитата:
Сообщение от lvd
А вообще, исходники US также открыты - так что бери и прикручивай, если действительно надо:)
с ходу не могу сказать, но, думаю, удобно было бы делать буфер на 256 байт на каждый канал. т.е. один создаем, другой играем.Цитата:
Сообщение от Dr.Lion/RSM
интерполяция делается быстро, если по таблицам.
а что долгого в интерпретации модуля?
и это... исходники же открыты! прошивка тоже есть, посидеть часик-два - будут все ответы на твои вопросы...