build: add Makefile, build scripts, refactor dir structure for build files and submodules

pull/660/head
Antonia Elsen 1 year ago
parent afa72d21aa
commit f5b0b33f7f
  1. 104
      .github/workflows/build.yml
  2. 56
      .gitignore
  3. 12
      .gitmodules
  4. 42
      Makefile
  5. 4
      README.md
  6. 1
      Synth_Dexed
  7. 1
      circle-stdlib
  8. 0
      external/CMSIS_5
  9. 1
      external/Synth_Dexed
  10. 1
      external/circle-stdlib
  11. 43
      getsysex.sh
  12. 0
      scripts/USBID.sh
  13. 22
      scripts/build-stub.sh
  14. 16
      scripts/build.sh
  15. 18
      scripts/get-performances.sh
  16. 59
      scripts/get-sysex.sh
  17. 32
      scripts/install-toolchain.sh
  18. 8
      scripts/submod.sh
  19. 31
      scripts/zip.sh
  20. 6
      src/Makefile
  21. 2
      src/config.cpp

@ -1,7 +1,8 @@
name: Build name: build
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PROJECT_NAME: "MiniDexed"
on: on:
push: push:
@ -10,86 +11,39 @@ on:
branches: [main] branches: [main]
jobs: jobs:
Build: build:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy:
matrix:
builds: [{ rpi: 5 }, { rpi: 4 }, { rpi: 3 }, { rpi: 2 }, { rpi: 1 }]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Get specific commits of git submodules with:
run: | submodules: recursive
sh -ex ./submod.sh
- name: Install toolchains - name: Install toolchain
run: |
set -ex
wget -q https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
tar xf *-aarch64-none-elf.tar.xz
wget -q https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-arm-none-eabi.tar.xz
tar xf *-arm-none-eabi.tar.xz
mkdir -p kernels
- name: Build for Raspberry Pi 5
run: |
set -ex
export PATH=$(readlink -f ./gcc-*aarch64-none*/bin/):$PATH
RPI=5 bash -ex build.sh
cp ./src/kernel*.img ./kernels/
- name: Build for Raspberry Pi 4
run: |
set -ex
export PATH=$(readlink -f ./gcc-*aarch64-none*/bin/):$PATH
RPI=4 bash -ex build.sh
cp ./src/kernel*.img ./kernels/
- name: Build for Raspberry Pi 3
run: |
set -ex
export PATH=$(readlink -f ./gcc-*aarch64-none*/bin/):$PATH
RPI=3 bash -ex build.sh
cp ./src/kernel*.img ./kernels/
- name: Build for Raspberry Pi 2
run: |
set -ex
export PATH=$(readlink -f ./gcc-*arm-none*/bin/):$PATH
RPI=2 bash -ex build.sh
cp ./src/kernel*.img ./kernels/
- name: Build for Raspberry Pi 1
run: | run: |
set -ex RPI=${{ matrix.builds.rpi }} make install-toolchain
export PATH=$(readlink -f ./gcc-*arm-none*/bin/):$PATH echo "$(pwd)/external/gcc/bin" >> $GITHUB_PATH
RPI=1 bash -ex build.sh
cp ./src/kernel*.img ./kernels/ - name: Build for Raspberry Pi ${{ matrix.builds.rpi }}
- name: Get Raspberry Pi boot files
run: | run: |
set -ex RPI=${{ matrix.builds.rpi }} make build
export PATH=$(readlink -f ./gcc-*aarch64-none*/bin/):$PATH
cd ./circle-stdlib/libs/circle/boot - name: Build & zip Raspberry Pi boot files
make
make armstub64
cd -
mkdir -p sdcard
cp -r ./circle-stdlib/libs/circle/boot/* sdcard
rm -rf sdcard/config*.txt sdcard/README sdcard/Makefile sdcard/armstub sdcard/COPYING.linux
cp ./src/config.txt ./src/minidexed.ini ./src/*img ./src/performance.ini sdcard/
cp ./getsysex.sh sdcard/
echo "usbspeed=full" > sdcard/cmdline.txt
cd sdcard
cp ../kernels/* . || true
cd -
- name: Get performance files
run: | run: |
git clone https://github.com/Banana71/Soundplantage --depth 1 # depth 1 means only the latest commit make get-performances
cp -r ./Soundplantage/performance ./Soundplantage/*.pdf ./sdcard/ make get-sysex
cd sdcard RPI=${{ matrix.builds.rpi }} make build-stub
zip -r ../MiniDexed_$GITHUB_RUN_NUMBER_$(date +%Y-%m-%d)-$(git rev-parse --short HEAD).zip * RPI=${{ matrix.builds.rpi }} make zip
echo "artifactName=MiniDexed_$GITHUB_RUN_NUMBER_$(date +%Y-%m-%d)-$(git rev-parse --short HEAD)" >> $GITHUB_ENV
cd - - uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v3
with: with:
name: ${{ env.artifactName }} # Exported above name: ${{env.PROJECT_NAME}}_$(git rev-parse --short HEAD)
path: ./sdcard/* path: ./build/sdcard/*
- name: Upload to GitHub Releases (only when building from main branch)
- name: Release
if: ${{ github.ref == 'refs/heads/main' }} if: ${{ github.ref == 'refs/heads/main' }}
run: | run: |
set -ex
wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
bash ./upload.sh ./MiniDexed*.zip bash ./upload.sh ./${{env.PROJECT_NAME}}*.zip

56
.gitignore vendored

@ -1,51 +1,11 @@
# Prerequisites *.elf
*.d *.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
*.O
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
# Toolchain
gcc-*
# Build artefacts
kernel*
MiniDexed*
sdcard
*.zip
*.img *.img
*.lst
*.map
*.o
# Editor related files build/
*.swp external/gcc/
*.swo external/soundplantage/
tmp/
CMSIS_5/
Synth_Dexed/
circle-stdlib/

12
.gitmodules vendored

@ -1,9 +1,9 @@
[submodule "circle-stdlib"] [submodule "external/circle-stdlib"]
path = circle-stdlib path = external/circle-stdlib
url = https://github.com/smuehlst/circle-stdlib url = https://github.com/smuehlst/circle-stdlib
[submodule "Synth_Dexed"] [submodule "external/Synth_Dexed"]
path = Synth_Dexed path = external/Synth_Dexed
url = https://codeberg.org/dcoredump/Synth_Dexed.git url = https://codeberg.org/dcoredump/Synth_Dexed.git
[submodule "CMSIS_5"] [submodule "external/CMSIS_5"]
path = CMSIS_5 path = external/CMSIS_5
url = https://github.com/ARM-software/CMSIS_5 url = https://github.com/ARM-software/CMSIS_5

@ -0,0 +1,42 @@
RPI ?= 4
.PHONY: all
all: clean build build-stub zip
.PHONY: build
build:
@mkdir -p build/kernels build/sdcard
@./scripts/build.sh
@cp ./src/kernel*.img ./build/kernels/
.PHONY: build-stub
build-stub:
@mkdir -p build/kernels build/sdcard
@./scripts/build-stub.sh
.PHONY: clean
clean:
@rm -rf build
.PHONY: get-sysex
get-sysex:
@mkdir -p build/sdcard && \
cd ./build/sdcard && \
../../scripts/get-sysex.sh && \
cd -
.PHONY: get-performances
get-performances:
@./scripts/get-performances.sh
.PHONY: install
install:
@echo "TODO(antoniae)"
.PHONY: install-toolchain
install-toolchain:
@./scripts/install-toolchain.sh
.PHONY: zip
zip:
@./scripts/zip.sh

@ -33,7 +33,7 @@ Video about this project by [Floyd Steinberg](https://www.youtube.com/watch?v=Z3
## System Requirements ## System Requirements
- Raspberry Pi 1, 2, 3, 4, or 400. Raspberry Pi Zero and Zero 2 can be used but need HDMI or a supported i2s DAC for audio out. On Raspberry Pi 1 and on Raspberry Pi Zero there will be severely limited functionality (only one tone generator instead of 8) - Raspberry Pi 1, 2, 3, 4, or 400. Raspberry Pi Zero and Zero 2 can be used but need HDMI or a supported i2s DAC for audio out. On Raspberry Pi 1 and on Raspberry Pi Zero there will be severely limited functionality (only one tone generator instead of 8)
- Raspberry Pi 5 can be used but currently support is experimental: HDMI sound and USB Gadget mode are not available yet, and it is not clear if there are implications for cooling from running MiniDexed. Also, MiniDexed is currently not taking advantage of the higher processing power of the Raspberry Pi 5 yet. *Hence, you may consider using one of the less expensive, older Raspberry Pi boards for your first build.* - Raspberry Pi 5 can be used but currently support is experimental: HDMI sound and USB Gadget mode are not available yet, and it is not clear if there are implications for cooling from running MiniDexed. Also, MiniDexed is currently not taking advantage of the higher processing power of the Raspberry Pi 5 yet. _Hence, you may consider using one of the less expensive, older Raspberry Pi boards for your first build._
- A [PCM5102A or PCM5122 based DAC](https://github.com/probonopd/MiniDexed/wiki/Hardware#i2s-dac), HDMI display or [audio extractor](https://github.com/probonopd/MiniDexed/wiki/Hardware#hdmi-to-audio) for good sound quality. If you don't have this, you can use the headphone jack on the Raspberry Pi but on anything but the Raspberry 4 the sound quality will be seriously limited - A [PCM5102A or PCM5122 based DAC](https://github.com/probonopd/MiniDexed/wiki/Hardware#i2s-dac), HDMI display or [audio extractor](https://github.com/probonopd/MiniDexed/wiki/Hardware#hdmi-to-audio) for good sound quality. If you don't have this, you can use the headphone jack on the Raspberry Pi but on anything but the Raspberry 4 the sound quality will be seriously limited
- Optionally (but highly recommended), an [LCDC1602 Display](https://www.berrybase.de/en/sensors-modules/displays/alphanumeric-displays/alphanumerisches-lcd-16x2-gr-252-n/gelb) (with or without i2c "backpack" board) and a [KY-040 rotary encoder](https://www.berrybase.de/en/components/passive-components/potentiometer/rotary-encoder/drehregler/rotary-encoder-mit-breakoutboard-ohne-gewinde-und-mutter) - Optionally (but highly recommended), an [LCDC1602 Display](https://www.berrybase.de/en/sensors-modules/displays/alphanumeric-displays/alphanumerisches-lcd-16x2-gr-252-n/gelb) (with or without i2c "backpack" board) and a [KY-040 rotary encoder](https://www.berrybase.de/en/components/passive-components/potentiometer/rotary-encoder/drehregler/rotary-encoder-mit-breakoutboard-ohne-gewinde-und-mutter)
@ -52,7 +52,7 @@ Video about this project by [Floyd Steinberg](https://www.youtube.com/watch?v=Z3
- Boot - Boot
- Start playing - Start playing
- If the system seems to become unresponsive after a few seconds, remove `usbspeed=full` from `cmdline.txt` and repeat ([details](https://github.com/probonopd/MiniDexed/issues/39)) - If the system seems to become unresponsive after a few seconds, remove `usbspeed=full` from `cmdline.txt` and repeat ([details](https://github.com/probonopd/MiniDexed/issues/39))
- Optionally, put voices in `.syx` files onto the SD card (e.g., using `getsysex.sh`) - Optionally, put voices in `.syx` files onto the SD card (e.g., using `scripts/get-sysex.sh`)
- See the Wiki for [Menu](https://github.com/probonopd/MiniDexed/wiki/Menu) operation - See the Wiki for [Menu](https://github.com/probonopd/MiniDexed/wiki/Menu) operation
- For voice programming, use any DX series editor (using MIDI sysex), including Dexed - For voice programming, use any DX series editor (using MIDI sysex), including Dexed
- For library management, use the dedicated [MiniDexedLibrarian](https://github.com/BobanSpasic/MiniDexedLibrarian) software - For library management, use the dedicated [MiniDexedLibrarian](https://github.com/BobanSpasic/MiniDexedLibrarian) software

@ -1 +0,0 @@
Subproject commit 8c677ceb4b3fb73f8643e30ff6cf4158dc8b9e53

@ -1 +0,0 @@
Subproject commit 61cf3a47bf93628039078b7c840e44432e52343e

@ -0,0 +1 @@
Subproject commit c9f52741a802ad9bb01263823650f7cc3b0b5108

@ -0,0 +1 @@
Subproject commit 3bd135d35ac23c7c726924cb85b5890cbf80bbfe

@ -1,43 +0,0 @@
#!/bin/sh
# Get voices from
# https://yamahablackboxes.com/collection/yamaha-dx7-synthesizer/patches/
mkdir -p sysex/voice/
DIR="https://yamahablackboxes.com/patches/dx7/factory"
# wget -c "${DIR}"/rom1a.syx -O sysex/voice/000000_rom1a.syx
# wget -c "${DIR}"/rom1b.syx -O sysex/voice/000001_rom1b.syx
# wget -c "${DIR}"/rom2a.syx -O sysex/voice/000002_rom2a.syx
# wget -c "${DIR}"/rom2b.syx -O sysex/voice/000003_rom2b.syx
wget -c "${DIR}"/rom3a.syx -O sysex/voice/000001_rom3a.syx
wget -c "${DIR}"/rom3b.syx -O sysex/voice/000002_rom3b.syx
wget -c "${DIR}"/rom4a.syx -O sysex/voice/000003_rom4a.syx
wget -c "${DIR}"/rom4b.syx -O sysex/voice/000004_rom4b.syx
DIR="https://yamahablackboxes.com/patches/dx7/vrc"
wget -c "${DIR}"/vrc101b.syx -O sysex/voice/000005_vrc101b.syx
wget -c "${DIR}"/vrc102a.syx -O sysex/voice/000006_vrc102a.syx
wget -c "${DIR}"/vrc102b.syx -O sysex/voice/000007_vrc102b.syx
wget -c "${DIR}"/vrc103a.syx -O sysex/voice/000008_vrc103a.syx
wget -c "${DIR}"/vrc103b.syx -O sysex/voice/000009_vrc103b.syx
wget -c "${DIR}"/vrc104a.syx -O sysex/voice/000010_vrc104a.syx
wget -c "${DIR}"/vrc104b.syx -O sysex/voice/000011_vrc104b.syx
wget -c "${DIR}"/vrc105a.syx -O sysex/voice/000012_vrc105a.syx
wget -c "${DIR}"/vrc105b.syx -O sysex/voice/000013_vrc105b.syx
wget -c "${DIR}"/vrc106a.syx -O sysex/voice/000014_vrc106a.syx
wget -c "${DIR}"/vrc106b.syx -O sysex/voice/000015_vrc106b.syx
wget -c "${DIR}"/vrc107a.syx -O sysex/voice/000016_vrc107a.syx
wget -c "${DIR}"/vrc107b.syx -O sysex/voice/000017_vrc107b.syx
wget -c "${DIR}"/vrc108a.syx -O sysex/voice/000018_vrc108a.syx
wget -c "${DIR}"/vrc108b.syx -O sysex/voice/000019_vrc108b.syx
wget -c "${DIR}"/vrc109a.syx -O sysex/voice/000020_vrc109a.syx
wget -c "${DIR}"/vrc109b.syx -O sysex/voice/000021_vrc109b.syx
wget -c "${DIR}"/vrc110a.syx -O sysex/voice/000022_vrc110a.syx
wget -c "${DIR}"/vrc110b.syx -O sysex/voice/000023_vrc110b.syx
wget -c "${DIR}"/vrc111a.syx -O sysex/voice/000024_vrc111a.syx
wget -c "${DIR}"/vrc111b.syx -O sysex/voice/000025_vrc111b.syx
wget -c "${DIR}"/vrc112a.syx -O sysex/voice/000026_vrc112a.syx
wget -c "${DIR}"/vrc112b.syx -O sysex/voice/000027_vrc112b.syx

@ -0,0 +1,22 @@
#!/bin/bash
echo "Building stub..."
if [ -z "${RPI}" ] ; then
echo "\$RPI missing, exiting"
exit 1
fi
echo "Building stub for RPI=${RPI}..."
cd external/circle-stdlib/libs/circle/boot
make
if [ "${RPI}" -gt 2 ]
then
make armstub64
fi
cd -
echo " Done."

@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
set -e
set -x
if [ -z "${RPI}" ] ; then if [ -z "${RPI}" ] ; then
echo "\$RPI missing, exiting" echo "\$RPI missing, exiting"
exit 1 exit 1
@ -21,7 +18,7 @@ if [ "${RPI}" -gt "1" ]; then
fi fi
# USB Vendor and Device ID for use with USB Gadget Mode # USB Vendor and Device ID for use with USB Gadget Mode
source USBID.sh source scripts/USBID.sh
if [ "${USB_VID}" ] ; then if [ "${USB_VID}" ] ; then
OPTIONS="${OPTIONS} -o USB_GADGET_VENDOR_ID=${USB_VID}" OPTIONS="${OPTIONS} -o USB_GADGET_VENDOR_ID=${USB_VID}"
fi fi
@ -30,9 +27,10 @@ if [ "${USB_DID}" ] ; then
fi fi
# Build circle-stdlib library # Build circle-stdlib library
cd circle-stdlib/ echo "Building circle-stdlib with RPI ${RPI} ${TOOLCHAIN_PREFIX}..."
cd external/circle-stdlib/
make mrproper || true make mrproper || true
./configure -r ${RPI} --prefix "${TOOLCHAIN_PREFIX}" ${OPTIONS} -o KERNEL_MAX_SIZE=0x400000 ./configure -r ${RPI} -p "${TOOLCHAIN_PREFIX}" ${OPTIONS} -o "KERNEL_MAX_SIZE=0x400000"
make -j make -j
# Build additional libraries # Build additional libraries
@ -47,11 +45,13 @@ make clean || true
make -j make -j
cd ../../../.. cd ../../../..
cd .. cd ../..
# Build MiniDexed # Build
cd src cd src
make clean || true make clean || true
make -j make -j
ls *.img ls *.img
cd .. cd ..
cp src/*.img build/kernels/

@ -0,0 +1,18 @@
#!/bin/bash
echo "Fetching performances..."
DEST="build/sdcard"
mkdir -p ${DEST}
rm -rf external/soundplantage
git clone https://github.com/Banana71/Soundplantage --depth 1 external/soundplantage > /dev/null 2>&1
cp -r \
external/soundplantage/performance \
external/soundplantage/*.pdf \
$DEST
echo " Done."

@ -0,0 +1,59 @@
#!/bin/bash
echo "Fetching sysex files..."
# Get voices from
# https://yamahablackboxes.com/collection/yamaha-dx7-synthesizer/patches/
mkdir -p sysex/voice/
DIR="https://yamahablackboxes.com/patches/dx7/factory"
FILES=(
# "rom1a"
# "rom1b"
# "rom2a"
# "rom2b"
"rom3a"
"rom3b"
"rom4a"
"rom4b"
)
for i in "${!FILES[@]}"; do
index=$((i + 1))
echo " Downloading ${FILES[$i]}..."
wget -cq "${DIR}/${FILES[$i]}.syx" -O "sysex/voice/$(printf '%06d' $index)_${FILES[$i]}.syx"
done
DIR="https://yamahablackboxes.com/patches/dx7/vrc"
FILES=(
"vrc101b"
"vrc102a"
"vrc102b"
"vrc103a"
"vrc103b"
"vrc104a"
"vrc104b"
"vrc105a"
"vrc105b"
"vrc106a"
"vrc106b"
"vrc107a"
"vrc107b"
"vrc108a"
"vrc108b"
"vrc109a"
"vrc109b"
"vrc110a"
"vrc110b"
"vrc111a"
"vrc111b"
"vrc112a"
"vrc112b"
)
for i in "${!FILES[@]}"; do
index=$((i + 5)) # Adjust the starting index as needed
echo " Downloading ${FILES[$i]}..."
wget -cq "${DIR}/${FILES[$i]}.syx" -O "sysex/voice/$(printf '%06d' $index)_${FILES[$i]}.syx"
done
echo " Done."

@ -0,0 +1,32 @@
#!/bin/bash
RPI=${RPI:-4}
DEST="external/gcc"
TARGET_GCC="gcc-arm-10.3-2021.07"
echo "Installing toolchain for RPI=${RPI}..."
# Check if gcc is already installed
if [ -d ${DEST} ]; then
echo " Toolchain already installed."
exit 0
fi
mkdir -p ${DEST}
mkdir -p tmp
TARGET="${TARGET_GCC}-x86_64-aarch64-none-elf"
URL="https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/${TARGET}.tar.xz"
if [ "${RPI}" -le 2 ]; then
TARGET="${TARGET_GCC}-x86_64-arm-none-eabi"
URL="https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/${TARGET}.tar.xz"
fi
if [ ! -f tmp/gcc-arm-*-*.tar.xz ]; then
echo " Downloading toolchain..."
wget -q -P tmp ${URL}
tar -xf tmp/gcc-arm-*-*.tar.xz -C ${DEST} --strip-components 1
fi
echo " Done."

@ -5,20 +5,20 @@ set -ex
git submodule update --init --recursive git submodule update --init --recursive
# #
# Use fixed master branch of circle-stdlib then re-update # Use fixed master branch of circle-stdlib then re-update
cd circle-stdlib/ cd external/circle-stdlib/
git checkout 3bd135d git checkout 3bd135d
git submodule update --init --recursive git submodule update --init --recursive
cd - cd -
# #
# Optional update submodules explicitly # Optional update submodules explicitly
cd circle-stdlib/libs/circle cd external/circle-stdlib/libs/circle
git checkout 4155f43 git checkout 4155f43
cd - cd -
cd circle-stdlib/libs/circle-newlib cd external/circle-stdlib/libs/circle-newlib
#git checkout develop #git checkout develop
cd - cd -
# #
# Use fixed master branch of Synth_Dexed # Use fixed master branch of Synth_Dexed
cd Synth_Dexed/ cd external/Synth_Dexed/
git checkout c9f5274 git checkout c9f5274
cd - cd -

@ -0,0 +1,31 @@
#!/bin/bash
echo "Zipping boot files..."
DEST="build/sdcard"
mkdir -p ${DEST}
cp -r ./external/circle-stdlib/libs/circle/boot/* ${DEST}
rm -rf \
${DEST}/README \
${DEST}/config*.txt \
${DEST}/Makefile \
${DEST}/armstub \
${DEST}/COPYING.linux
cp \
build/kernels/* \
src/config.txt \
src/*img \
src/minidexed.ini \
src/performance.ini \
${DEST}
echo "usbspeed=full" > ${DEST}/cmdline.txt
cp build/kernels/* ${DEST}
zip -r build/MiniDexed_$(date +%Y-%m-%d).zip ${DEST}/*
echo " Done."

@ -2,9 +2,9 @@
# Makefile # Makefile
# #
CIRCLE_STDLIB_DIR = ../circle-stdlib CIRCLE_STDLIB_DIR = ../external/circle-stdlib
SYNTH_DEXED_DIR = ../Synth_Dexed/src SYNTH_DEXED_DIR = ../external/Synth_Dexed/src
CMSIS_DIR = ../CMSIS_5/CMSIS CMSIS_DIR = ../external/CMSIS_5/CMSIS
OBJS = main.o kernel.o minidexed.o config.o userinterface.o uimenu.o \ OBJS = main.o kernel.o minidexed.o config.o userinterface.o uimenu.o \
mididevice.o midikeyboard.o serialmididevice.o pckeyboard.o \ mididevice.o midikeyboard.o serialmididevice.o pckeyboard.o \

@ -21,7 +21,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
#include "config.h" #include "config.h"
#include "../Synth_Dexed/src/dexed.h" #include "../external/Synth_Dexed/src/dexed.h"
CConfig::CConfig (FATFS *pFileSystem) CConfig::CConfig (FATFS *pFileSystem)
: m_Properties ("minidexed.ini", pFileSystem) : m_Properties ("minidexed.ini", pFileSystem)

Loading…
Cancel
Save