fix(midi): map concert steel to Bank1 program 24
Bump firmware to 0.2.44 so slot 1 stays Bank1 program 24 and slot 2 stays program 25. Rhythm presets no longer replace the string voice on channel 0. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
11ddab46f5
commit
75ee80722c
|
|
@ -16,7 +16,7 @@ GUI_SWITCH mGuiData[] = {
|
|||
{ 0, 0, 11, GUI_TRANSPOSE}, // 0
|
||||
{ 78, 40, 260, GUI_SPEED}, // 1
|
||||
{ 0, 0, 1, GUI_MODE_PARAM}, // 2 ?? <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><E0BFAA> 0=<3D><> 1=<3D><>
|
||||
{ TIMBRE_BOOT_SLOT, 0, 4, GUI_TIMBRE_SELECT}, // 3 显示第 1 项,Bank1 Program 24(音色表 25 号)
|
||||
{ TIMBRE_BOOT_SLOT, 0, 4, GUI_TIMBRE_SELECT}, // 3 显示第 1 项,Bank1 Program 24
|
||||
{ 0, 0, 3, GUI_PLAY_SECTION}, // 4
|
||||
{ 0, 0, 3, GUI_TAB_INDEX}, // 5
|
||||
{ 0, 0, 1, GUI_AUTOBAND_SW}, // 6 ?? <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><E0BFAA> 0=<3D><> 1=<3D><>
|
||||
|
|
@ -111,7 +111,7 @@ int16_t MIC_VOL_MAP[11]= {-9000,-7000,-5000,-3000,-1000,1000,3000,5000,7000,9000
|
|||
|
||||
uint8_t TOUCH_AREA_NUM = (sizeof(Touch_Areas)/sizeof(Touch_AreaTypeDef));
|
||||
|
||||
const uint8_t Version[3] = {0,2,43}; /* major.minor.patch — 0.2.43: 开机弦音色显示第 1 项 / Bank1 Program 24 */
|
||||
const uint8_t Version[3] = {0,2,44}; /* major.minor.patch — 0.2.44: 音乐会钢弦 Bank1/24,经典钢弦 Bank1/25 */
|
||||
uint8_t Led = 8;
|
||||
bool PressFlag = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -376,11 +376,21 @@ static void Func_CallBack_ProgramChange(int channel, int program)
|
|||
{
|
||||
MidiFifoItem_t midimsg;
|
||||
uint8_t ch = (uint8_t)(channel & 0x0F);
|
||||
uint8_t bank = MIDI_BANK_ACCOMP;
|
||||
/* 通道 0 是硅胶弦。节奏预设常在这里放钢琴(Program 0),会盖掉弦音色。 */
|
||||
if (ch == 0)
|
||||
{
|
||||
uint8_t slot = mGuiData[GUI_TIMBRE_SELECT].Current;
|
||||
if (slot > 4u)
|
||||
slot = 0;
|
||||
bank = MIDI_BANK_STRING;
|
||||
program = Timbre_index[slot];
|
||||
}
|
||||
LOG_I("REG", "pc ch%u prog=%d", (unsigned)channel, program);
|
||||
/* 双音色库:伴奏一律先切 Bank0(CC0 MSB=0, CC32 LSB=0)再 PC */
|
||||
/* 伴奏走 Bank0;弦音色走 Bank1。先 Bank Select 再 PC */
|
||||
midimsg.msg[0] = 0xb0 | ch;
|
||||
midimsg.msg[1] = 0x00; /* CC0 Bank MSB */
|
||||
midimsg.msg[2] = MIDI_BANK_ACCOMP;
|
||||
midimsg.msg[2] = bank;
|
||||
midimsg.msglen = 3;
|
||||
mymidififo_InQueue(&m_MidiSendFifo,&midimsg);
|
||||
midimsg.msg[1] = 0x20; /* CC32 Bank LSB */
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ void drv_nvm_load_default_calibration_static_value(NvmParam_Type * pData, uint8
|
|||
pData->param.UsbMode = NVM_USB_MIDI;
|
||||
}
|
||||
mGuiData[GUI_SPEED].Current = pData->param.BPM;
|
||||
/* 弦音色不跨开关机记忆,冷启动也显示第 1 项,Bank1 Program 24(音色表 25 号) */
|
||||
/* 弦音色不跨开关机记忆,冷启动显示第 1 项,Bank1 Program 24 */
|
||||
pData->param.Timbre = TIMBRE_BOOT_SLOT;
|
||||
mGuiData[GUI_TIMBRE_SELECT].Current = pData->param.Timbre;
|
||||
mGuiData[GUI_TRANSPOSE].Current = pData->param.Transpose;
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ const STRING_MIDI *Chord_Midi_Table[7] =
|
|||
const STRING_MIDI *OrganChord_Midi_Table[7] =
|
||||
{ OrganMIDI_1,OrganMIDI_2,OrganMIDI_3,OrganMIDI_4,OrganMIDI_5,OrganMIDI_6, OrganMIDI_7 };
|
||||
|
||||
/* UI槽位0~4 → MIDI Program Change(Bank1):24音乐会钢弦 / 25经典钢弦 / 27清音 / 30失真 / 33电贝司 */
|
||||
/* UI槽位0~4 → Bank1 Program:24音乐会钢弦 / 25经典钢弦 / 27清音 / 30失真 / 33电贝司 */
|
||||
const uint8_t Timbre_index[5] = {0x18, 0x19, 0x1B, 0x1E, 0x21};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ extern const STRING_MIDI OrganMIDI_7[];
|
|||
extern const STRING_MIDI *Chord_Midi_Table[7];
|
||||
extern const STRING_MIDI *OrganChord_Midi_Table[7];
|
||||
extern const uint8_t Timbre_index[5];
|
||||
/* 开机不记忆:显示第 1 项,Bank1 Program 24(音色表 25 号)= Timbre_index[0] */
|
||||
/* 开机不记忆:显示第 1 项「音乐会钢弦吉他」= Bank1 Program 24 = Timbre_index[0] */
|
||||
#define TIMBRE_BOOT_SLOT 0u
|
||||
|
||||
/* 当前使用的 MIDI 音符 */
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ def main():
|
|||
raise SystemExit(
|
||||
"USB row overflow: label ends %d, left arrow at %d" % (label_end, tril_x)
|
||||
)
|
||||
ver_w = text_w("0.2.43", glyphs)
|
||||
ver_w = text_w("0.2.44", glyphs)
|
||||
gh = glyphs["0"][0].size[1]
|
||||
pill_h = gh + 8
|
||||
pill_w = ver_w + 18
|
||||
|
|
@ -377,7 +377,7 @@ def preview(pics, glyphs, back, back_xy, chev, chev_xy, tri_l, tl, tri_r, tr,
|
|||
paste(canvas, tri_l, tl[0], row_y + (tl[1] - (CARD_Y0 + CARD_PITCH)))
|
||||
paste(canvas, tri_r, tr[0], row_y + (tr[1] - (CARD_Y0 + CARD_PITCH)))
|
||||
fill_round(canvas, CARD_X + pill_dx, CARD_Y0 + pill_dy, pill_w, pill_h, 6, (0, 8, 19))
|
||||
ver = "0.2.43"
|
||||
ver = "0.2.44"
|
||||
tw = text_w(ver, glyphs)
|
||||
gh = glyphs["0"][0].size[1]
|
||||
draw_text(canvas, CARD_X + pill_dx + (pill_w - tw) // 2,
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ TONE_HDR = PROJ / "project" / "inc" / "ExtFlash_Tone_Addr.h"
|
|||
IAP_DIR = REPO / "升级" / "MCU主控升级"
|
||||
OUT_ROOT = REPO / "tools" / "out"
|
||||
|
||||
FW_VER = "0.2.43"
|
||||
FW_VER = "0.2.44"
|
||||
UI0902_RES_BASE = 0x00100000
|
||||
BOOT_FLASH_ADDR = 0x08000000
|
||||
APP_FLASH_ADDR = 0x08008000
|
||||
|
|
|
|||
Loading…
Reference in New Issue