Easter is coming, and Holy, Holy, Lord God Almighty, while not specifically an Easter Day song, is perfect for that morning sunrise. Reginald Heber wrote the lyrics specifically for Trinity Sunday, the first Sunday after Pentecost. The Easter season officially ends on Pentecost, after which we return to Ordinary Time; the first Sunday in which we return to Ordinary Time is Trinity Sunday, the Solemnity of the Most Holy Trinity.
Which is when we’re most likely to sing this song at Mass.
Holy, Holy is a very beautiful song, both its lyrics and its rousing melody. It’s the melody, of course, that I’m going to reproduce using the piano script.
Here are the full lyrics from Gospel Hymns Combined, an 1879 collection of hymns:
- Holy, Holy, Holy! Lord God Almighty!
- Early in the morning our song shall rise to Thee;
- Holy, Holy, Holy! Merciful and Mighty!
- God in three Persons, blessed Trinity!
- Holy, Holy, Holy! all the saints adore Thee,
- Casting down their golden crowns around the glassy sea;
- Cherubim and Seraphim falling down before Thee,
- Which wert and art, and evermore shall be.
- Holy, Holy, Holy! tho’ the darkness hide Thee,
- Though the eye of sinful man Thy glory may not see,
- Only Thou art Holy, there is none beside Thee,
- Perfect in pow’r, in love, and purity.
- Holy, Holy, Holy! Lord God Almighty!
- All Thy works shall praise Thy name in earth and sky, and sea;
- Holy, Holy, Holy! Merciful and Mighty!
- God in three Persons, blessed Trinity!
- Amen.
Modern hymnals often change these lyrics, which I’ll talk about later on my blog, but these are the longest-running lyrics and the most inspirational.
Reginald Heber’s religion wasn’t Catholicism; he was an Anglican. But the songs he wrote, especially this one, have spread throughout the hymnals of Christianity. In the text comparison I used while researching the lyrics, you can find Methodist hymnals, Lutheran hymnals, Presbyterian, Baptist, and Moravian hymnals.
As well as Anglican hymnals, although that’s not an “of course”. At the time Heber wrote his hymns, the Anglican hierarchy didn’t approve of singing hymns in church. This was one of those things that the laity seem to have pretty much ignored. Heber was in favor of an official about-face on the issue, and wrote a lot of songs that people love to sing today, and presumably when he wrote them.
He was writing songs that people wanted to sing, to convince church officials that singing was important.
The melody I’m using is also from Gospel Hymns Combined. It’s the traditional melody by the Reverend Doctor John Bacchus Dykes. Dykes was born in 1823, only three years before Heber died (1826), so this is obviously not the melody that Heber used. But it has been the melody most associated with the lyrics since about 1861, when it appeared in the Anglican hymnal Hymns Ancient and Modern.
Dykes wrote his melody specifically for Heber’s lyrics. He called his melody Nicaea, after the First Council of Nicaea. It was this council that formalized the doctrine of the Trinity, which makes the lyrics thematically appropriate for Heber’s Trinitarian lyrics.
I don’t know if he wrote the stinger for the piece; it may have been added on by the publishers of Gospel Hymns; it’s a fairly standard “Amen” melody:
--key E- #treble 1 ["E A" | "E G"] #bass - "-A C" | "E B"
You could play this directly on the command line using:
- piano --key E- 1 \["E A" "E G"\] - "-A C" "E B"
…if you wanted an Amen for your other scripts. It would be particularly appropriate for scripts that render images. Might make a nice ring tone, too. I’ve included one in the archive (Zip file, 4.7 KB).
The brackets need to be escaped because they have another meaning on the command line. When I wrote piano I thought quite a while about which symbols to use for multiple voices; there really wasn’t a good option. All bracket-like symbols in normal ASCII have a special meaning on the command line. So I decided to go with what best conveyed the purpose of having two voices running concurrently. Parallel voices are difficult to convey on a serial interface like the command line, but square brackets seem to do a good job of it.
You could even create a command-line command called “amen” that plays the melody when you type “amen” on the command line. You could, of course, write a shell script that included piano --key E- 1 \["E A" "E G"\] - "-A C" "E B". But because the piano script reads files and ignores lines that begin with a hash, it can be treated as a scripting shell. If you have the edit script on your system, type edit amen. For the text of the script, use:
[toggle code]
- #!/Users/USERNAME/bin/piano
- # Holy, Holy! Lord God Almighty!
- # Lyrics: Reginald Heber, D.D.
- # Melody: Rev. John B. Dykes
- # From Gospel Hymns Combined, 1879.
- # Jerry Stratton, astoundingscripts.com
- --key E-
- #treble
- 1 ["E A" | "E G"]
- #bass
- - "-A C" | "E B"
Replace USERNAME with your own username, or replace all of “/Users/USERNAME/bin/piano” with the path to where you store the piano script.
Save the file, and you can now type “amen” on your command line to get the melody. All the shebang—that first line, that begins with the pound symbol and the exclamation point—does is point to another command, one that accepts filenames. The shell you’re using sees that first line, and calls it, appending the path to the script, in this case the path to the “amen” file we just created. Because /Users/USERNAME/bin/piano amen would work on the command line, it the amen script also works as a command on the command line.
This can be done with any melody, although it will probably be more useful for short melodies that can be useful to mark time or announce the end of some task. Type edit v (using the edit script again) to create a command called “v”:
- #!/Users/USERNAME/bin/piano
- #Beethoven’s famous fifth introduction
- #Jerry Stratton, astoundingscripts.com
- --key E-
- --tempo 108
- R 12
- [- G G G 2 v+++ --E]
- [-- G G G 2 v+++ --E]
- [--- G G G 2 v+++ --E]
- G G G 2 v+++ --E
- 4 R
Now you have Beethoven’s fifth (this is the same version of the melody as in the book) at your command!
As I usually do, I created separate treble and bass files so that the treble and bass clefs can be played by different instruments in GarageBand. I chose French Horns and Picked Bass for the initial verses, and switched to Cathedral Organ and Bass Organ for the final verse. And of course, I chose a voice-like “Male Chamber Choir” for the final “Amen”.
Here’s the treble clef:
--key E- 4 "-B E" "-B E" "E G" "E G" | [2 B] -D F [2 B] E -D | [C. 8 C] -C -D "E C" "F C" | 2 "G B" "E G" 4 [B. B] F F "G B" "F B" | "E +E" "F +E" "F D" "G B" | "F F" "-D B" "E. C." 8 "-D B" | 1 "-D B" 4 "-B E" "-B E" "E G" "E G" | [2 B B] -D F E -D | [C. 8 C] -C -D "E C" "F C" | 2 "G B" "E B" 2 "E +E" 4 "E B" "E B" | 2 "E C" [G] 4 E -D= | "-C A" "-C F" "-D. F." 8 "E E" | 1 E
Save this to a file and you can play it using:
- piano treble.txt
But it will sound better with the bass clef:
--key E- - 4 "E G" "E G" "-C E" "-C E" | [2 -D E] F A G B | [-A. 8 -A] A B "A C" "A D" | [2 E "E B"] +E B R R 4 "-D B" "-D B" "E B" "-D B" | "-C G" "-C A=" "-D B" "E B" | "F D" "F B" "F. A=." 8 "-B B" | 2 [1 -B] B A- 4 "E G" "E G" "-C E" "-C E" | [2 -B E] F A G B | [- A. 8 A] A B "A C" "A D" | [2 E "E G"] +E B R R 4 [2 -C] G A "-G B" "-G D=" | 2 "-A C" "E B" | 4 "-A A" "-A A" "-B. A." 8 "E G" | 1 "E G" # Bringing the octave back up +
I played this on the command line using:
- piano [ bass.txt bass.txt bass.txt bass.txt ] treble.txt treble.txt treble.txt treble.txt amen.txt --save holyholy
Which initially resulted in the bass line going an octave lower at each of its iterations. This was due to the dash at the top of the file dropping it down an octave. I added a + at the end of the file to bring it back up to normal. This normally isn’t an issue because I would normally use --repeat 3 on the command line to have four verses. But I didn’t want the Amen to be repeated four times, it only belongs at the end. That’s why there’s a “+” at the end of the bass clef.
The photos in the slide show are from various churches and cathedrals I’ve managed to photograph over the years.
Astounding Scripts
- 42 Astoundingly Useful Scripts and Automations for the Macintosh: Jerry Stratton at Apple Books (ebook)
- If you have a Macintosh and you want to get your retro on, take a look at 42 Astoundingly Useful Scripts and Automations for the Macintosh. These modern scripts will help you work faster and more reliably, and inspire your own custom scripts for your own workflow.
- Edit (Zsh)
- One of the first scripts in the book is a script to edit scripts. But that elicits a bootstrapping problem. Without the edit script, you can’t use the edit script to edit the edit script!
- Holy, Holy! Lord God Almighty! (Zip file, 4.7 KB)
- Piano files and midi files for John B. Dykes’s melody for Reginald Heber’s hymn.
Catholicism
- Feast of the Most Holy Trinity
- “On the first Sunday after Pentecost, the Church celebrates the Solemnity of the Most Holy Trinity. Some resources for growing in devotion to the Trinity.”
- How does the Church’s liturgical calendar work?
- “The church year begins with the first Sunday in Advent (the Sunday that falls on or closest to Nov. 30), at which time the faithful prepare for the celebration of the birth of our Savior at Christmas… Lent interrupts Ordinary Time, and lasts for 40 days (not including Sundays) and prepares us for Easter… Easter season, which begins with the Easter Vigil Mass, is followed by the 40 days leading to the Ascension, and then concludes 10 days later with Pentecost. After Pentecost, Ordinary Time resumes and concludes with the solemnity of Christ the King, the last Sunday of the liturgical year.”
composers
- John Dykes Composer of “Holy, Holy, Holy”
- “In 1861, a publisher rediscovered the words. He asked John Bacchus Dykes to furnish him with a tune… Within thirty minutes he wrote the tune ‘Nicea,’ which carried the praise of the Trinity to Christians everywhere.”
- Reginald Heber at Wikipedia
- “Reginald Heber was an English bishop, man of letters and hymn-writer. After 16 years as a country parson, he served as Bishop of Calcutta until his death at the age of 42.”
Hymns
- Gospel Hymns Combined, Volumes 1, 2 and 3 at Internet Archive (ebook)
- This is a beautiful old hymn book with a whole lot of hymns in it, as the title promises.
- Holy, Holy! Lord God Almighty! slideshow: Jerry Stratton at Mimsy@YouTube
- Slide show of churches, cathedrals, and religious imagery interspersed with nature photos, using Nicaea, which John Bacchus Dykes wrote for Reginald Heber’s Holy, Holy, Lord God Almighty.
- Holy, Holy, Holy! Lord God Almighty at Wikipedia
- “‘Holy, Holy, Holy! Lord God Almighty!’ is a Christian hymn written by the Anglican bishop Reginald Heber. It is sung to the tune ‘Nicaea’, by John Bacchus Dykes.”
- Hymn Text Comparison: Holy, Holy, Holy at Hymnary.org
- A comparison of the lyrics of “Holy, Holy, Holy, Lord God Almighty” from 1866 through 2020.
- Hymns ancient and modern: William Henry Monk at Internet Archive (ebook)
- “Hymns, ancient and modern, for use in the services of the church, with accompanying tunes, compiled and arranged under the musical editorship of William Henry Monk, organize and director of the choir at King’s College, London.”
- Though the Darkness Hide Thee
- Removing mankind from hymns makes them less inclusive and more self-centered. The new language almost always destroys the universality—the catholicity—of the older language. It also has a tendency to deny the necessity of God’s grace.