Merge branch 'main' into fx-full

pull/795/head
Javier Nonis 20 hours ago
commit 0d8f92b0cc
  1. 2
      .github/workflows/build.yml
  2. 31
      hwconfig/chrissy-mt32-pi-midi-hat.override
  3. 31
      hwconfig/diyelectromusic-RPi400MIDIAudio.override
  4. 31
      hwconfig/diyelectromusic-RpiMiniDexedHD44780.override
  5. 26
      hwconfig/diyelectromusic-RpiMiniDexedSSD1306.override
  6. 32
      hwconfig/diyelectromusic-RpiQuadDACMiniDexed.override
  7. 30
      hwconfig/diyelectromusic-RpiV1MiniDexedIOBoard.override
  8. 33
      hwconfig/serdaco_mp32l.override
  9. 6
      src/minidexed.cpp
  10. 4
      src/minidexed.h
  11. 1
      src/minidexed.ini
  12. 12
      src/performanceconfig.cpp
  13. 2
      src/performanceconfig.h

@ -92,7 +92,7 @@ jobs:
cd - cd -
mkdir -p ./sdcard/hardware/ mkdir -p ./sdcard/hardware/
cp -r ./hwconfig/minidexed_* ./sdcard/minidexed.ini ./sdcard/hardware/ cp -r ./hwconfig/minidexed_* ./sdcard/minidexed.ini ./sdcard/hardware/
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v4
with: with:
name: ${{ env.artifactName }} # Exported above name: ${{ env.artifactName }} # Exported above
path: ./sdcard/* path: ./sdcard/*

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -2471,9 +2471,9 @@ std::string CMiniDexed::GetNewPerformanceDefaultName(void)
return m_PerformanceConfig.GetNewPerformanceDefaultName(); 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) bool CMiniDexed::IsValidPerformance(unsigned nID)
@ -2486,7 +2486,7 @@ bool CMiniDexed::IsValidPerformanceBank(unsigned nBankID)
return m_PerformanceConfig.IsValidPerformanceBank(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); assert (nTG < CConfig::AllToneGenerators);
if (nTG >= m_nToneGenerators) return; // Not an active TG if (nTG >= m_nToneGenerators) return; // Not an active TG

@ -187,8 +187,8 @@ public:
int GetParameter (TParameter Parameter); int GetParameter (TParameter Parameter);
std::string GetNewPerformanceDefaultName(void); std::string GetNewPerformanceDefaultName(void);
void SetNewPerformanceName(std::string nName); void SetNewPerformanceName(const std::string &Name);
void SetVoiceName (std::string VoiceName, unsigned nTG); void SetVoiceName (const std::string &VoiceName, unsigned nTG);
bool DeletePerformance(unsigned nID); bool DeletePerformance(unsigned nID);
bool DoDeletePerformance(void); bool DoDeletePerformance(void);

@ -12,6 +12,7 @@ DACI2CAddress=0
ChannelsSwapped=0 ChannelsSwapped=0
# Engine Type ( 1=Modern ; 2=Mark I ; 3=OPL ) # Engine Type ( 1=Modern ; 2=Mark I ; 3=OPL )
EngineType=1 EngineType=1
QuadDAC8Chan=0
# FXEnabled ( 0=Disable ; 1=Enable) # FXEnabled ( 0=Disable ; 1=Enable)
#FXEnabled=0 #FXEnabled=0

@ -1367,17 +1367,9 @@ std::string CPerformanceConfig::GetNewPerformanceDefaultName(void)
return "Perf" + nIndex; return "Perf" + nIndex;
} }
void CPerformanceConfig::SetNewPerformanceName(std::string nName) void CPerformanceConfig::SetNewPerformanceName(const std::string &Name)
{ {
int i = nName.length(); NewPerformanceName = Name.substr(0, Name.find_last_not_of(' ') + 1);
do
{
--i;
}
while (i>=0 && nName[i] == 32);
nName=nName.substr(0,i+1) ;
NewPerformanceName = nName;
} }
bool CPerformanceConfig::DeletePerformance(unsigned nID) bool CPerformanceConfig::DeletePerformance(unsigned nID)

@ -168,7 +168,7 @@ public:
bool CreateNewPerformanceFile(void); bool CreateNewPerformanceFile(void);
bool GetInternalFolderOk(); bool GetInternalFolderOk();
std::string GetNewPerformanceDefaultName(void); std::string GetNewPerformanceDefaultName(void);
void SetNewPerformanceName(std::string nName); void SetNewPerformanceName(const std::string &Name);
bool DeletePerformance(unsigned nID); bool DeletePerformance(unsigned nID);
bool CheckFreePerformanceSlot(void); bool CheckFreePerformanceSlot(void);
std::string AddPerformanceBankDirName(unsigned nBankID); std::string AddPerformanceBankDirName(unsigned nBankID);

Loading…
Cancel
Save