-изучение работы легендарного синтезатора Roland MT-32
Термины
part - фактически, это MIDI канал (1 - 8, Rhythm для MT-32) на который устанавливается настроенный иструмент patch, способный воспроизводить несколько нот voice одновременно.
partial - элементарный генератор звука (WG - Wave Generator). В LA32 имеется 32 partials. Два соседних partials (четный n и нечетный n+1) могут объединяться c помощью ring modulation.
tone - один или два смежных partials (четный и нечетный), возможно, связанных между собой ring modulation.
voice - один или два tone. Представляет собой один голос играющего на данный момент инструмента.
timbre - описание инструмента: общие пареметры и описание одного или нескольких partial's.
patch - настроенный инструмент: timbre, level (громкость), panpot (стерео баланс) и reverb (ревербератор).
Известные регистры
Memory Mapper |
0100h | REG_GA_MMAP | 00h - мапит первые 16К ROM'а по адресу 8000h 02h, 03h - банки с инструментами 11h - обычная конфигурация Размер страницы: 16384 |
GPIO Output |
0x2xx | REG_GA_SO[0-16] | WR - GPIO Output: 0b0010'000xxxx0 |
0200h | REG_GA_SO | Bit0 - LED Bit1,Bit2 - Reverb Firmware |
Keyboard (GPIO Input) |
0x2xx | REG_GA_SI[0-16] | RD - GPIO Input: 0b0010'000xxxx0 |
021Ah | REG_KEY_LINE1 | Line 1 (5 bit) |
021Ch | REG_KEY_LINE0 | Line 0 (5 bit) |
GA Configuration |
0280h | REG_GA_CFG | 0xca - initialize value |
LCD |
0300h | REG_LCD_CHAR | LCD, A=1 (character code) |
0380h | REG_LCD_CTRL | LCD, A=0 (control) |
Reverb |
0400h | REG_REVERB_LO | [4:4]ReverbLevel_Lo, [3:1]ReverbTime |
0800h | REG_REVERB_HI | [3:3]ReverbMode, [2:1]ReverbLevel_Hi |
LA32 |
0C00h | INT_STATUS | Interrupt status |
0C00[4 * i] | TVA_TVF_ENV_TIME | TVA/TVF Envelope Time |
0C02[4 * i] | TVA_TVF_ENV_LEVEL | TVA/TVF Envelope Level |
0C80[4 * i] | WG_PULSE_WIDTH | Wave Generator PWM Pulse Width |
0C82[4 * i] | WG_PCM_SAMPLE | PCM Generator Sample Address |
0C82[4 * i] | TVF_FREQ | |
0D00[4 * i] | TVA_ENV_TIME | |
0D02[4 * i] | TVA_ENV_LEVEL? | (но это не точно) |
0D80[4 * i] | PITCH_LO | Partial Pitch LSB |
0D82[4 * i] | PITCH_HI | Partial Pitch MSB |
0E00[4 * i] | WG_SETUP | |
0E02[4 * i] | WG_PCM_LEN | PCM Generator Sample Length |
0E02[4 * i] | TVF_RES | TVF Resonance |
ToDo: найти регистр, который отвечает за генерацию частоты для ревербератора.
Чипы
Ссылки
MT-32 Replica