Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


Hierarchical Music Specification Language, Forth tools for experimental music from the 1980's

Subscribe to updates I use hmsl

Statistics on hmsl

Number of watchers on Github 29
Number of open issues 14
Average time to close an issue 30 days
Main language Forth
Average time to merge a PR about 21 hours
Open pull requests 0+
Closed pull requests 0+
Last commit over 4 years ago
Repo Created over 5 years ago
Repo Last Updated over 2 years ago
Size 2.2 MB
Organization / Authorphilburk
Latest Releaseosx-v0.3.1
Page Updated
Do you use hmsl? Leave a review!
View open issues (14)
View hmsl activity
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating hmsl for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Hierarchical Music Specification Language

Forth tools for experimental music from the 1980s. HMSL was originally released for Macintosh and Amiga.

HMSL (C) 1986 Phil Burk, Larry Polansky, David Rosenboom

Port to Windows (C) 1996 Phil Burk and Robert Marsanyi

Port to Macintosh (C) 2015 Andrew C Smith

HMSL is released under the open source Apache License V2.

A description of HMSL and complete documentation can be found here:


PHMSL is built on top of pForth, a C based Forth.


Description of folders:

docs/ - Original docs converted to Open Office format

hmsl/ - original package
hmsl/fth - the guts of HMSL
hmsl/pieces - lots of examples and some pieces that were distributed with HMSL
hmsl/screens - interactive GUI pages that need conversion
hmsl/tools - tools written using HMSL, e.g. the score entry system

native/Win32 - port of HMSL to pForth for Windows by Robert Marsanyi and Phil Burk

OSX: Compilation and installation

Compiling the pforth dictionary

  • Clone pforth into the same directory into which you cloned hmsl.
  • Rename the folder pforth-xcode.
  • Open xcode project in hmsl/native/osx
  • Compile the HMSL-OSX command-line program. Ensure that it finds all necessary files, including the pforth-xcode/csrc folder.
  • Copy the built HMSL-OSX program to pforth-xcode/fth. You can generally find it in native/osx/Build/Products/Debug.
  • Navigate to pforth-xcode/fth and run ./HMSL-OSX -i system.fth
  • Copy the newly-created pforth.dic and HMSL-OSX to hmsl/hmsl
  • In hmsl/hsml, run command ./HMSL-OSX fth/make_hmsl.fth
  • Press n to avoid starting HMSL this first time (it won't work anyway)
  • Run ./HMSL-OSX to start HMSL! (and this time press y)

Packaging as a .app package

  • Open xcode project in hmsl/native/osx.
  • Select target hmsl from the target selection menu.
  • Select Product > Build from the menu bar.
hmsl open issues Ask a question     (View All Issues)
  • over 4 years Port missing words to new HMSL
  • over 4 years Textfile write (offset_end) - Deprecated?
  • over 4 years FLOGCR - Deprecated?
  • over 4 years OSX 10.11.3 - XCode (v7.2.1) Build Fails
  • over 4 years Color palette should match historic palette
  • over 4 years HMSL should not depend on pforth-xcode
  • over 4 years MIDI over index
  • almost 5 years No way to show Actions screen.
  • almost 5 years New windows raise warning
  • almost 5 years Memory leak for each window
  • almost 5 years add ASSIGN command
  • almost 5 years warning immediately from SHEP
  • about 5 years Rewrite MIDI in C
  • about 5 years Font support is basically non-existent
hmsl list of languages used
hmsl latest release notes

Bug fixes:

  • Fix segfault that occurred when closing shep window
  • Fix #22: changing foreground color also changes text color
  • Actually use bit masking on the event buffer
  • Using bit mask to wrap the color selection, fixing exec_bad_access
More projects by philburk View all
Other projects in Forth
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark