Важная информация

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 34

Тема: Нужны звуковые эффекты из Batty побитно

  1. #11
    Member
    Регистрация
    09.09.2024
    Адрес
    г. Рига, Латвия
    Сообщений
    45
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    10 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Есть такой раздел знаний - Цифровая обработка сигналов. Согласно ей ФНЧ в эмуляторе в звуковом тракте нужен.
    Какое отношение имеет ЦОС к вопросу нужности ФНЧ в эмуляторе - вообще не понял...
    Вопрос был про ФНЧ именно в самом эмуляторе. Так как ФНЧ в звуковом тракте хозяйской системы (Win) естественно и так имеется. Зачем ещё?
    Цитата Сообщение от ivagor Посмотреть сообщение
    Примеры того, что получается, когда ФНЧ нет или, чаще, когда его параметры не соответствуют решаемой задаче, к сожалению все еще можно слышать в эмуляторах, хотя со временем ситуация становится лучше.
    Пример я слышу в своём эмуляторе - качество звука (субъективно) аналогично тому, что было в железном "Вектор-06Ц". Там ФНЧ можно считать, что тоже практически нет.

    И судя по тестам разных программ, у меня складывается ощущение, что в эмуляторе нужен ФВЧ, а не ФНЧ. Вот про это было бы интересно узнать - реализуют ли ФВЧ в своих эмуляторах авторы? Такое ощущение, что реализуют.
    Последний раз редактировалось rst; 21.09.2024 в 13:29.

  2. #12
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,120
    Спасибо Благодарностей отдано 
    711
    Спасибо Благодарностей получено 
    2,093
    Поблагодарили
    1,185 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Частота дискретизации звука, который способен сгенерировать бипер в спектруме или векторе, в разы больше частоты дискретизации звука, с которой работает операционная система. Значит эмулятор должен делать децимацию и использовать при этом ФНЧ.

  3. Этот пользователь поблагодарил ivagor за это полезное сообщение:

    Barmaley_m (08.12.2024)

  4. #13
    Member
    Регистрация
    09.09.2024
    Адрес
    г. Рига, Латвия
    Сообщений
    45
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    10 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Частота дискретизации звука, который способен сгенерировать бипер в спектруме или векторе, в разы больше частоты дискретизации звука, с которой работает операционная система. Значит эмулятор должен делать децимацию и использовать при этом ФНЧ.
    Это не так. Путаете тёплое с мягким. Децимация тут не нужна. Достаточно сделать передискретизацию (ресэмплинг) на частоту аудио-потока хозяйской ОС. Что и делает мой эмулятор.
    Передискретизацию можно делать разными алгоритмами. Мой эмулятор использует простейшую - кусочно-линейной интерполяцией. Думаю - этого вполне достаточно для эмулятора.

    А вставка сэмплов->ФНЧ->децимация - это тупое в лоб ("классическое") решение передискретизации. Которое практически применимо только если исходная частота и целевая частота - имеют примерно похожее разложение на простые сомножители. Что на практике редко бывает.

    PS: Вобщем - ФНЧ в эмуляторе не нужен. Возможно нужен ФВЧ. А также (возможно) - нужна плавная подстройка коэффициента передискретизации.
    Последний раз редактировалось rst; 21.09.2024 в 15:19.

  5. #14
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,120
    Спасибо Благодарностей отдано 
    711
    Спасибо Благодарностей получено 
    2,093
    Поблагодарили
    1,185 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rst Посмотреть сообщение
    Путаете тёплое с мягким. Децимация тут не нужна. Достаточно сделать передискретизацию (ресэмплинг) на частоту аудио-потока хозяйской ОС. Что и делает мой эмулятор.
    Смешно, спасибо за юмор.
    Цитата Сообщение от rst Посмотреть сообщение
    кусочно-линейной интерполяцией
    Здесь и "спрятан" ФНЧ.
    Последний раз редактировалось ivagor; 21.09.2024 в 16:41.

  6. Этот пользователь поблагодарил ivagor за это полезное сообщение:

    Barmaley_m (08.12.2024)

  7. #15
    Veteran
    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,043
    Спасибо Благодарностей отдано 
    90
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    87 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Зависит от качества обработки сигнала эмулятором. Есть ли там для бипера правильный ФНЧ или нет.
    А звуковом редакторе нельзя обработать звуки? и сделать их более приятными и мягкими?
    Вообще это из раздела "овчинка выделки не стоит", и вот все эти сломанные копья не нужны.

  8. #16
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    48 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dexus Посмотреть сообщение
    А звуковом редакторе нельзя обработать звуки? и сделать их более приятными и мягкими?
    Если эмулятор неправильный (без ФНЧ) - то нельзя. При отсутствии в эмуляторе ФНЧ его выходной аудиосигнал имеет специфические нелинейные искажения, известные под названием "Aliasing". Эти искажения необратимые, их устранить в звуковом редакторе или другим способом, в общем случае, невозможно.

    - - - Добавлено - - -

    Цитата Сообщение от rst Посмотреть сообщение
    Какое отношение имеет ЦОС к вопросу нужности ФНЧ в эмуляторе - вообще не понял...
    Самое прямое. ЦОС отвечает на вопросы, что такое фильтр, зачем он нужен, и что происходит, если его не использовать, либо его параметры неподходящие.

    Эмулятор, генерируя звук, занимается цифровой обработкой сигналов, хочешь ты этого или нет. Даже если эта обработка с виду простая, и кажется, что ее вообще нет. Если знаешь теорию - то знаешь достоинства и недостатки применяемого метода обработки, и можешь при необходимости применить другой метод, свободный от нежелательных недостатков. Ну, а если не знаешь - то и получаются эмуляторы, которым медведь на генерацию звука наступил.
    Цитата Сообщение от rst Посмотреть сообщение
    Вопрос был про ФНЧ именно в самом эмуляторе.
    Да, именно в эмуляторе. Я и Ivagor говорили об одном и том же. В эмуляторе. Нужен. Фильтр. Обязательно.
    Цитата Сообщение от rst Посмотреть сообщение
    Так как ФНЧ в звуковом тракте хозяйской системы (Win) естественно и так имеется. Зачем ещё?
    Затем, что частота дискретизации исходного сигнала (состояния порта #FE) - 3,5МГц. Это во много раз выше частоты дискретизации выходного сигнала (44100 или 48000Гц на звуковой карте).

    Что будет, если при таком уменьшении частоты дискретизации не применять ФНЧ? Варианта 2.
    1) Если в исходном сигнале были частоты выше 22050 или 24000Гц - то будет алиасинг.
    2) Если в исходном сигнале высоких частот не было - то ничего не будет.

    Есть ли в сигнале бипера частоты выше 22050 или 24000Гц? Конечно есть. Простой пример - вычисли преобразование Фурье от прямоугольного сигнала на какой-нибудь звуковой частоте типа 440Гц. Количество гармоник будет бесконечным, так что и частоты выше 22050Гц будут. В дискретном случае, с дискретизацией на 3,5МГц, гармоники будут вплоть до 1,75 МГц.

    Что нужно сделать, чтобы в сигнале таких частот не было? Правильно, ФНЧ.

    ФНЧ надо применять до того, как звук будет преобразован к частоте дискретизации операционной системы. После - уже поздно. Поэтому то, что в ОС и где-то там еще есть фильтры - это не значит, что тебе свой фильтр делать не надо.
    Цитата Сообщение от rst Посмотреть сообщение
    Пример я слышу в своём эмуляторе - качество звука (субъективно) аналогично тому, что было в железном "Вектор-06Ц". Там ФНЧ можно считать, что тоже практически нет.
    Ключевые слова - "Субъективно" и "практически". Ты наверняка не измерял уровень искажений, а на слух не научился еще, к чему надо прислушиваться. А измерения провести просто.
    1) Выполняешь команду "BEEP" в бейсике, генерируя какой-нибудь музыкальный звук. Эта команда должна генерировать чистые прямоугольные сигналы нужной частоты.
    2) Сохраняешь звуковой файл из эмулятора
    3) Открываешь его в звуковом редакторе
    4) Смотришь спектральный анализ. Видишь спектральные пики не только на базовой частоте звука и ее гармониках, а еще и кучу лишних пиков где попало. Это и есть алиасинг.

    Если сделать в эмуляторе нормальный ФНЧ и повторить эксперимент - то спектральные пики будут только на базовой частоте звука и ее гармониках. На слух звук будет при этом чистым и звонким. Но я понимаю, для неопытного уха может быть непонятно, на какие аспекты звука надо обращать внимание.

    На железном же компьютере выходной сигнал аналоговый. В нем присутствуют, в том числе, ультразвуковые частоты вплоть до нескольких мегагерц. Но ты их не слышишь. А те, что слышишь (аудиочастоты) - они чистые и не содержат посторонних спектральных линий. Если, конечно, усилитель и колонки не совсем ужасные.
    Цитата Сообщение от rst Посмотреть сообщение
    Вот про это было бы интересно узнать - реализуют ли ФВЧ в своих эмуляторах авторы? Такое ощущение, что реализуют.
    Реализуют. ФВЧ тоже нужен. Но не так критично. Он нужен для удаления из сигнала постоянной составляющей и оптимального использования динамического диапазона выходного сигнала. ФВЧ первого порядка вполне достаточно. И этот ФВЧ может работать на последнем этапе обработки сигнала, уже на частоте дискретизации звуковой карты.

    - - - Добавлено - - -

    Цитата Сообщение от rst Посмотреть сообщение
    Децимация тут не нужна. Достаточно сделать передискретизацию (ресэмплинг) на частоту аудио-потока хозяйской ОС. Что и делает мой эмулятор.
    Децимация - это частный случай передискретизации. Я думаю, автор имел здесь в виду то, что децимация также подразумевает использование соответствующего ФНЧ. Для высококачественной передискретизации (более общий случай) ФНЧ тоже, конечно, нужен.
    Цитата Сообщение от rst Посмотреть сообщение
    Передискретизацию можно делать разными алгоритмами. Мой эмулятор использует простейшую - кусочно-линейной интерполяцией.
    Кусочно-линейная интерполяция, если ее рассмотреть с точки зрения ЦОС, неявно применяет ФНЧ. Но это плохой ФНЧ, который недостаточно подавляет высокие частоты. Как следствие - алиасигнга становится меньше, чем если совсем без фильтра. Но все же он остается, и достаточно много. Качество звука все равно плохое.
    Цитата Сообщение от rst Посмотреть сообщение
    Думаю - этого вполне достаточно для эмулятора.
    Нет, недостаточно. С хорошим фильтром можно получить значительно лучшее качество звука, и разница будет явно ощутима на слух.
    Цитата Сообщение от rst Посмотреть сообщение
    А вставка сэмплов->ФНЧ->децимация - это тупое в лоб ("классическое") решение передискретизации. Которое практически применимо только если исходная частота и целевая частота - имеют примерно похожее разложение на простые сомножители. Что на практике редко бывает.
    Передискретизация и ФНЧ бывают разные. В том числе есть решения, комбинирующие ФНЧ и более сложную, чем кусочно-линейную, интерполяцию. Таким образом можно с высоким качеством передискретизировать сигналы с произвольным (в том числе иррациональным) соотношением исходной и целевой частот дискретизации. Рекомендую почитать следующую статью: Polynomial Interpolators for High-Quality Resampling of Oversampled Audio. Без соответствующей теоретической подготовки, может, и не все поймешь, но попробуй хотя бы реализовать оттуда пару-тройку алгоритмов.

    - - - Добавлено - - -

    При теоретическом рассмотрении, в конечном счете, любая передискретизация может быть сведена к вставке нулей, потом ФНЧ, а потом выбрасыванию ненужных сэмплов. И именно так и следует теоретически рассматривать весь процесс. Но "в лоб" это делают редко, потому что слишком высокие вычислительные затраты. Как на расчет коэффициентов фильтра, так и на последующую фильтрацию.

    Есть множество способов оптимизировать реализацию фильтра и всего процесса после того, как выполнены теоретические расчеты. Применяются неявные фильтры (как в случае кусочно-линейной или полиномиальной интерполяции), интерполяция коэффициентов фильтра (структуры фильтров Фарроу), полифазное разложение. Можно воспользоваться кусочным постоянством фильтруемого сигнала (я это впервые в эмуляторном мире реализовал в 2002г). Можно рассматривать фильтрацию в непрерывном времени (хотя расчеты ведутся, казалось бы, для дискретного времени). После оптимизации алгоритмы перестают быть внешне похожими на какую-либо фильтрацию, особенно для несведущего. Но делают они именно ее. И делают эффективно.
    Последний раз редактировалось Barmaley_m; 08.12.2024 в 03:39.

  9. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  10. #17
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Сообщений
    1,718
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dexus Посмотреть сообщение
    А звуковом редакторе нельзя обработать звуки? и сделать их более приятными и мягкими?
    можно, но для этого нужно чтобы файл был записан на родной частоте дискретизации, т.е. для бипера - это 3.5 МГц тактовой Z80. Т.е. если записать звуковой файл с частотой дискретизации 3.5 МГц, то можно потом обрабатывать его в звуковых редакторах и даже лучше чем это сделает эмулятор.

    А вот если вначале сделать децимацию скажем до 48 кГц, то при этой операции происходит безвозвратная потеря информации об исходном сигнале на частоте дискретизации 3.5 МГц и после этого уже восстановить её будет невозможно.

    Если перед децимацией не был применен хороший ФНЧ, то применять его после децимации будет уже бесполезно. Это связано с тем, что при децимации частоты выше границы Найквиста заворачиваются гармошкой в новую полосу Fs/2, где Fs - это новая частота дискретизации. Т.е. ВЧ компоненты, которые были не слышны на исходной частоте дискретизации, после децимации будут размазаны по слышимой полосе.Вот эти завернутые ВЧ компоненты и называются алиасами.

    Именно поэтому и нужен хороший ФНЧ перед децимацией - чтобы вырезать из сигнала все частоты выше новой Fs/2, тогда при сворачивании частот по полезному сигналу не будут размазаны те компоненты, которые перед децимацией были на высоких частотах которые не слышны.
    Последний раз редактировалось ZXMAK; 08.12.2024 в 09:06.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  11. Этот пользователь поблагодарил ZXMAK за это полезное сообщение:

    Barmaley_m (15.12.2024)

  12. #18
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,027
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    166
    Спасибо Благодарностей получено 
    1,310
    Поблагодарили
    865 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вспомнилось, что если эмуль поддерживает имитацию выгрузки на ленту (на слух звучит вполне похоже)
    это совсем не означает возможность загрузить эти данные в реальный спек.
    хотя например в SpecEmu можно включить RealTapeMode (успешная передача данных)

  13. #19
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,182
    Спасибо Благодарностей отдано 
    1,568
    Спасибо Благодарностей получено 
    2,105
    Поблагодарили
    826 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    вспомнилось, что если эмуль поддерживает имитацию выгрузки на ленту (на слух звучит вполне похоже)
    это совсем не означает возможность загрузить эти данные в реальный спек.
    Ты имеешь в виду, что эмуль может применить БИХ-фильтр, который крутит фазой, портя таким образом сигнал?
    Да, на слух это будет неотличимо скорее всего от неиспорченной записи.

  14. #20
    Veteran
    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,043
    Спасибо Благодарностей отдано 
    90
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    87 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Barmaley_m,
    > При отсутствии в эмуляторе ФНЧ его выходной аудиосигнал имеет специфические нелинейные искажения, известные под названием "Aliasing".

    Это разве что в плохом эмуляторе не будет никакого ФНЧ. В том же старом добром Unreal он вполне приличный (свертка по х64 оверсемплинга)

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Звуковые эффекты AY в играх
    от goblinish в разделе Игры
    Ответов: 31
    Последнее: 21.07.2015, 04:43
  2. Ответов: 24
    Последнее: 18.02.2015, 08:11
  3. Куплю звуковые чипы: YM2612, SN76489
    от evgs в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 25.08.2010, 14:33
  4. Batty
    от CityAceE в разделе Игры
    Ответов: 1
    Последнее: 14.03.2005, 05:55

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •