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

User Tag List

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 21 по 30 из 54

Тема: Работа с трекерными модулями на ZX

  1. #21
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    2Bulba:
    посмотри музон Authors\CAT-MAN\stracker.stc
    он еще шел зашитым внутри одной из версий ST. так вот, он неправильно импортировался PT2 и PT3 (в частности ударные в начале врали безбожно). реала у меня давно нет, забыл как это должно звучать на самом деле хотелось бы узнать, сейчас воспроизведение этого музона в порядке?

    и ишшо: можно ли сделать в плеере поддержку 3.5мгц тактовой частоты?

  2. #22
    Activist
    Регистрация
    19.01.2005
    Сообщений
    291
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectre
    У меня был некий PT2.4, я его сейчас попытался найти, но не нашел. Зато нашел от него плэйер (см. вложение). Посмотри, совпадает ли он с твоим 2.4.
    Мне не с чем сравнивать Вернее есть, но я никогда не смотрел плеер от Phantom Family. Там же обычный PT2-формат модуля, просто адреса сэмплов, орнаментов и каналов паттернов не относительные, а абсолютные (т.е. модуль привязан к определенному адресу, я сейчас даже затрудняюсь сказать, когда именно осуществляется привязка - во время ихнего INIT, или еще в компиляторе).

    Цитата Сообщение от Spectre
    Сегодня вставил PT2 плэйер в квик, так убедился что надо единый плэйер делать: разные адреса таблицы анализаторов, позиций, названия мелодии, ... Куча лишних пересчетов иначе получается.
    Да, насчет позиций наверное потом лучше сделать простой счетчик, как ты и хотел раньше. А с названием - про него плеер ничего не знает. Также как не будет знать, что ты ему подсунешь - PT3 или PT2, функции детекта формата надо делать вне плеера.

    Такой вариант устроит:

    LD A,ТипМодуля ;0 - PT3, 1 - PT2
    CALL START

    ?

  3. #23
    Activist
    Регистрация
    19.01.2005
    Сообщений
    291
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    2Spectre:
    Вот, нашел у себя PT2.4PhF. Тот, что ты посылал, это обычный PT2. А в PhF уже на стадии компиляции модуль жестко привязывается к адресу компиляции, плюс можно выбрать ABC или ACB раскладки. Отличить модуль PhF от обычного PT2 очень просто - достаточно посмотреть адрес "нулевого" сэмпла: в стандартном PT2 он равен нулю (так как не используется), а в 2.4 PhF - некоторому ненулевому значению, которое дефакто и является адресом компиляции модуля. Достаточно отнять этот адрес от всех упомянутых выше указателей, чтобы модуль стал обычным PT2.

  4. #24
    Activist
    Регистрация
    19.01.2005
    Сообщений
    291
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    посмотри музон Authors\CAT-MAN\stracker.stc
    Я проверил в Vortex Tracker II (там прозрачный импорт в PT3 формат), вроде ошибок нет. Так что дело не в модуле, а в спектрумовских конвертерах-импортерах

    Гораздо интереснее этот модуль: Tr_Songs.7z/Other\Zx-music\STINOL.stc

    Он защищен от декомпиляции хитрым методом - все орнаменты (включая нулевой) смещают ноты на N ступенек, а для того, чтобы звучал нормально, вроде применена транспозиция всех патернов на теже N ступенек обратно. В результате, после декомпиляции, все ноты, которые играются с нулевым орнаментом, смещаются относительно других нот на N ступенек - получается какофония

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

  5. #25
    Member Аватар для MadCat!
    Регистрация
    17.01.2005
    Адрес
    Россия, Белгород
    Сообщений
    65
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb номер такущего сэмпла

    я вот давно такую штуку в плеере хочу: чтоб в где-то в памяти фиксировались номера семплов для каждого канала (а еще неплохо и флаг начала проигрывания сэмпла: т.е. как только сэмпл играет первый инт, там 1, следующий инт - 0). Это всё нужно для того, чтоб можно было фиксить эффекты не по счетчику времени, а по определенным сэмплам, например, под ударные и т.д. Вообще, можно более универсальную "цветомузыку" сделать.

    2 Sergey Bulba: такое в плеере будет? или оно никому больше не нужно?
    МультиАватар есть здесь

  6. #26
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bulba
    Да, насчет позиций наверное потом лучше сделать простой счетчик, как ты и хотел раньше. А с названием - про него плеер ничего не знает. Также как не будет знать, что ты ему подсунешь - PT3 или PT2, функции детекта формата надо делать вне плеера.

    Такой вариант устроит:

    LD A,ТипМодуля ;0 - PT3, 1 - PT2
    CALL START

    ?
    Лучше наоборот:
    CALL START
    LD A,(PLAYER+10)
    BIT n,A ;Тип Модуля 0 - PT3, 1 - PT2



    Для проигрывания и вывода инфы о мелодии нужно:

    1. Адрес таблицы громкости. Если плэйер будет единый эта таблица будет располагаться по фиксированному адресу (сейчас по разным).
    2. Адрес с позициями мелодии. Он нужен для вычисления длины мелодии в позициях и текущей позиции (для LD HL,(START+11):LD DE,-PT2ModuleAddress-131: ADD HL,DE). Можно сделать как длина мелодии в (PLAYER+11) и счетчик (PLAYER+12,13).
    3. Бит отображающий какой PT (2,3) у нас мелодия определилась (в PLAYER+10). Это нужно для вывода информации о мелодии.
    Последний раз редактировалось Spectre; 13.02.2005 в 14:10.

  7. #27
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #28
    Activist
    Регистрация
    19.01.2005
    Сообщений
    291
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectre
    Лучше наоборот:
    CALL START
    LD A,(PLAYER+10)
    BIT n,A ;Тип Модуля 0 - PT3, 1 - PT2
    Не, плеер я готов написать, а вот детектор - это пусть внешняя программа занимается, все равно она после загрузки файла анализирует его и решает, вызывать или не вызывать. Задача детекта неоднозначна, я за такое не возьмусь

    Цитата Сообщение от Spectre
    Для проигрывания и вывода инфы о мелодии нужно:
    1. Адрес таблицы громкости. Если плэйер будет единый эта таблица будет располагаться по фиксированному адресу (сейчас по разным).
    Не факт, но если надо именно так, то сделать можно.

    Цитата Сообщение от Spectre
    2. Адрес с позициями мелодии. Он нужен для вычисления длины мелодии в позициях и текущей позиции (для LD HL,(START+11):LD DE,-PT2ModuleAddress-131: ADD HL,DE). Можно сделать как длина мелодии в (PLAYER+11) и счетчик (PLAYER+12,13).
    Длину мелодии брать из формата (тут плеер не причем), а в +11 можно сделать просто счетчик позиций, хотя это тоже лишне. Я хочу написать плеер, а детект, визуализация и прочее - это уже каждый по своему все равно будет делать. Тебе достаточно счетчика позиций, кому-то нужно отслеживать сэмплы, кто-то хочет сделать счетчик строк - можно множество подобных идей реализовать. Мне хочется заниматься только проигрыванием.

    Цитата Сообщение от Spectre
    3. Бит отображающий какой PT (2,3) у нас мелодия определилась (в PLAYER+10). Это нужно для вывода информации о мелодии.
    Определяка внешняя, тут я уже высказался. Как сделаешь, так и будет В PLAYER+10 будет просто копия того, что внешняя программа и так уже знает.

  9. #29
    Activist
    Регистрация
    19.01.2005
    Сообщений
    291
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MadCat!
    я вот давно такую штуку в плеере хочу: чтоб в где-то в памяти фиксировались номера семплов для каждого канала
    Это можно сделать, могу подсказать, где какие команды добавить ;)

    Цитата Сообщение от MadCat!
    (а еще неплохо и флаг начала проигрывания сэмпла: т.е. как только сэмпл играет первый инт, там 1, следующий инт - 0).
    Ну, это уже почти в таком виде есть - Position In Sampe. В начале там ноль, потом инкеремент. Правда loop тоже может его обнулять. В общем то, если надо, подскажу где чего добавить ;)

    Цитата Сообщение от MadCat!
    Это всё нужно для того, чтоб можно было фиксить эффекты не по счетчику времени, а по определенным сэмплам, например, под ударные и т.д. Вообще, можно более универсальную "цветомузыку" ;) сделать.
    Ну в общем то, все что ты перечислил реализуемо с любым плеером после небольшой модификации ;)

    Цитата Сообщение от MadCat!
    2 Sergey Bulba: такое в плеере будет? или оно никому больше не нужно? ;)
    Ну мое мнение однозначно - прикладные задачи решает тот программист, который использует плеер в конечном продукте. На всех не угодишь, а если попытаться, то потеряем компактность и замедлим еще больше, и... все равно кому-то чего-то не хватит ;) Может я и не прав, но лично я за большее, чем просто плеер, не возьмусь, не хочу, чтобы удовольствие от программирования утонуло в рутине :)

    Оставим вне "стандартного" плеера детект, визуализацию, раскладку каналов, нивелирование различий AY/YM, подсчет длины модуля, да мало ли чего может еще понадобиться ;)

  10. #30
    Activist
    Регистрация
    19.01.2005
    Сообщений
    291
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    3 Mhz можно и влоб поставить в настройках. интересует именно 3.5 как на некоторых реалах (в частности у меня так было). на эмуле такой фич возможен.
    К следующей версии проверю - если переполнения не происходит, то увеличю диапазон до 3.5. Про исходники я не зря сказал - это наиболее реальный вариант на данный момент (чтобы не ждать следующую версию).

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Работа с STS5.7
    от DemiChron в разделе Программирование
    Ответов: 3
    Последнее: 24.07.2005, 21:14

Ваши права

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