Skip to content

gcasa/apps-scoremaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScoreMaker

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.

Features

  • Open .mid and .midi Standard MIDI files.
  • Open MusicKit text scorefiles with the .score extension.
  • Save the currently loaded score as a MusicKit-style .score file.
  • 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.

Screenshots

macOS

scoremaker

GNUstep

scoremaker-gnustep

Build

On macOS:

make
open build/macos/ScoreMaker.app

On GNUstep:

make
gopen ScoreMaker.app

The GNUstep build expects gnustep-config, GNUstep GUI libraries, and an Objective-C compiler to be installed.

Use

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.score

Project Layout

  • src/AppDelegate.*: App lifecycle, menus, open/save panels, and file dispatch.
  • src/MidiParser.*: Standard MIDI parser.
  • src/ScorefileParser.*: MusicKit .score reader 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.

Limitations

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.

Clean

Remove generated build artifacts with:

make clean

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors