Show HN: Cynthia – Reliably play MIDI music files – MIT / Portable / Windows
Easy to use, portable app to play midi music files on all flavours of Microsoft Windows.

Brief Background - Used midi playback way back in the days of Windows 95 for some fun and entertaining apps, but as Windows progressed, it seemed their midi support (for Win32 anyway) regressed in both startup speed and reliability. Midi playback used to be near instant on Windows 95, but on later versions of Windows this was delayed to about 5-7 seconds. And reliability became somewhat patchy. This made working with midi a real headache.

Cynthia was built to test and enjoy midi music once again. It's taken over a year of solid coding, recoding, testing, re-testing, and a lot more testing, and some hair pulling along the way, but finally Cynthia works pretty solidly on Windows now.

Some of Cynthia's Key Features: * 25 built-in sample midis on a virtual disk - play right out-of-the box * Play Modes: Once, Repeat One, Repeat All, All Once, Random * Play ".mid", ".midi" and ".rmi" midi files in 0 and 1 formats * Realtime track data indicators, channel output volume indicators with peak hold, 128 note usage indicators * Volume Bars to display realtime average volume and bass volume levels * Use an Xbox Controller to control Cynthia's main functions * Large list capacity for handling thousands of midi files * Switch between up to 10 midi playback devices in realtime * Playback through a single midi device, or multiple simultaneous midi devices with lag and channel output support * Custom built midi playback engine for high playback stability * Custom built codebase for low-level work to GUI level * Also runs on Linux/Mac (including apple silicon) via Wine * Smart Source Code - compiles in Borland Delphi 3 and Lazarus 2 * MIT License

YouTube Video of Cynthia playing a midi: https://youtu.be/IDEOQUboTvQ

GitHub Repo: https://github.com/blaiz2023/Cynthia

I'm curious what samples it's using for playback. Is it just using whatever the host OS offers or does it have its own internal samples? I searched on the main page, About and FAQ for the term "Samples" and didn't see any info.

As someone into both music production and retro gaming, my experience of MIDI is that the instrument types are standard but the fidelity and quality of the music varies depending on the samples used. While low-end 90s sound cards had small sample ROMs and better cards had larger sample sets (2 or more MB). More recently there are even larger, very high quality MIDI sample sets which are open source. Also, is General MIDI 2 supported? How about extensions like Roland GS and Yamaha XG?

  • ale42
  • ·
  • 11 hours ago
  • ·
  • [ - ]
In the days of Electron bloatware, it's refreshing to see a program that is so light in terms of size. Unfortunately, at least on a 4K screen, the interface is a bit laggy and it uses a lot of CPU.
A web app would have been cross platform (including just web), had a superior UI (in both speed and UX) — and with a less bloated Electron alternative like Tauri — better in just about every way that matters.
I’ve yet to see a web app that has native-like great UX.
  • luc_
  • ·
  • 10 hours ago
  • ·
  • [ - ]
Finally, don't have to remember the UMRN for Camptown Races anymore.
It has a freepascal/lazarus project file, so it can be compiled for a lot of platforms, i don't about midi drivers on those platforms, so midi could not work or need more code.
Feature suggestion: Optional OPL3 simulation, so that CANYON.MID can be heard as God intended.
Oh my, haven't heard canyon.mid for years - takes me right back. Have you tried either of the soundfonts below? They do a pretty good job a reproducing canyon.mid, not perfect, but enough to take you back. The default Windows "Microsoft GS Wavetable Synth" is rather horrible at sound reproduction at best, and that's being nice.

a) 3 Mb OPL3.zip (contains one file "OPL3.SF2") - compact but pretty good: https://www.vogons.org/download/file.php?id=45715

and was sourced from: https://www.vogons.org/viewtopic.php?t=59354

b) 128 MB OPL-3_FM_128M.zip (contains one file "OPL-3_FM_128M.sf2") - a bit larger but slightly better in my opinion: https://musical-artifacts.com/artifacts/15/OPL-3_FM_128M.zip

and was sourced from: https://midis.fandom.com/wiki/OPL-3_FM_128M.sf2_(OPL3_Yamaha...

You can direct Cynthia to output her midi notes/instructions to a different midi device/devices for higher quality playback/sound reproduction through the midi driver apps below (for Windows):

a) VirtualMIDISynth (supports up to 4 simultaneous drivers with option to use one or more different soundfonts per driver): https://coolsoft.altervista.org/en/virtualmidisynth

b) OmniMIDI: https://www.majorgeeks.com/files/details/keppys_synthesizer....

The apps above do a nice job at playback with minimal lag and without much setup or tweaking to get going. Basically just install one, assign a soundfont, and restart Cynthia to be able to select a different midi device - numbered 1 to 10 under Playback Device (bottom right panel of main GUI).

At one point in the past I did look into including soundfont support directly into Cynthia, but instead decided to focus on playback stability and ease-of-use as top priorities, which funnily enough was a mountain enough all-by-itself to climb considering how difficult Windows can be to get along with, let alone get working right on something as simple as midi playback under Win32.

  • tosti
  • ·
  • 11 hours ago
  • ·
  • [ - ]
Calling a program portable by virtue of wine being a thing defies logic. That said, nice work. Midi instrument input is on my wishlist.
Portable and cross-platform are not synonymous. Being developed with the Wine in mind and being a standalone app are two unrelated features.

https://www.blaizenterprises.com/cynthia.html#help--what-mak...

  • ale42
  • ·
  • 11 hours ago
  • ·
  • [ - ]
Maybe it's "portable" in the sense that it's just an executable to launch, with no installation needed? I don't think they claim it is multi-platform.
Yeah, by portable I do mean just an EXE to run. That is, no install, won't mess with your operation system, or play with your registry settings etc, nor require any setup to get running.

This also allows the app to run seamlessly on a USB pen stick/harddisk so you can use it on different computers without fuss or being tied down by an installation. The app stores all it's settings etc in a folder alongside the EXE itself, usually "(app name).exe_storage", and automatically manages any references to external filenames/folders on it's own disk drive, allowing it to operate on different computers that might assign its disk drive a random/different drive letter without interrupting access to any referenced filenames/folders.

And no, it's not multi-platform/cross-platform. It's a Win32 (32 bit) binary/codebase. The occasional experiment I have done in the past into cross-platform coding has left me less than impressed. Unfortunately, I'm used to coding at the low-level/API level, and as soon as the programming language starts to abstract away the commands things tend to get dicy for me, and I inevitably find myself lugging around 20+ MB libraries of converted functions, and with no particular guarantee the final app with behave or look similar on different platforms.

Though I do wish such a thing existed. Something like a universal translation layer for all variations of software apps that is hardware accelerated and uniform in execution down to the very last and simple command would be a dream come true. Can't see why in 2025 we are still expected to code and/or compile apps for different operating systems and hardware platforms.

  • 6581
  • ·
  • 10 hours ago
  • ·
  • [ - ]
"* Also runs on Linux/Mac (including apple silicon) via Wine *"
Their website makes their definition of portable very clear in "What makes a portable app special?".

It's quite clear they mean more a (much) stricter variation of the "no installation" definition than the "easily buildable on other OS" definition. Though they do mention execution under translation environments as a requirement.

If they specifically target and test for wine compatibility the I’d call it fair
There were companies that specialized in 'porting' games to Mac using/packaging Wine long ago. It was certainly effective in the Intel Mac days and newer CPUs can certainly run software that predates that well. Heck browsers can run OSes and games in JS/Wasm.
I'd guess approximately nobody does it, but with winelib you can do a native compile and link.
Yeah, very nice app, but it's weird to target Windows as the primary OS.
Wine MIDI doesn't work, so it's a big advantage.
  • ·
  • 9 hours ago
  • ·
  • [ - ]
Type: Desktop App (Standard Edition)

This is (pun intended) music to my ears!

  • ·
  • 10 hours ago
  • ·
  • [ - ]
  • ·
  • 10 hours ago
  • ·
  • [ - ]
Wow, it's been a long time since I saw Pascal code.
My first thought was “what’s wrong with foobar?”

Then I saw the instrument / note grid, and the keyboard UI - this looks fun!

[dead]
[dead]
[dead]