From 0f7f8f45e4a6957c67d937e2a66fa04fbc4a3f61 Mon Sep 17 00:00:00 2001 From: soyer Date: Thu, 2 Jan 2025 08:47:50 +0100 Subject: [PATCH 1/5] pass strings by const reference and use find_last_not_of (#779) * pass std::strings by const reference * use std::string::find_last_not_of --- src/minidexed.cpp | 6 +++--- src/minidexed.h | 4 ++-- src/performanceconfig.cpp | 12 ++---------- src/performanceconfig.h | 2 +- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/minidexed.cpp b/src/minidexed.cpp index 2e45f46..1a714fc 100644 --- a/src/minidexed.cpp +++ b/src/minidexed.cpp @@ -1968,9 +1968,9 @@ std::string CMiniDexed::GetNewPerformanceDefaultName(void) return m_PerformanceConfig.GetNewPerformanceDefaultName(); } -void CMiniDexed::SetNewPerformanceName(std::string nName) +void CMiniDexed::SetNewPerformanceName(const std::string &Name) { - m_PerformanceConfig.SetNewPerformanceName(nName); + m_PerformanceConfig.SetNewPerformanceName(Name); } bool CMiniDexed::IsValidPerformance(unsigned nID) @@ -1983,7 +1983,7 @@ bool CMiniDexed::IsValidPerformanceBank(unsigned nBankID) return m_PerformanceConfig.IsValidPerformanceBank(nBankID); } -void CMiniDexed::SetVoiceName (std::string VoiceName, unsigned nTG) +void CMiniDexed::SetVoiceName (const std::string &VoiceName, unsigned nTG) { assert (nTG < CConfig::AllToneGenerators); if (nTG >= m_nToneGenerators) return; // Not an active TG diff --git a/src/minidexed.h b/src/minidexed.h index 69dcf9c..bb6290b 100644 --- a/src/minidexed.h +++ b/src/minidexed.h @@ -164,8 +164,8 @@ public: int GetParameter (TParameter Parameter); std::string GetNewPerformanceDefaultName(void); - void SetNewPerformanceName(std::string nName); - void SetVoiceName (std::string VoiceName, unsigned nTG); + void SetNewPerformanceName(const std::string &Name); + void SetVoiceName (const std::string &VoiceName, unsigned nTG); bool DeletePerformance(unsigned nID); bool DoDeletePerformance(void); diff --git a/src/performanceconfig.cpp b/src/performanceconfig.cpp index 8a182e7..d0ce2de 100644 --- a/src/performanceconfig.cpp +++ b/src/performanceconfig.cpp @@ -1095,17 +1095,9 @@ std::string CPerformanceConfig::GetNewPerformanceDefaultName(void) return "Perf" + nIndex; } -void CPerformanceConfig::SetNewPerformanceName(std::string nName) +void CPerformanceConfig::SetNewPerformanceName(const std::string &Name) { - int i = nName.length(); - do - { - --i; - } - while (i>=0 && nName[i] == 32); - nName=nName.substr(0,i+1) ; - - NewPerformanceName = nName; + NewPerformanceName = Name.substr(0, Name.find_last_not_of(' ') + 1); } bool CPerformanceConfig::DeletePerformance(unsigned nID) diff --git a/src/performanceconfig.h b/src/performanceconfig.h index c9c4b27..916a2ee 100644 --- a/src/performanceconfig.h +++ b/src/performanceconfig.h @@ -137,7 +137,7 @@ public: bool CreateNewPerformanceFile(void); bool GetInternalFolderOk(); std::string GetNewPerformanceDefaultName(void); - void SetNewPerformanceName(std::string nName); + void SetNewPerformanceName(const std::string &Name); bool DeletePerformance(unsigned nID); bool CheckFreePerformanceSlot(void); std::string AddPerformanceBankDirName(unsigned nBankID); From 3878f3ef8d1de54c85c0940d1642fa3003388baf Mon Sep 17 00:00:00 2001 From: probonopd Date: Mon, 27 Jan 2025 22:30:00 +0100 Subject: [PATCH 2/5] Add hardware configuration for mt32-Pi-Midi-Hat device (#787) --- hwconfig/chrissy-mt32-pi-midi-hat.override | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 hwconfig/chrissy-mt32-pi-midi-hat.override diff --git a/hwconfig/chrissy-mt32-pi-midi-hat.override b/hwconfig/chrissy-mt32-pi-midi-hat.override new file mode 100644 index 0000000..a5078ff --- /dev/null +++ b/hwconfig/chrissy-mt32-pi-midi-hat.override @@ -0,0 +1,31 @@ +# mt32-Pi-Midi-Hat by Chrissy version 1.7.2 +# https://github.com/chris-jh/mt32-pi-midi-hat + +SoundDevice=i2s +SampleRate=48000 +DACI2CAddress=0 +ChannelsSwapped=0 + +MIDIBaudRate=31250 +MIDIThru=umidi1,ttyS1 + +SSD1306LCDI2CAddress=0x3c +SSD1306LCDWidth=128 +SSD1306LCDHeight=64 +SSD1306LCDRotate=0 +SSD1306LCDMirror=0 + +LCDColumns=20 +LCDRows=4 + +ButtonPinPrev=22 +ButtonActionPrev=click +ButtonPinNext=23 +ButtonActionNext=click +ButtonPinBack=27 +ButtonActionBack=click +ButtonPinSelect=17 +ButtonActionSelect=click +ButtonPinHome=17 +ButtonActionHome=longpress +ButtonPinShortcut=0 From 7da3649166671458dd874ff7563bb1293d53679c Mon Sep 17 00:00:00 2001 From: probonopd Date: Mon, 27 Jan 2025 22:31:18 +0100 Subject: [PATCH 3/5] Add hardware configuration for diyelectromusic boards (#788) --- .../diyelectromusic-RPi400MIDIAudio.override | 31 ++++++++++++++++++ ...yelectromusic-RpiMiniDexedHD44780.override | 31 ++++++++++++++++++ ...yelectromusic-RpiMiniDexedSSD1306.override | 26 +++++++++++++++ ...yelectromusic-RpiQuadDACMiniDexed.override | 32 +++++++++++++++++++ ...lectromusic-RpiV1MiniDexedIOBoard.override | 30 +++++++++++++++++ src/minidexed.ini | 1 + 6 files changed, 151 insertions(+) create mode 100644 hwconfig/diyelectromusic-RPi400MIDIAudio.override create mode 100644 hwconfig/diyelectromusic-RpiMiniDexedHD44780.override create mode 100644 hwconfig/diyelectromusic-RpiMiniDexedSSD1306.override create mode 100644 hwconfig/diyelectromusic-RpiQuadDACMiniDexed.override create mode 100644 hwconfig/diyelectromusic-RpiV1MiniDexedIOBoard.override diff --git a/hwconfig/diyelectromusic-RPi400MIDIAudio.override b/hwconfig/diyelectromusic-RPi400MIDIAudio.override new file mode 100644 index 0000000..ef76890 --- /dev/null +++ b/hwconfig/diyelectromusic-RPi400MIDIAudio.override @@ -0,0 +1,31 @@ +# diyelectromusic Raspberry Pi 400 MIDI and Audio Module (RPi400MIDIAudio) +# https://diyelectromusic.wordpress.com/2023/12/18/rpi-400-midi-and-audio-pcb-design/ +# https://diyelectromusic.wordpress.com/2023/12/18/rpi-400-midi-and-audio-pcb-build-guide/ + +SoundDevice=i2s + +LCDEnabled=1 +SSD1306LCDI2CAddress=0x3C +SSD1306LCDWidth=128 +SSD1306LCDHeight=32 +SSD1306LCDRotate=0 +SSD1306LCDMirror=0 + +LCDColumns=20 +LCDRows=2 + +ButtonPinPrev=0 +ButtonActionPrev= +ButtonPinNext=0 +ButtonActionNext= +ButtonPinBack=5 +ButtonActionBack=click +ButtonPinSelect=11 +ButtonActionSelect=click +ButtonPinHome=6 +ButtonActionHome=click +ButtonPinShortcut=11 + +EncoderEnabled=1 +EncoderPinClock=10 +EncoderPinData=9 diff --git a/hwconfig/diyelectromusic-RpiMiniDexedHD44780.override b/hwconfig/diyelectromusic-RpiMiniDexedHD44780.override new file mode 100644 index 0000000..1e39915 --- /dev/null +++ b/hwconfig/diyelectromusic-RpiMiniDexedHD44780.override @@ -0,0 +1,31 @@ +# diyelectromusic Raspberry Pi MiniDexed IO Module (HD44780 Version) (RpiMiniDexedHD44780) +# https://github.com/diyelectromusic/sdemp_pcbs/tree/main/RpiMiniDexedHD44780 +# https://diyelectromusic.wordpress.com/2022/08/16/minidexed-raspberry-pi-io-board-part-3/ + +SoundDevice=i2s + +LCDEnabled=1 +LCDPinEnable=10 +LCDPinRegisterSelect=9 +LCDPinReadWrite=0 +LCDPinData4=22 +LCDPinData5=27 +LCDPinData6=17 +LCDPinData7=4 +LCDI2CAddress=0x00 +SSD1306LCDI2CAddress=0 +LCDColumns=16 +LCDRows=2 + +EncoderEnabled=1 +EncoderPinClock=24 +EncoderPinData=23 +For the two buttons, and the rotary encoder switch itself: + +ButtonPinBack=25 +ButtonActionBack=longpress +ButtonPinSelect=25 +ButtonActionSelect=click +ButtonPinHome=25 +ButtonActionHome=doubleclick +ButtonPinShortcut=25 diff --git a/hwconfig/diyelectromusic-RpiMiniDexedSSD1306.override b/hwconfig/diyelectromusic-RpiMiniDexedSSD1306.override new file mode 100644 index 0000000..93b25a4 --- /dev/null +++ b/hwconfig/diyelectromusic-RpiMiniDexedSSD1306.override @@ -0,0 +1,26 @@ +# diyelectromusic Raspberry Pi MiniDexed IO Module (SSD1306 Version) (RpiMiniDexedSSD1306) +# https://github.com/diyelectromusic/sdemp_pcbs/tree/main/RpiMiniDexedSSD1306 +# https://diyelectromusic.com/2022/08/16/minidexed-raspberry-pi-io-board-part-2/ + +SoundDevice=i2s + +LCDEnabled=1 +SSD1306LCDI2CAddress=0x3C +SSD1306LCDWidth=128 +SSD1306LCDHeight=32 +SSD1306LCDRotate=0 +SSD1306LCDMirror=0 +LCDColumns=20 +LCDRows=2 + +ButtonPinBack=5 +ButtonActionBack=click +ButtonPinSelect=11 +ButtonActionSelect=click +ButtonPinHome=6 +ButtonActionHome=click +ButtonPinShortcut=11 + +EncoderEnabled=1 +EncoderPinClock=9 +EncoderPinData=10 diff --git a/hwconfig/diyelectromusic-RpiQuadDACMiniDexed.override b/hwconfig/diyelectromusic-RpiQuadDACMiniDexed.override new file mode 100644 index 0000000..f60048e --- /dev/null +++ b/hwconfig/diyelectromusic-RpiQuadDACMiniDexed.override @@ -0,0 +1,32 @@ +# diyelectromusic MiniDexed Quad DAC (RpiQuadDACMiniDexed) +# https://github.com/diyelectromusic/sdemp_pcbs/tree/main/RpiQuadDACMiniDexed +# https://diyelectromusic.com/2024/06/09/minidexed-quad-dac-pcb-design/ +# https://diyelectromusic.com/2024/06/09/minidexed-quad-dac-pcb-build-guide/ + +SoundDevice=i2s +QuadDAC8Chan=1 + +LCDEnabled=1 +SSD1306LCDI2CAddress=0x3C +SSD1306LCDWidth=128 +SSD1306LCDHeight=32 +SSD1306LCDRotate=1 +SSD1306LCDMirror=0 + +LCDColumns=20 +LCDRows=2 + +ButtonPinPrev=0 +ButtonActionPrev= +ButtonPinNext=0 +ButtonActionNext= +ButtonPinBack=5 +ButtonActionBack=click +ButtonPinSelect=11 +ButtonActionSelect=click +ButtonPinHome=6 +ButtonActionHome=click + +EncoderEnabled=1 +EncoderPinClock=10 +EncoderPinData=9 diff --git a/hwconfig/diyelectromusic-RpiV1MiniDexedIOBoard.override b/hwconfig/diyelectromusic-RpiV1MiniDexedIOBoard.override new file mode 100644 index 0000000..6a4ffb6 --- /dev/null +++ b/hwconfig/diyelectromusic-RpiV1MiniDexedIOBoard.override @@ -0,0 +1,30 @@ +# diyelectromusic MiniDexed Raspberry Pi V1 IO Board (RpiV1MiniDexedIOBoard) +# https://github.com/diyelectromusic/sdemp_pcbs/tree/main/RpiV1MiniDexedIOBoard +# https://diyelectromusic.com/2023/02/28/minidexed-raspberry-pi-v1-io-board-part-2/ + +SoundDevice=i2s + +LCDEnabled=1 +SSD1306LCDI2CAddress=0x3C +SSD1306LCDWidth=128 +SSD1306LCDHeight=32 +SSD1306LCDRotate=0 +SSD1306LCDMirror=0 +LCDColumns=20 +LCDRows=2 + +ButtonPinPrev=0 +ButtonActionPrev= +ButtonPinNext=0 +ButtonActionNext= +ButtonPinBack=22 +ButtonActionBack=click +ButtonPinSelect=11 +ButtonActionSelect=click +ButtonPinHome=27 +ButtonActionHome=click +ButtonPinShortcut=11 + +EncoderEnabled=1 +EncoderPinClock=9 +EncoderPinData=10 diff --git a/src/minidexed.ini b/src/minidexed.ini index 5b6b13d..7fbb229 100644 --- a/src/minidexed.ini +++ b/src/minidexed.ini @@ -12,6 +12,7 @@ DACI2CAddress=0 ChannelsSwapped=0 # Engine Type ( 1=Modern ; 2=Mark I ; 3=OPL ) EngineType=1 +QuadDAC8Chan=0 # MIDI MIDIBaudRate=31250 From 2e7d1144c78345d787072677d1f048349196b42e Mon Sep 17 00:00:00 2001 From: probonopd Date: Mon, 27 Jan 2025 22:31:43 +0100 Subject: [PATCH 4/5] Add hardware configuration for Serdaco MP32L device (#786) --- hwconfig/serdaco_mp32l.override | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 hwconfig/serdaco_mp32l.override diff --git a/hwconfig/serdaco_mp32l.override b/hwconfig/serdaco_mp32l.override new file mode 100644 index 0000000..bf8e024 --- /dev/null +++ b/hwconfig/serdaco_mp32l.override @@ -0,0 +1,33 @@ +# Serdaco MP32L +# https://www.serdashop.com/MP32L + +SoundDevice=i2s +SampleRate=48000 +DACI2CAddress=0 +ChannelsSwapped=0 + +MIDIBaudRate=31250 +MIDIThru=umidi1,ttyS1 + +SSD1306LCDI2CAddress=0x3c +SSD1306LCDWidth=128 +SSD1306LCDHeight=32 +SSD1306LCDRotate=1 +SSD1306LCDMirror=0 + +LCDColumns=20 +LCDRows=2 + +ButtonPinPrev=17 +ButtonActionPrev=click +ButtonPinNext=27 +ButtonActionNext=click +ButtonPinBack=22 +ButtonActionBack=click +ButtonPinSelect=23 +ButtonActionSelect=click +ButtonPinHome=23 +ButtonActionHome=longpress +ButtonPinShortcut=0 + +EncoderEnabled=0 From 69edb84492edfe31c431953a60f0fceffadac80e Mon Sep 17 00:00:00 2001 From: probonopd Date: Wed, 5 Feb 2025 20:35:57 +0100 Subject: [PATCH 5/5] uses: actions/upload-artifact@v4 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 43f6e6f..d1131ad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -92,7 +92,7 @@ jobs: cd - mkdir -p ./sdcard/hardware/ cp -r ./hwconfig/minidexed_* ./sdcard/minidexed.ini ./sdcard/hardware/ - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: ${{ env.artifactName }} # Exported above path: ./sdcard/*