From 91b270d85649571ad88798f27b784d4be28d7865 Mon Sep 17 00:00:00 2001 From: yuquanjun Date: Fri, 11 Sep 2026 14:59:23 +0800 Subject: [PATCH] Revert "Lower accompaniment by one octave for #IV and V-VII chords." This reverts commit 439ccf439dfcf820e01a61c665343c29e68617e2. --- APP/app_tm1629.c | 11 ++----- MyCode/App_Auto.c | 84 +++-------------------------------------------- 2 files changed, 8 insertions(+), 87 deletions(-) diff --git a/APP/app_tm1629.c b/APP/app_tm1629.c index 4b45cb1..309af2a 100644 --- a/APP/app_tm1629.c +++ b/APP/app_tm1629.c @@ -3,7 +3,7 @@ static uint8_t key_last = KEY_NONE; -/* LED ??????????棺???? = LedNum_TypeDef??0~7????COLOR_OTHER ????? */ +/* LED 期望颜色缓存:索引 = LedNum_TypeDef(0~7),COLOR_OTHER 表示灭 */ //static LedColor_TypeDef led_cache[8] = { // COLOR_OTHER, COLOR_OTHER, COLOR_OTHER, COLOR_OTHER, // COLOR_OTHER, COLOR_OTHER, COLOR_OTHER, COLOR_OTHER @@ -31,14 +31,9 @@ uint8_t app_tm1629_Scan_Key(void) if(key != key_last) { key_last = key; - if(key >= 1 && key <= 21) - LOG_I("KEY", "tm1629 key=%u pitch=%u type=%u", (unsigned)key, - (unsigned)chord_type_index_map[key].PitchOffset, - (unsigned)chord_type_index_map[key].type); - else - LOG_I("KEY", "tm1629 key=%u", (unsigned)key); + LOG_I("KEY", "tm1629 key=%u", (unsigned)key); TM1629_Handle(key); - return key; + return key; } return KEY_NONE; } diff --git a/MyCode/App_Auto.c b/MyCode/App_Auto.c index 7d5ebdf..63befd7 100644 --- a/MyCode/App_Auto.c +++ b/MyCode/App_Auto.c @@ -19,64 +19,6 @@ static uint8_t pStoreBuffer[PRESET_BUFFER_SIZE]; //static uint8_t* pStoreBuffer; #define DEFAULT_TEMPO 100 -/* ======== 璺嚎A锛#IV 闄嶅叓搴︽嫤鎴紙闊冲笀搴撴敮鎸佸叓搴﹀墠鐨勪复鏃舵柟妗堬級 ======== - * AutoBand 搴撳杈撳叆闊崇鍙仛闊崇骇璇嗗埆锛岃緭鍑洪煶鍖虹敱鍏跺唴閮 octaveBase 鍐冲畾锛 - * 鍥轰欢渚у湪 GetChordNotesByType 閲岀殑浣庡叓搴﹁璁′笉鍙惉銆傛晠鍦ㄥ紩鎿庤緭鍑哄洖璋冨 - * 鎸夊綋鍓嶅拰寮︾姸鎬佸鏃嬪緥閫氶亾鍋氭潯浠舵у叓搴﹀亸绉伙紱闊冲笀鏂板簱鍒颁綅鍚庢暣浣撶Щ闄ゃ */ -#define CHORD_OCTAVE_INTERCEPT_EN 1 -#define DRUM_CHANNEL 9 /* 榧撻氶亾涓嶇Щ璋 */ - -/* 褰撳墠鐢熸晥鐨勫叓搴﹀亸绉伙紙0 鎴 -12锛夈俁AM 浣欓噺鏋佸皬锛屼笉鐢ㄦ寜闊崇琛細 - * 鐘舵佺炕杞灛闂村厛鍚戞棆寰嬮氶亾琛 CC123(All Notes Off) 娓呮帀鏃ч煶鍖虹殑闊筹紝 - * 涔嬪悗 NoteOff 缁熶竴鎸夊綋鍓嶅亸绉昏繕鍘熷嵆鍙紝涓嶄細鎸傞煶銆 */ -static int8_t s_chord_octave_shift = 0; - -static int8_t App_Auto_TargetChordOctaveShift(void) -{ -#if CHORD_OCTAVE_INTERCEPT_EN - /* 涓 GetChordNotesByType 鐨勬牴闊冲叓搴﹁璁″榻愶紙鏁存浼村鍘嬩竴涓叓搴︼級锛 - * V/VI/VII锛堥敭 13~21锛夋牴闊虫湰灏卞湪浣庡叓搴︼紙43/45/47锛夛紱 - * #IV锛堥敭 10~12 + Pitch 鍗囷級鏁寸粍浣庡叓搴︼紝涓烘渶浣庨煶銆 - * 寮曟搸鍙闊崇骇涓嶈鍏害锛屾晠鍦ㄨ緭鍑轰晶缁熶竴琛 -12銆 */ - if (KEY_ID_1629 >= 13 && KEY_ID_1629 <= 21) - return -12; - if (KEY_ID_1629 >= 10 && KEY_ID_1629 <= 12 && - chord_type_index_map[KEY_ID_1629].PitchOffset == 2) - return -12; -#endif - return 0; -} - -static void App_Auto_QueueAllNotesOff(void) -{ - MidiFifoItem_t m; - for (int ch = 0; ch < 16; ch++) - { - if (ch == DRUM_CHANNEL) continue; - m.msg[0] = 0xB0 | ch; - m.msg[1] = 123; /* CC123 All Notes Off */ - m.msg[2] = 0; - m.msglen = 3; - mymidififo_InQueue(&m_MidiSendFifo,&m); - } -} - -/* NoteOn 璺緞璋冪敤锛氬亸绉荤姸鎬佺炕杞椂鍏堟竻鏃ч煶锛屽啀杩斿洖鏂板亸绉 */ -static int8_t App_Auto_ShiftForNoteOn(void) -{ - int8_t target = App_Auto_TargetChordOctaveShift(); - if (target != s_chord_octave_shift) - { - LOG_I("OCT", "shift %d->%d chord=%u pitch=%u", - (int)s_chord_octave_shift, (int)target, - (unsigned)KEY_ID_1629, - (unsigned)chord_type_index_map[KEY_ID_1629].PitchOffset); - App_Auto_QueueAllNotesOff(); - s_chord_octave_shift = target; - } - return s_chord_octave_shift; -} - static void Func_CallBack_ProgramChange(int channel, int program) { MidiFifoItem_t midimsg; @@ -90,15 +32,8 @@ static void Func_CallBack_ProgramChange(int channel, int program) static void Func_CallBack_NoteOff(int channel,int key) { MidiFifoItem_t midimsg; - int out_key = key; - if (channel != DRUM_CHANNEL && key >= 0 && key < 128) - { - /* 鎸夊綋鍓嶅亸绉昏繕鍘燂紱鍋忕Щ缈昏浆鐬棿鐨勬棫闊冲凡鐢 CC123 娓呮帀 */ - out_key = key + s_chord_octave_shift; - if (out_key < 0 || out_key > 127) out_key = key; - } - midimsg.msg[0] = 0x80 | (channel & 0x0F); - midimsg.msg[1] = (uint8_t)out_key; + midimsg.msg[0] = 0x80 | channel; + midimsg.msg[1] = key; midimsg.msg[2] = 0; midimsg.msglen = 3; mymidififo_InQueue(&m_MidiSendFifo,&midimsg); @@ -108,17 +43,9 @@ static void Func_CallBack_NoteOff(int channel,int key) static void Func_CallBack_NoteOn(int channel,int key,int vel) { MidiFifoItem_t midimsg; - int out_key = key; - if (channel != DRUM_CHANNEL && key >= 0 && key < 128) - { - int8_t shift = (vel == 0) ? s_chord_octave_shift /* vel=0 瑙嗗悓 NoteOff */ - : App_Auto_ShiftForNoteOn(); - out_key = key + shift; - if (out_key < 0 || out_key > 127) out_key = key; - } - midimsg.msg[0] = 0x90 | (channel & 0x0F); - midimsg.msg[1] = (uint8_t)out_key; - midimsg.msg[2] = (uint8_t)vel; + midimsg.msg[0] = 0x90 | channel; + midimsg.msg[1] = key; + midimsg.msg[2] = vel; midimsg.msglen = 3; mymidififo_InQueue(&m_MidiSendFifo,&midimsg); @@ -208,7 +135,6 @@ static int Func_CallBack_ReadFlash(int address,int length,uint8_t* pOutput) // void App_Auto_Init(void) { - LOG_I("OCT", "intercept build 20260910 en=%d", (int)CHORD_OCTAVE_INTERCEPT_EN); AutoBandTop1_SetPresetStoreBuffer(pStoreBuffer,PRESET_BUFFER_SIZE); AutoBandTop1_Init(); AutoBandTop1_RegisterCallBack_NoteOn(Func_CallBack_NoteOn);