Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Регистр 27H⇐ ПредыдущаяСтр 18 из 18
Регистр 27H управляет таймерами A и B и режимом канала 3 (6).
В нормальном режиме операторы канала используют смещение от целых множителей от одной частоты. В особом режиме каждый оператор имеет собственную частоту. Частота оператора 1 канала 3 в регистрах A2H и A6H. Частоты операторов 2, 3 и 4 канала 3 в регистрах A8H и ACH, A9H и ADH, AAH и AEH соответственно. Никто не использует таймеры, но Японской инструкции говорится:
• От переводчика: • Все-таки некоторые разработчики используют таймеры вопреки мнению автора. Один из примеров – “Sub Terrania”. Это обычно позволяет избежать зависимости темпа мелодии от режима PAL или NTSC. Это происходит потому, что единственным опорным таймером для звуковой системы является кадровое прерывание VINT. Его частота различна для PAL (50Hz) и NTSC (60Hz). Было бы правильным если разработчики Genesis подключили бы вывод 13 YM2612 на вывод 16 (NMT) Z80. Это немаскируемое прерывание, но его можно запретить внутри YM2612. Регистр 28H – Включение/выключение ноты
Регистр используется для генерации событий " Key on " и " Key off ". " Key on " это нажатие на клавишу синтезатора. " Key off " это отпускание клавиши. Последовательность извлечения ноты: 1 – установить параметры, 2 – “ key on ”, 3 - подождать, 4 – “ key off ”. Когда происходит “ key off ”, канал FM прекращает медленное затухание и начинает быстрое, которое описано в " RR" (Release Rate – Скорость отпускания).
При одиночной записи в регистр 28H все операторы устанавливаются одновременно для одного канала. Сега всегда устанавливает их все либо в 1 (вкл) либо в 0 (выкл). Используя особенности канала 3, наверно, возможно использовать для каждого оператора отдельную ноту, поэтому возможно включать и выключать их раздельно.
Значения битов каналов даны ниже:
При этом, каналы 1, 2 и 3 доступны через адреса 4000H и 4001H, а каналы 4, 5 и 6 – через 4002H и 4003H. Регистры 2AH/2BH – 8 битный ЦАП
В регистр 2AH записываются данные 8 бит PCM. Все тайминги (дискретизацию) должен делать процессор.
Если ЦАП включен (1 в D7 регистра 2BH), он заменяет канал 6. Только регистр канала 6 имеет значение для панорамирования ЦАП в левый/правый канал. Это регистр B4H. Диапазон регистров 30H+ – Расстройка/Множитель
Регистры 30H+ - 90H+ все однооператорные.
И DT1 (Detune - Расстройка), и MUL (Multiple - Множитель) задают частоту оператора – основную частоту в канале.
Значения MUL лежат в пределах от 0 до 15, и являются прямым множителем основной частоты, исключение составляет значение 0 – оно равно 1/2 от частоты. Итого: MUL=0 до 15 дает *1/2, *1, *2,... *15.
DT1 дает небольшую вариацию (расстройку) основной частоты *MUL. Старший бит DT1 (бит D6 в 30H+) является знаком, а остальные два - значением.
Где E – малое число.
TL (Total Level – Общая громкость) задает максимальную амплитуду огибающей, 0 – максимум и 127 – минимум. Изменение происходит с шагом примерно в 0.75 dB.
Чтоб сделать ноту мягче, нужно изменить только TL слотов (выходных операторов). Изменение других операторов приводит к получению вариаций ноты. Диапазон регистров 50H+ – Масштаб скорости/Скорость атаки
В регистрах 50H+ содержится RS (Rate Scaling – Масштаб скорости) и AR (Attack Rate – Скорость атаки). AR это начальная атака до максимального уровня TL (см. выше).
RS влияет на все скорости (AR, D1R, D2R и RR) одинаково. RS это угол нарастания и зависит от частоты (чем выше частота, тем больше угол, т.е. все процессы ускоряются).
Пять старших бит частоты (3 бита октавы т 2 бита ноты) называются KC (Key code – Код клавиши) и используются при расчете общего RS по формулам:
RS=0 -> Конечная скорость = 2 * Скорость + (KC/8) RS=1 -> Конечная скорость = 2 * Скорость + (KC/4) RS=2 -> Конечная скорость = 2 * Скорость + (KC/2) RS=3 -> Конечная скорость = 2 * Скорость + (KC/1) KC/N всегда округляется в меньшую сторону.
Так как все скорости изменяются с 0-31, то диапазон влияния RS на скорости меняется от малого (0-3) до большого (0-31).
Диапазон регистров 60H+ – Амплитудная модуляция/Первое затухание
D1R это скорость первого сильного затухания (см. выше). Как и все другие скорости, он зависит от RS.
AM это включение амплитудной модуляции, которая происходит генератором низкой частоты (LFO). Этот бит не действует, пока не будет включен сам генератор (LFO) и в регистре B4H+ значение AMS (Amplitude modulation sensitivity – Глубина амплитудной модуляции) не равна нулю.
Диапазон регистров 70H+ – Масштаб скорости/Скорость атаки
D2R это скорость второго медленного затухания, продолжающегося пока нажата клавиша. Диапазон регистров 80H+ – Вторая амплитуда/Скорость отпускания
D1L это вторичная амплитуда, которая устанавливается после первого сильного затухания. Она должна быть умножена на 8, если ее сравнивать с основной амплитудой (TL). Как и в случае с TL, чем больше число – тем меньше амплитуда (0 – максимальная).
RR это скорость отпускания. Быстрое затухание после отпускания клавиши. Все скорости это 5-ти битные числа, но здесь доступно всего 4 бита. Для соответствия, здесь используются 4 старших бита скорости отпускания, а младший бит всегда равен 1. Другими словами, умножьте на 2 и прибавьте 1.
Диапазон регистров 90H+ – Для частного использования
Этот регистр зарезервирован, и должен быть обнулен. Последние регистры в основном для одного канала. Каждый регистр утроен (см. выше).
Диапазон регистров A0H+, A4H+, A8H+, ACH+ - Частота и октава
Частота канала 1 в регистрах A0H и A4H. Частота канала 2 в регистрах A1H и A5H. Частота канала 3 в нормальном режиме (см. выше) в регистрах A2H и A6H.
Если канал 3 (6) в специальном режиме:
Частота 1 оператора канала 3 (6) в регистрах A7H и A6H Частота 2 оператора канала 3 (6) в регистрах A8H и ACH Частота 3 оператора канала 3 (6) в регистрах A9H и ADH Частота 4 оператора канала 3 (6) в регистрах AAH и AEH Частота – это 14-ти битное число, которое надо устанавливать сначала старшие биты, а затем младший байт (например, A4H потом A0H). Старшие 3 бита называются “блок”, которые дают октаву. Следующие 10 бит дают позицию в октаве, и возможна последовательность из 12 значений:
Эти числа нужно использовать в каждой октаве. Диапазон регистров B0H+ - Обратная связь/Алгоритм
Обратная связь – это степень возврата собственного сигнала 1-го оператора в него обратно. На схемах это отображают так:
Алгоритм – это тип взаимодействий операторов. Полную диаграмму алгоритмов смотрите выше.
Диапазон регистров B4H+ - Управление каналами/Глубина воздействия LFO
Регистр B4H содержит управление каналами и глубиной воздействия LFO на сигнал.
D7 - Левый канал, 1 включен, 0 выключен. D6 - Правый канал, 1 включен, 0 выключен.
Примечание: Стерео можно услышать только на наушниках.
AMS (Amplitude modulation sensitivity – глубина амплитудной модуляции) и FMS (Frequency modulation sensitivity – глубина частотной модуляции) это степень воздействия LFO на сигнал канала. Если LF0 выключен, этот регистр можно не устанавливать. Дополнительно, амплитудная модуляция включается на уровне оператора.
Тестовая программа
Вот тестовая программа начальной инициализации простой ноты " Grand Piano" (Большой Рояль)
Примечание: #1 Записывать сначала адрес в 4000H или 4002H, затем данные в 4001H или 4003H. #2 Перед записью адреса/команды ждать, пока бит D7 не станет 0 (по любому адресу из 4000H-4003H). #3 Всегда записывать сначала старшие биты/байт, а затем младшие биты/байт.
Программируемый генератор звука (PSG)
PSG содержит четыре звуковых канала, из них 3 канала тональных и один шумовой. Каждый из каналов содержит независимый регистр управления громкостью. PSG управляется через порт 7FH.
Управление громкостью для всех каналов происходит записью следующих байт в порт 7FH:
Пример
..Когда стартует игра Mk3, исполняется следующий код:
LD HL, CLRTB; Таблица инициализации LD C, PSG_PRT; Порт PSG = 7FH LD B, 4; Передать четыре байта OTIR; Записать (и т.д.)
CLTB defb $9F, $BF, $DF, $FF
Этот код выключает все четыре канала. Неплохо его использовать и во время нажатия на кнопку “Пауза”, чтобы не оставалось звуков во время паузы.
Частота тонального генератора
Частота задается 10-ти битным значением. Это значение уменьшается счетчиком до 0, и затем перезагружается. Поэтому, чем больше число, тем ниже частота.
Чтобы записать значение частоты в генератор, нужно записать пару байт в регистр 7FH:
D9 - D0 – 10-ти битное значение частоты (период).
|