solfg -- translate selected Humdrum pitch-related representations to French solfège notation


solfg [-tx] [inputfile ...] [ > outputfile.slg]


The solfg command transforms various pitch-related inputs to the corresponding French system for designating pitches. It outputs one or more Humdrum **solfg spines. French pitch designations use the so-called "fixed-doh" system, where: do, ré, mi, fa, sol, la, and si correspond to C, D, E, F, G, A, and B. In **solfg, flats (bémol) and sharps (dièse) are abbreviated b and d respectively. Hence, `do dièse' (do~d) for C sharp, `la bémol' (la~b) for A flat, `sol double-dièse' (sol~dd) for G double-sharp, `si double-bémol' (si~bb) for B double-flat, and so on.

The solfg command is able to translate any of the pitch-related representations listed below. In each case, a tuning standard of A4 equals 440 hertz is assumed. For descriptions of the various input representations (including **solfg) refer to Section 2 (Representation Reference) of this reference manual.

It is recommended that output files produced using the solfg command should be given names with the distinguishing `.slg' extension.

**centshundredths of a semitone with respect to middle C=0
**degreekey-related scale degree
**freqfundamental frequency (in hertz)
**fretfretted-instrument pitch tablature
**kerncore pitch/duration representation
**MIDIMusic Instrument Digital Interface tablature
**pitchAmerican National Standards Institute pitch notation (e.g. "A#4")
**semitsequal-tempered semitones with respect to middle C=0 (e.g. 12 = C5)
**specCspectral centroid (in hertz)
**TonhGerman pitch system
Input representations processed by solfg.


The solfg 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 **kern notes
-xsuppresses printing of non-solfg data
Options are specified in the command line.

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

In the default operation, solfg outputs non-pitch-related signifiers in addition to the solfg value. For example, the **pitch token "Gb5zzz" will result in the output "sol~b5zzz" -- that is, after translating Gb5 to sol~b5, the "zzz" 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 -- especially, when the non-pitch-related signifiers are numbers. Consider the case of the **kern token "8aa#"; after translating `aa#' to la~d5, the non-pitch-related signifier `8' will also be output, hence the value 8la~d5 -- which may cause confusion. Commands such as pitch and solfg treat the first number encountered in an input token as the octave designation. So further processing of this token may lead to it's interpretation as A#8 -- or even A#85 -- rather than A#5.

The -x option is useful for eliminating non-pitch-related signifiers from the output. For most **kern inputs, the -x option is recommended.


The following example illustrates the use of solfg. The input contains six pitch-related spines -- two of which (**deg and **cocho) cannot be processed by solfg. In addition, there are two non-pitch-related spines (**embell and **metpos).
!! `solfg' example.
4a-]D4/48/ /52/128.116+/4ct
.D4 F4/-52/237.33 6.43/4 5/4ct
rG4.r1r3/4 1/5.
Executing the command

solfg -tx input > output

produces the following result:

!! `solfg' example.
.re4do3 mi3128.11si4ct
.re4 fa4.237.33 6.4fa4 la4ct
rsol4.r1rfa4 re5.
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, **MIDI, and **cocho spines have been stripped away (due to the -x option). In the case of the **degree input, solfg recognizes the spelling of various pitches in the context of the key of D minor. Hence, the raised third degree is fa~d (F#), and the raised sixth degree is si (B natural).


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).


**cents (2), cents (4), **degree (2), degree (4), **freq (2), freq (4), **fret (2), **kern (2), kern (4), **MIDI (2), midi (4), mint (4), **pitch (2), pitch (4), **semits (2), semits (4), **solfg (2), **specC (2), specc (4), **Tonh (2), tonh (4)