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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Таблично-волновой синтез.

  1. #1

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Таблично-волновой синтез.

    Код:
    ORG 32768
    
    sin_table:
            DB 8,9,11,12,13,14,14,15,15,14,14,13,12,11,9,8
            DB 7,5,4,3,2,1,1,0,0,1,1,2,3,4,5,7
    
            LD HL, sin_table
            LD BC, 0xFFFD
    
            ; Инициализация микширования
            LD A, 7
            OUT (C), A
            LD BC, 0xBFFD
            LD A, 0xFF
            OUT (C), A
    
    main_loop:
            ; Установка громкости
            LD BC, 0xFFFD
            LD A, 8
            OUT (C), A
            LD BC, 0xBFFD
            LD A, (HL)
            OUT (C), A
    
            ; Обновление индекса
            INC HL
            LD A, L
            AND 31
            OR sin_table & 255
            LD L, A
            LD A, H
            AND sin_table >> 8
            LD H, A
    
            ; 16-битная задержка (BC = 1000)
            LD BC, 1000
    delay:  DEC BC
            LD A, B
            OR C
            JR NZ, delay
    
            JR main_loop
    Что тут не так?
    Динамик будто после каждого кванта таблицы становится на своё исходное нулевое состояние. Нужен какой-то сигнал строба, чтоб громкость была на заданном значении до следующей выборки?

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

    Также интересует, каким макаром можно реализовать плавное затухание амплитуды.
    Чтоб значение таблицы при определённой итерации уменьшалось на одно значение.
    Своего родна недо-ADSR.

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

  3. #2

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Что тут не так?
    Динамик будто после каждого кванта таблицы становится на своё исходное нулевое состояние. Нужен какой-то сигнал строба, чтоб громкость была на заданном значении до следующей выборки?
    Не совсем понятно, что понимается под тем что "динамик становится на своё исходное нулевое состояние"?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  4. #3

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Не совсем понятно, что понимается под тем что "динамик становится на своё исходное нулевое состояние"?
    Ну это такая задумка и была (правда нужно ещë побороть нелинейность уровней громкости)... а это оно реально так и получается, да? Прост я в замедленном режиме выставил максимальный delay, и слышу нарастающие и затухающие щелчки. Словно между ступеньками есть провалы вниз.

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

    и... почему на другом канале горбы фоном? Что это за наводка... нипанятна.

  5. #4

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Что тут не так?
    и... почему на другом канале горбы фоном? Что это за наводка... нипанятна.
    это в эмуляторе эмулируется взаимопроникновение каналов
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  6. #5

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Не совсем понятно, что понимается под тем что "динамик становится на своё исходное нулевое состояние"?
    Смотрю на эту осциллограмму, и сердце кровью обливается. Получается что первые ступенек, эдак, пять - тупо бесполезны, так как едва ли слышны на фоне остальных уровней.

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

    вместо четырëх бит получаем эффективных 2.5 бита.

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

    Мне интересно, а как вот во всякие сэмплтрекеры, в демосцены и тд загоняли сэмплы.
    Как из условного wav получить табличку с учëтом нелинейности DAC в AY ?

  7. #6

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Напоминаю: у человека слух не линейный, а логарифмический. См, откуда пошло, что громкость звука измеряется в децибелах, и как они определяются.

  8. #7

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    Напоминаю: у человека слух не линейный, а логарифмический. См, откуда пошло, что громкость звука измеряется в децибелах, и как они определяются.
    Хм.. а мне всегда казалось, что это издержки техпроцесса.

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

    Однако использование AY не подразумевалось, как сэмплер, в отличие от того же чипа аркадного автомата Pac-man. Так что коррекция сэмпла в любом случае нужна.

  9. #8

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно просто ближайшее значение выходной амплитуды брать, чтобы получалась минимальная ошибка с требуемой амплитудой - это минимизирует ошибки квантования.
    Более точно амплитуду можно получить за счет более высокой частоты сэмплирования.

    Вот как сигнал выглядит после наложения полосового фильтра 15 Гц - 20 кГц:
    Последний раз редактировалось ZXMAK; 04.04.2025 в 21:26.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

    ALKO(04.04.2025)

  10. #9

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    от как сигнал выглядит после наложения полосового фильтра 15 Гц - 20 кГц
    Ого! А послушать его можно wav`кой?

  11. #10

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Ого! А послушать его можно wav`кой?
    https://transfiles.ru/7oay1

    alco.asm - исходный код для генерации
    alco.psg - вывод в AY регистры записанный в PSG формате
    alco-panABC-raw.flac - результат на частоте сэмплирования AY эмуляции (432 кГц)
    alco-panABC-bandpass-15-20000.flac - результат после полосового фильтра 15 Гц - 20 кГц и децимации до сэмплрейта 48 кГц
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Синтез 3
    от andreysur в разделе Несортированное железо
    Ответов: 9
    Последнее: 03.10.2023, 08:05
  2. Синтез-М
    от Trunk17 в разделе Несортированное железо
    Ответов: 40
    Последнее: 18.07.2021, 15:15
  3. Ремонт Синтез 2
    от JNipper в разделе Несортированное железо
    Ответов: 53
    Последнее: 28.04.2017, 18:09
  4. подарю СИНТЕЗ 2
    от Олег85 в разделе Барахолка (архив)
    Ответов: 13
    Последнее: 07.01.2011, 11:17
  5. Синтез гласных
    от Krenon в разделе Музыка
    Ответов: 9
    Последнее: 13.06.2007, 19:51

Ваши права

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