About this project

MIDIChords is a monorepo that houses a MIDI chords and music theory application available on desktop, web, and mobile. The project is published on the iOS/macOS App Store and Microsoft Store. Architecture and platforms: - apps/desktop: desktop application built with Qt/PySide6 and Python, with Tk API compatibility. - apps/web: web application based on Cloudflare Worker with a JavaScript frontend. - apps/mobile_flutter: iOS/Android tablet application developed in Flutter. - midichords: Python implementation of music theory, audio, and desktop; web and Flutter versions maintain equivalent implementations where Python cannot be reused. - assets: shared graphic resources and audio samples. Evidenced functionalities: - Harmonic chord detection. - Chord generation. - Scale generation. - Pattern listings. - The Flutter app also includes a metronome and tuner. - The documentation mentions an SPA mode with a circle of fifths in the web frontend. Technical requirements: - Python 3.12 or 3.13 for the desktop app (3.14 presents issues with NumPy, PySide6, and python-rtmidi). - Node.js and wrangler for local web development. - Flutter 3.38+ for mobile. - Base prepared for Flatpak/Flathub packaging. The project includes verification scripts per platform (python, web, mobile, all), automatic synchronization of shared assets, and CI flows in GitHub Actions for deployment to Cloudflare Pages (via v* tags). It also documents complete signing and notarization flows for macOS (Developer ID and Mac App Store), iOS App Store publication, and Windows installer generation.