ScoreMaker is a small Objective-C AppKit score viewer for macOS and GNUstep. It opens Standard MIDI files and MusicKit-style .score scorefiles, renders their pitched notes on simple treble and bass staves, and can save the current score back out as a .score file.
The renderer is intentionally lightweight. It focuses on extracting timing, pitch, tempo, and time-signature data well enough to inspect a score visually; it is not a full notation editor or MusicKit synthesis environment.
- Open
.midand.midiStandard MIDI files. - Open MusicKit text scorefiles with the
.scoreextension. - Save the currently loaded score as a MusicKit-style
.scorefile. - Render notes across treble and bass staves with measure lines.
- Read MIDI tempo and time-signature metadata when available.
- Add pitched notes and edit score notes, tempo, and time signature from the inspector next to the sheet.
- Play the current score directly through the system MIDI player.
- Print the rendered score from the standard print panel.
- Support common MusicKit scorefile timing, variable,
freq,keyNum,noteOn,noteOff,noteUpdate, and duration-note patterns. - Map common scorefile instrument, patch, sound, preset, and program declarations to General MIDI sounds for playback.
On macOS:
make
open build/macos/ScoreMaker.appOn GNUstep:
make
gopen ScoreMaker.appThe GNUstep build expects gnustep-config, GNUstep GUI libraries, and an Objective-C compiler to be installed.
Open the app, then choose File > Open... to load a .mid, .midi, or .score file.
Use the inspector on the right side of the sheet to add pitched notes, add freeform score notes, change the tempo in BPM, or change the time signature.
Choose Score > Play or the Play button in the inspector to hear the current score. ScoreMaker sends the generated MIDI data directly to the system MIDI player instead of writing a playback file.
Choose File > Print... to print the complete rendered score.
To save the displayed score as a MusicKit-style scorefile, choose File > Save Score As....
You can also pass a file path directly when launching the built macOS app:
build/macos/ScoreMaker.app/Contents/MacOS/ScoreMaker path/to/song.mid
build/macos/ScoreMaker.app/Contents/MacOS/ScoreMaker path/to/song.scoresrc/AppDelegate.*: App lifecycle, menus, open/save panels, and file dispatch.src/MidiParser.*: Standard MIDI parser.src/ScorefileParser.*: MusicKit.scorereader and writer.src/ScoreModel.*: Shared score and note model.src/ScoreView.*: AppKit score rendering.Info.plist: macOS app metadata and document type declarations.Makefile: macOS and GNUstep build targets.
ScoreMaker maps common MusicKit-style instrument declarations to General MIDI programs for playback, but it does not emulate MusicKit synthesis engines, envelopes, wave tables, or DSP patch settings. When saving .score files, it writes the renderable note data and track program mappings from the current document rather than preserving every original source statement or comment.
MIDI parsing supports Standard MIDI files with tick-based timing. SMPTE time-division MIDI files are not supported.
Remove generated build artifacts with:
make clean