solfa -- translate selected Humdrum pitch-related representations to tonic solfa syllables (**solfa)


solfa [-tx] [inputfile ...] [> outputfile.sol]


The solfa command transforms various pitch-related inputs to the corresponding tonic solfa syllables. The command outputs one or more Humdrum **solfa spines -- where pitches are designated by the syllables do, re, mi, fa, so, la, and ti -- or their chromatic alterations: di, da, ri, ra, etc. (see below). Tonic solfa syllables can be determined only with reference to some prevailing key. For example, the pitch C is the tonic (do) in the key of C major, but the mediant (mi) in the key of A-flat major. The solfa command expects a tandem interpretation indicating the key of the input passage; solfa will adapt to specified changes of key within an input stream. If no key information is provided prior to the first pitch-related data, solfa issues an error message and terminates.

There are various systems for extending the tonic solfa syllables in order to representing chromatic alterations. The system used by solfa is tabulated below. (Pronunciations are indicated in parentheses.)

do (doe)di (dee)de (day)
re (ray)ri (ree)ra (raw)
mi (me)my (my)me (may)
fa (fah)fi (fee)fe (fay)
so (so)si (see)se (say)
la (la)li (lee)le (lay)
ti (tee)ty (tie)te (tay)
Summary of solfa Signifiers

The solfa command differs from the deg and degree commands in that pitches are represented without regard to major or minor mode. For example, in the key of C major, deg and degree will characterize A-flat as a lowered sixth scale degree, whereas the same pitch will be a normal sixth scale degree in the key of C minor. In the case of solfa, the A-flat will be characterized as le -- whether or not the key is C major or C minor. As in the case of deg and degree, the amount of chromatic alteration is not represented; once a pitch is "raised," raising it further will not change the output representation. For example, where the tonic pitch is B-flat, both B-natural and B-sharp are represented by di.

The solfa command is able to translate any of the pitch-related representations listed below. For descriptions of the various input representations (including **solfa) refer to Section 2 (Representation Reference) of this reference manual.

It is recommended that output files produced by the solfa command should be given names with the distinguishing .sol extension.

**kerncore pitch/duration representation
**pitchAmerican National Standards Institute pitch notation (e.g. "A#4")
**solfgFrench solfège system (fixed `doh')
**TonhGerman pitch system
Input representations processed by solfa.


The solfa command provides the following options:
-hdisplays a help screen summarizing the command syntax
-tsuppresses printing of all but the first note of a group of tied notes
-xsuppresses printing of non-**solfa signifiers
Options are specified in the command line.

The -t option ensures that only a single output value is given for tied notes; the output coincides with the first note of the tie.

In the default operation, solfa outputs non-pitch-related signifiers in addition to the degree value. For example, in the key of D, the **kern token "4Gz" will result in the output "4faz" -- that is, after translating G to fa, the "4...z" signifiers are retained in the output. For some applications, echoing non-pitch-related signifiers in the output is useful. However, in other situations, the result can prove confusing. The -x option is useful for eliminating non-pitch-related signifiers from the output.


The following example illustrates the use of solfa. The input contains four pitch-related spines -- one of which (**MIDI) cannot be processed by solfa. In addition, there is one non-pitch-related spines (**embell).
!! `solfa' example.
[4a-r.mi_b3F4 A4.
.Heses2.re3G4 Bb4ct
4a-]C3/48/ /52/do3E4 C5ct
.H2 E3/-52/la3G4ct
rA2 F3.rF4.
Executing the command:

solfa -tx input > output

produces the following result:

!! `solfa' example.
ler.sodo mi.
.le.fare fact
.te/48/ /52/meti soct
.la re/-52/dorect
rso me.rdo.
Both processed and unprocessed spines are output. Notice that the tied note at the beginning of measure 2 in the **kern spine has been rendered as a single note rather than as two notes (due to the -t option). Also notice that the non-pitch-related signifiers (e.g. foo) in the first notes of the **pitch spine have been stripped away (due to the -x option).


The file x_option.awk is used by this program when the -x option is invoked.


DOS 2.0 and up, with the MKS Toolkit. OS/2 with the MKS Toolkit. UNIX systems supporting the Korn shell or Bourne shell command interpreters, and revised awk (1985).


**deg (2), deg (4), **degree (2), degree (4), **kern (2), kern (4), **pitch (2), pitch (4), **solfa (2), **solfg (2), solfg (4), **Tonh (2), tonh (4)