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

User Tag List

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

Тема: перемещение по семплу

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Exclamation перемещение по семплу

    Приветствую. Возникла необходимость загрузить и проиграть MOD файл на Спринтере. Скачал несколько мануалов по формату этого файла. В целом, формат понятен, есть пара моментов, но не страшно. Вопросы возникают на следующих моментах:
    1. Для проигрывания сэмпла на какой то ноте на амиге используются периоды которые, как я понимаю, используются для Паулы. На машинах без Паулы используют формулу для преобразования периода в частоты, которые и дают те самые ноты. Если я верно понимаю, то для проигрывания сэмпла с более высокой нотой (частотой) производится выборка данных с пропуском скольких-то байт. Для проигрывания на более низких нотах, наоборот, байты дублируются. Хотелось бы понимать, как эти периоды и частоты преобразовать в алгоритм выборки данных. Т.е. когда некая частота и надо брать данные из сэмпла с пропуском или без. В общем, как корректно перемещаться по сэмплу для получения нужных нот.

    2. У мод файла есть 2 параметра - темп и кол-во ударов в минуту (BPM). При стандартных параметрах 6/125 получается ровно 50гц. хорошо. а как быть с параметрами вроде 3/125 и другими вариантами? а ещё скорость может меняться командами на каждом шаге. как корректно отслеживать эти скорости и "исполнять" трек на заданных скоростях?

    Много читал, но ответов на эти вопросы не смог найти. Может не там искал?

    Касательно проигрывания цифры на спринтере: для этого можно использовать CBL - Covox BLaster. Данный девайс умеет работать в одном из нескольких режимов, который можно настроить. Частоты от 8кгц до 96кгц, моно или стерео, 8бит или 16бит. У CBL есть своё FIFO и прерывания которые возникают по мере опустошения этого FIFO. его размер 128/256 байт, в зависимости от выбранного режима. Заполнять буфер можно через акселератор, т.е. очень быстро. Поскольку есть этот девайс, то проигрывать MOD файлы можно асинхронным методом, без привязок к таймингам машины.

    Может кто-нибудть помочь в данном вопросе? Спасибо!
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

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

  3. #2
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,813
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    149
    Спасибо Благодарностей получено 
    1,194
    Поблагодарили
    787 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    посмотри в сторону исходников прошивки GeneralSound

  4. #3
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я видел исходники в формате тасма, а из тасма экспорт работает с ошибками. несколько раз экспортил, всегда мусор получал. а ковыряться в тасме занятие не из приятных (как и в аласме). и если честно, в этих исходниках мне буыло трудно разбираться. особенно если учесть, что с цифрой ранее не работал...
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  5. #4
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,813
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    149
    Спасибо Благодарностей получено 
    1,194
    Поблагодарили
    787 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    я видел исходники в формате тасма, а из тасма экспорт работает с ошибками. несколько раз экспортил, всегда мусор получал. а ковыряться в тасме занятие не из приятных (как и в аласме). и если честно, в этих исходниках мне буыло трудно разбираться. особенно если учесть, что с цифрой ранее не работал...
    https://github.com/psbhlw/gs-firmware

  6. #5
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    тут я понял ещё меньше, чем в исходниках плеера для Enterprise 128.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  7. #6
    Master Аватар для Shaos
    Регистрация
    16.01.2005
    Адрес
    California, USA
    Сообщений
    807
    Спасибо Благодарностей отдано 
    100
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Через CBL не получится т.к. тебе ещё семплы складывать надо на разных скоростях - по идее самый разумный способ это на ходу складывать и играть в ковокс побайтно

    Я лично хотел под Спринтер написать STM-плеер, но сначала сеть
    Администратор сетевого сообщества nedoPC.org
    Урал 8/64К, Sp2000, ZX48K+, ZX16K (спалил), TS1000 (американский ZX81), TS2068, Дельта-С, 20 лет собираю ATM Turbo 2+
    Неспектрумы: Электроника МК-85 и МК-85М, ПК-01 Львов, БК-0011, Вектор-06Ц, Лик (спец), Апогеи, Radio-86RK SRAM 32K & 128K (всё ещё собираю)

  8. #7
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shaos Посмотреть сообщение
    Через CBL не получится т.к. тебе ещё семплы складывать надо на разных скоростях - по идее самый разумный способ это на ходу складывать и играть в ковокс побайтно

    Я лично хотел под Спринтер написать STM-плеер, но сначала сеть
    всё в точности наоборот - у нас достаточно мощей для проигрывания мода в асинхронном режиме. для синхронного как раз все мощности улетят в трубу при подгонке таймингов, аля пентагоны. оно мне надо?
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  9. #8
    Veteran Аватар для krotan
    Регистрация
    30.08.2010
    Адрес
    Санкт-Петербург
    Сообщений
    1,263
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    159 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Темп имеет отношение к плавно изменяющимся характеристикам звука, например громкости, тона...
    На самом деле эти характеристики меняются ступенчато, а тон означает сколько ступенек между соседними строками.
    Например громкость понижается при темпе 6. Это значит, что при переходе от одной строчке к следующей громкость будет ступенчато понижена 6 раз.

  10. #9
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krotan Посмотреть сообщение
    Темп имеет отношение к плавно изменяющимся характеристикам звука, например громкости, тона...
    На самом деле эти характеристики меняются ступенчато, а тон означает сколько ступенек между соседними строками.
    Например громкость понижается при темпе 6. Это значит, что при переходе от одной строчке к следующей громкость будет ступенчато понижена 6 раз.
    а что на счёт семпла? как ноты играть? как двигаться по семплу в зависимости от ноты (периода или частоты)?
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

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

    По умолчанию

    у тебя есть адрес в сэмпле 16 бит и целая часть и 16 бит дробная часть (для масштабирования).
    ты по формулам вычисляешь период приращение. 16 бит целая часть ( 0 если проигрывать медленнее и обычно не более 15) и дробная часть.
    На каждой выборке ты прибавляешь к указателю дробную и целую часть периода приращение и получаешь новый адрес смещения.
    Вот в моих исходниках как я это делал, заполнение 256 байт буфера.
    Код:
     SAMPLBUFF
             DUP 256    // повторить фрагмент до EDUP - 256 раз
             add hl,bc   // складываем дробные части
             exx           // переключаем набор регистров
             adc hl,bc  // складываем целые части, с учетом переноса от сложения дробной части
             ld a,(hl)    // читаем байт сэмпла
             ld (de),a   // кладем в буфер
             inc e        // увеличиваем адрес буфера на 1
             exx          // переключаем набор регистров
             EDUP       //
             ret
    сами исходники в теме выложены

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

    Sayman (20.05.2021)

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

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

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

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

Похожие темы

  1. ATM Turbo 1 4.50 перемещение по меню
    от blackinwoman в разделе ATM
    Ответов: 6
    Последнее: 20.11.2018, 18:16
  2. Перемещение головки дисковода
    от newart в разделе Программирование
    Ответов: 37
    Последнее: 01.03.2012, 20:48

Ваши права

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