One of the notational service available via the SongTrellis site is a Tunetext service, which accepts properly encoded markup and produces a MIDI performance and matching score expressed as a JPG image.
A Tunetext page, which the service returns in response to a request, performs the generated MIDI sequence, displays the score on the page, and provides links which package that music in a number of ways so that it can be posted on other websites. Think of this page as a factory for producing music examples.
When a musical example is packaged as a tunetext button, the score image is displayed within a frame with the instruction "Click on music to play" located below the bottom edge of the frame. The tunetext URL that generated that music is attached as a link to the score image. When the score image is clicked, the music plays and is displayed in entirety within its response page.
By pressing the "Edit Tunetext Parameters" button that appears on a Tunetext response page, a visitor can customize the example for their own purposes (change the tempo, alter the instrumentation, generate color coded scores to label the harmonic or melodic intervals formed by notes and chords in the score).
Such buttons cannot be posted to StackExchange at this moment because usage of the Embed HTML tag is not currently allowed, but it might be reasonable to ask Stack Exchange developers for a way to submit such buttons to the site, if members believe they would be valuable to post.
The notation of the music is available for a viewer to manipulate for their own purposes. The music they produce by their alterations they can save for themselves and can post elsewhere.
Tunetext is especially suited for generating example harmony extremely quickly. When chords are specified in the markup using only chord names like this:
the Tunetext interpreter will automatically generate voicing for that chord list.
Click here to perform those chords
Here's the score image harvested from that Tunetext page:
If you issued the URL
with no following parameters, a form would launch where you could type these or other chord symbols. When you press the "Submit Score" button in this form, the specified music will be performed and the score for that music will be displayed
If it's necessary to precisely specify the voicing for a chord, a list of pitch specifications enclosed in square brackets is written after the chord name, like this:
DMA7[3,d,4,d,f#,a,5,d] Click here to perform
The integers in the list specify the octave ranges where the immediately placed pitches will be placed on the staff.
The tunetext interpreter treats durations as a property of the notes, chords and rests that are being added to a score. Once a duration has been set for a note, chord or rest, it's not necessary to respecify the duration for following elements that have the same duration. The default duration assumed at the beginning of a specification is whole note duration.
When a change of duration must be made for a following chord (or note or rest), a scaling factor is applied to transform the previously used duration value into the duration required of the new note. For example, a /2 operator means to divide the previously by 2. The *3 operator means to multiply the previously used duration by 3.
Cmi7(b5),F7Alt,*2,Bmi(MA7) Click here to perform
would play Cmi7(b5) then F7Alt as whole note chords and then would double the duration of the Bmi(MA7) chord.
Here's a four chord sequence expressed as a Tunetext URL:
Here's a melody improvised above these chords using pitch rules that are part of the Tunetext language.
Here's the score image harvested from the Tunetext page for that melody:
I should mention that I'm the developer of the SongTrellis site and its Tunetext service. When people see specification omissions in the Tunetext language, improvements that should be made to the notation produced or in interfaces that the website provides, I'm anxious to fix such things quickly. I appreciate any feedback provided and am at your service.