Solfa Cipher Secrets

Solfa Cipher is a system for encoding text messages as musical melodies.
Simply type your text message in the top box to encode. Spaces are ignored; commas add bar lines; periods add a new staff. Lower- and upper-case letters can change the octave to make a smoother melodic line. Numbers and other special characters are possible as described at the bottom of this page.


Solfa cipher:  

In the Solfa cipher, the letters D, R, M, F, S, L, and T refer to the seven diatonic scale degrees (e.g., Do, Re, Mi, etc.).
The numbers refer to one of four possible count placements based on a unit duration (e.g., an 8th note).
To encrypt the Solfa cipher as a playable melody, set the Solfa §Key with a clef, tonic, mode and rhythmic unit.

Solfa §Key:                         

Cipher Tune: [set decoy]                      
The cipher tune could use the same clef and key signature as the Solfa §Key or, to disguise the message even further, you could display a decoy key. The position of the notes on the staff will be the same with the decoy, but by selecting a different clef and key signature they will be interpreted as the wrong scale degrees. Selecting a decoy time signature can also help hide the basic rhythmic unit. The Solfa §Key displays the metric placement of the first note, since some texts will start with a pick-up (i.e., not on the downbeat, 1•). Thus, changing the placement of the first bar line in the decoy would also confound decryption. (Note: the automatic bar lines in the decoy may need to be manually adjusted.) The original Solfa §Key will be needed to decipher the melodic message and should be passed on separately from the encrypted melody. If your recipient has a good ear, you could play the melody to pass on the message.

            ABC notation:                       

If you are planning to print or copy-and-paste the Cipher Tune from the pop-up window, you can polish it up first by editing the raw ABC notation. Click on a notehead on the staff to highlight the corresponding part in the ABC notation. Insert "|" between notes to add bar lines (e.g., A3 | C1). Delete spaces to beam consecutive notes (e.g., "D1 A3" => "D1A3"). In Solfa Cipher, the octave register of a note doesn't matter in the encryption (e.g., a low F and a high F both mean the same thing). As such, to make your melody smoother (i.e., fewer big leaps) you may change the default octave of a single note: insert an apostrophe ( ' ) to raise or a comma ( , ) to lower immediately after the letter name (e.g., F2 => F,2). For convenience you can also change the octave by switching from lower- to upper-case letters in the message. Press Enter/Return to start a new staff line. When finished, click 'Refresh MIDI' for revised audio file. Driven by abcjs, an open source ABC notation editor.

Set Solfa §Key by date:
         Year      Month      Date
        Clef:      Tonic:     Mode:     Unit:

Each date has a unique Solfa §Key associated with it. You can encrypt your message based on today's date, a birthday, etc., and then send your recipient the date for the §Key, instead of the musical Solfa §Key. Enter a date in the boxes above to convert it into musical elements.


To extract the solfa cipher from an encrypted melody, you must determine the scale degrees and unit placement for each note based on the original §Key.
Take the following example:

By itself, Tune-395 is unreadable without knowing the original Solfa §Key. The written clef, key signature and time signature for the tune may be a decoy:

Even if the clef and key signature in the decoy were correct, you wouldn't know for certain which note was Do. A key signature with two flats, for example, could be Bb Major (in which the case the first note of the tune appears to be So); G Minor (first note = Le); C Dorian (first note = Me); etc.

In this case, §Key-395 shows us that the tune is meant to be read in treble clef, in D Major, with an 8th note unit.

Using the §Key, you can write out the correct scale with its associated solfege syllables (Do=D, Re=E, Mi=F#, Fa=G, So=A, La=B, Ti=C#) and divide up the rhythms into counts of four 8th notes. The first downbeat is always '1'; some cipher melodies start on an upbeat as indicated in the §Key.

The extracted cipher symbols can then be typed into the Solfa Cipher box above to translate back into plain text:

You must include a space between each note; enter '=' at the end of the cipher text.

If you don't have access to this website, you can manually encode and decode messages with this cipher grid:

Do Re Mi Fa So La Ti
t i a s e n o  1
k z x q j # @  2
r c h m d l u  3
f y g p w b v  4
The mapping of letters to scale degrees and beats within the cipher is intended to produce relatively simple musical melodies that you could sing or play. It is optimized for English and other Western European languages. (Try typing in completely random letters and compare these melodies with ones generated by common words.) With 28 possible cipher symbols, L2 and T2 are not needed for English. These notes can be used as switches to temporarily change the cipher key:
     @ encrypts as T2 and transposes the tonic of the Solfa §Key to the pitch of the next letter. For example, @f would shift all of the subsequent text to be encoded in the key of F (i.e., Do = F). This does not change the key signature, however. If the next letter is not a valid pitch (e.g., @r), it is still enciphered in the melody, but no transposition occurs and it could be interpreted as a null cipher.
     # (L2) switches to an alternate cipher grid which includes numbers, diacritics, and other special characters (for example #1984# or cafe#´ ):
 # Do Re Mi Fa So La Ti #
1 9 3 +& 5 _- 7  1
𝄢 𝄞 $# @%  2
8 2 0 4 *• 6 ¿?  3
÷/ º° >` =~  4
Common diacritical letters may be typed directly into the plaintext message as a single character without any hash sign (e.g., å, ñ, É, etc.) and will be automatically enciphered musically as their three-character equivalent (ü == u#¨). The paired symbols in the grid (e.g., +&, $#, etc.) encrypt to the same scale degree, but display as a different octave (like lower- and upper-case letters). This is intended to allow customization of how the melody appears (e.g., avoid awkward leaps). In decrypting a melody, one should rely on context to interpret intent. For example, both e#´ and E$< encrypt to S1L2S4, and would obviously be meant to represent é regardless of the octave.
For convenience/clarity, all of these alternate notes appear with a randomly-generated staccato ( . ) or tenuto (—) mark in the score above. However, for added security/obscurity you could remove them by deleting the ornamentation in the ABC notation. In a visual score, when this ornamention is present, one technically wouldn't need the hash sign to indicate that the note is representing an alternate character. However, Solfa Cipher was designed as an audible cipher, and as such the hash sign is needed to inform the recipient when to change grids during decryption. As a protocol, with numbers, the switch remains in effect until you insert another # sign to revert back to the original alphabet (e.g., #1812#overture). For other symbols, it is assumed to revert back after one character (e.g, pin#~ata, nai#¨ve, bjo#/rn). D2 through S2 (shown as musical symbols in line 2) could be employed as your own user-defined characters or code words.
© 2013 - Revised: 2021 - grovenTune{at}gmail[dot]com