Files
kichikuou_system3-sdl2/.github/workflows/windows.yml
T
kichikuou 41e69d7610 Real-time MIDI playback using RtMidi
Before this, MIDI playback was done by generating an SMF data stream,
which was then played using platform-specific methods (MCI on Windows,
MediaPlayer on Android, SDL_Mixer on other platforms). However, this
approach had an issue where the Y18 command (which reads loop counts and
markers) did not work correctly.

With this change, the MAKOMidi class now uses the RtMidi library to
control MIDI devices in real-time. This approach was used in the
original "System3 for win32", but has now been made cross-platform.

The dependency on RtMidi is optional. If RtMidi is not available at
build time or a MIDI device is unavailable at runtime, FM synthesis will
be used.
2024-08-16 10:11:41 +09:00

39 lines
759 B
YAML

name: Windows Build
on: [push, pull_request]
jobs:
build:
runs-on: windows-latest
strategy:
matrix:
sys: ["MINGW32", "UCRT64"]
defaults:
run:
shell: msys2 {0}
name: MSYS2 ${{ matrix.sys }}
steps:
- name: Set up MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.sys }}
pacboy: >-
gcc:p
cmake:p
ninja:p
SDL2:p
SDL2_ttf:p
rtmidi:p
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Build
run: |
mkdir -p out/debug
cd out/debug
cmake -G"Ninja" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_COMPILE_WARNING_AS_ERROR=YES ../../
ninja