sol2snd is a sol-fa notation formatter with a focus on generating neat formatted sol-fa sheets from plain text input. sol2snd also generates western staff notation and MIDI sequence from the same input, and converts other score formats into sol-fa notation. The plain text input mimics the essential parts of sol-fa notation for an easy writing experience.
This page has information on or links to:
This section describes the valid input for a sol2snd tune. To input a tune using a score file see "Importing a tune into sol2snd". For help writing sol-fa in general see "See also" section.
sol2snd uses 3 layouts. Layout 1 & 2 assume four parts. Layout 3 has labels for each part.
Layout 1 assumes four parts ordered from soprano to bass and separated by blank lines.
| TEMPO | 60 |
| KEY | F |
| SOPRANO NOTES | *.dmr.mdt,l,ds,-mm.mr-m.fr.rd]Fm.fss.ssf.mf--r.mff.ffm.rmrdD |
| BLANK LINE | |
| ALTO NOTES | *.s,dt,.dl,-f,l,s,-dd.dl,-dt,.t,s,]Fd.rmm.mmr.dr--t,.drr.dt,t,.t,d--D |
| BLANK LINE | |
| TENOR NOTES | *.msf.smssfm-ss.ss-lf.fm]Fs.sss.ssl.ll--f.sll.lls.ss-.fmD |
| BLANK LINE | |
| BASS NOTES | *.s,dt,.t,l,s,f,l,d-dm,.m,f,r,s,s,.s,d]Fl,.t,dd.t,l,l,.dr--f.mrr.rrs,.s,d--D |
Layout2 assumes four parts grouped by line. Blank lines separate line groups.
| TEMPO | 120 |
| KEY | C |
| 'SATB' | SATB |
| SOPRANO LINE1 | ss-ss-sl-d'd'-ls-d'm'-r'd'----] |
| ALTO LINE1 | mm-mm-mf-ff-fm-ms-fm----] |
| TENOR LINE1 | d'd'-d'd'-d'd'-ll-d'd'-d'd'-td'----] |
| BASS LINE1 | dd-dd-df-ff-fs-ss-sd----] |
| BLANK LINE | |
| SOPRANO LINE2 | *r'--r'--m'-r'd'--r'--r'-r'm'-r'd'- |
| ALTO LINE2 | *s--s--s-fm--s--f-fs-fm- |
| TENOR LINE2 | *t--t--d'-td'--t--t-td'-td'- |
| BASS LINE2 | *s--s--d'-sd--s--s-sd'-sd- |
| BLANK LINE | |
| SOPRANO LINE3 | [sd'd'd'r'd'ls-ms-{sd'-d'r'-r'm'----]sd'-d'm'-r'd'---- |
| ALTO LINE3 | [mmmmfffm-dm-{ms-ss-ss----]mm-ms-fm---- |
| TENOR LINE3 | [d'd'sslld'd'-sd'-{d'd'-d't-td'----]d'd'-d'd'-ts---- |
| BASS LINE3 | [ddddfffd-dd-{dm-ms-sd'----]ds-ss-sd---- |
Layout 3 has as many parts as there are part labels S, A, T, or B. Label a part with S for soprano, A for alto, T for tenor or B for bass. Blank lines are optional in layout 3.
| TEMPO | 180 |
| KEY | Bb |
| 'S'SOPRANO NOTES | Sm,f,s,s,s,.s,-f,m,r,--*m,f,s,s,s,.s,-f,m,s,---*s,/m,m,r,m,.f,-m,r,d,r,m,r,*m,f,m,r,.d,-r,m,.m,----*m,/s,s,s,s,s,f,m,r,-.s,-m,*s,s,s,s,s,f,m,s,---*t,dddt,l,s,l,-s,s,*s,l,t,d.d-rt,.d---** |
| 'A' ALTO NOTES | Ad,d,m,m,m,.m,-d,d,d,--*m,r,m,m,m,.d,-d,d,r,---*r,/t,,d,t,,d,.d,-d,l,,l,,l,,d,t,,*d,d,d,d,.l,,-l,,l,,.t,,----*t,,/r,m,m,m,d,d,d,d,-.r,-d,*m,m,m,m,d,d,d,r,---*s,l,l,l,m,m,m,f,--s,*s,f,f,f,.f,-f,s,.s,---** |
| 'T' TENOR NOTES | Ts,l,ddd.l,-l,l,s,--*t,t,ddd.l,-l,l,d--t,*t,/la,s,s,s,.l,-s,f,f,f,l,s,*s,f,f,f,.f,-f,f,.l,---la,*la,/t,dddl,l,l,s,-.t,-s,*ddddl,l,l,d--t,*rmmmmt,t,d--d*ddt,l,.l,-dr.m---** |
10 < TEMPO < 300
'C' 'D' 'E' 'F' 'G' 'A' 'B' 'C#' 'D#' 'F#' 'G#' 'A#' 'Db' 'Eb' 'Gb' 'Ab' 'Bb'
sol2snd uses hash '#' for sharp and lowercase 'b' for flat.
sol2snd notes are a mix of sol-fa symbols d r m f s l t de re fe se le ra ma la ta
note octave modifiers ' ,
note length modifiers . > - ( )
rests *
and repeat and jump markers [ { ] F D
Note names: Abbreviations for relative pitches in scale (5 sharps/5 flats)
d ........ doh
de ...... doh sharp
ra ...... reh flat
r ........ reh
re ...... reh sharp
ma ...... mi flat
m ........ mi
f ........ fah
fe ...... fah sharp
s ........ sol
se ...... sol sharp
la ...... lah flat
l ........ lah
le ...... lah sharp
ta ...... si flat, ti flat
t ........ si,ti
Note octave modifiers: ' ,
...
d,, ......... -2 octaves
d, ........... -1 octave
d ............. 0 [no change]
d' ........... +1 octave
d'' ......... +2 octaves
...
Append to any note name as many as needed. These affect the single note which they are appended to.
Rests: *
* ........ one beat rest
** ...... two beat rest
Note length modifiers: - . > ()
d-- ................. three beats
d- ................... two beats
d ..................... one beat
d.r ................. half beats
d.* ................. half beat & half beat rest
*.d ................. half beat rest & half beat note
d>r.m>f ......... quarter beats
d>r.m>* ......... quarter beats & quarter beat rest
d>r.m ............. two quarter beats & a half beat
d>r.* ............. two quarter beats & a half beat rest
d.r>m ............. half beat & two quarter beats
(drm) ............. triplets
Key change: /
s/t ........ sol in old scale is now ti (4 semitone downward key change)
s/m ........ sol in old scale is now mi (3 semitone upward key change)
d t,l,/d - d r m - = d t, l, - l,t,de-
For best results in a multi-part tune repeats and jumps should occur at the same measure in each part.
Repeats and jumps: [ { ] F D
section1[section2]section3.......... At ], repeat section 2 and continue with section 3
section1]section2................... At ], repeat from start and continue with section 2
section1[section2{ending1]ending2... At ], repeat section 2 then at {, jump to ending 2 (First and second endings)
section1{ending1]ending2............ At ], repeat from start then at {, jump to ending 2 (First and second endings)
section1Fsection2D.................. At D, jump to beginning and stop at F (Da Capo al Fine)
section1[section2Fsection3D......... At D, jump to [ and stop at F (Da Segno al Fine)
sectionN, endingN are any string of notes.
For best results formatting for beats per measure and beats per line, a tune should contain an integer multiple of beats.
Start and end parts with a note name (or rest); use note length modifiers . > as beat dividers only. See sol-fa equivalents to staff notation.
For example:
d.m = two half beats
d>r.m>f = four quarter beats
Fractional phrases at the beginning or end of a part produce bad results.
Pad with a rest to complete a whole beat at the beginning.
For example:
*>d.m = quarter beat rest, quarter beat doh, and half beat mi
Pad with a rest to complete a whole beat at the end.
For example:
d.* = half beat doh and half beat rest
This section describes how to add lyrics to your tune on sol2snd
In the Lyrics field, each line of lyrics is matched to the entire tune as written. Each new line is a new verse or the alternate lyrics of a repeated section.
A blank line separates sets of lyrics intended for different parts (S,A,T etc). Each set of lyrics is matched to a part in corresponding order.
Tunes,.>s,l,s,dt,- |
LyricHap-py birth-day to you |
Output![]()
|
Tunes,smdt,l,fmdrd- |
LyricHow old are you now How old are you now |
Output![]() ![]() |
Tunes,s,dds,f,s,s, |
LyricThis ma-ny^a year Tim has been gone |
Output![]() ![]() |
Tune[mrd-d-msr-r-msl-s-mrd---]sl.td't |
LyricCome thou fount of ev-ery bless-ing Tune my heart to sing thy grace Teach me ev-er |
Output![]() ![]() |
TuneSd--d--d-rm--m-rm-fs----- |
LyricRow row row your boat gent-ly down the stream |
Output![]() ![]() |
Lyric Placement![]() Separate |
The lyrics field will place lyrics correctly for both staff and sol-fa outputs. But if you only need the sol-fa output, you may enter a dummy word in the lyrics field. This will create blank cells on the lyrics line in the sol-fa output. Then choose 'Extra Edit' to fill in the blank cells with your lyrics.
This section describes how credits are added to your tune by sol2snd
You may list any source information in the credits area. sol2snd arranges them two-per line, right-to-left after the title. They are typically interpreted as:
Credits[1 music by] |
Output![]() |
To convert other score formats into sol-fa notation use the Import button and select a score file. sol2snd will attempt to transcribe from MIDI sequence, ABC notation or MusicXML formats into sol-fa notation. See the list of file types used by sol2snd.
This section describes some of the things you can do with sol2snd. Try it yourself with the demo or see a recorded demo.
Use 'D' for D.C., 'F' for FINE.
Tuned--dt,-d-l,-d-s,---m-d-f-r-d-t,-d---Fm--mr-m-f-m-r---m--mr-m-f-m-r---D |
Output![]() ![]() |
The 'Half duration' tool modifies your input, halving the note lengths. This can be useful for saving space in sol-fa output.
Tune120 |
Tool![]() |
Modified Tune120 |
The 'Layout' tool swithces between an arrangement to help find chords and an arrangement to help read entire parts in the tune input field.
Tune120 |
Tool![]() |
Modified Tune120 Ab SATB d -.d t, d l, d s, - m d s, -.s, s, s, f, f, m, - s, s, m -.m f m d d d - d d d, -.d, r, m, f, l, d - d, m, f r d t, d -F m -.m r m l, l, s, s,.f, m, -F s, -.s, s, s, d f m r d -F d -.d t, d f, f, s, s, d, -F d -.d s, d f m r - m -.m r m f m s, s, s, - s, -.s, s, s, s, s, r d t, - d -.d t, d r d t, d s, - d -.d s, d t, d r -D s, -D t, -D s, -D |
Surround a repeated section with repeat symbols, [ and ]
Tune[ss-ss-sl-d'd'-ls-d'm'-r'd'----] |
Output![]() ![]() |
A left brace '{' marks the beginning of the first ending in a repeated section with a second ending.
Tune[sd'd'd'r'd'ls-ms-s{d'-d'r'-r'm'----]d'-d'm'-r'd'---- |
Output![]() ![]() |
Set the upbeat using "Start on".

For the MIDI sequence output of a tune you can choose a percussion style to go with it.

After importing MIDI, you may need to clean up tiny rests from the imported result. The 'Tiny Rests' tool removes tiny rests from the text.
Tool![]() |
This section demonstrates various uses of sol2snd output:
Use layout 3 for non-SATB arrangements.


A book is a selection of your tunes in sol-fa notation. To include tunes in a book you pick from your list of tunes for which you selected the 'Formatted sol-fa' output type. sol2snd generates an index of titles at the end.
The book format is a webpage that can be viewed in a browser or print. On screen, each tune appears on one page. In print, tunes may break across a page.
A "live" book always shows the current version of each tune in it. To keep an edition with tunes as at the current time, download or save an offline copy. Click download or follow the "Saving Info" steps or "PDF info" steps.
Working with downloaded sol-fa sheets, some editors may not show the beat separators : and | in a downloaded sol-fa sheet that has the standard formatting. If your editor does not show beat separators, try selecting "Inline separators". (Then Update and re-Download).
This section describes the file types supported by sol2snd
| Extension | Type | sol2snd use | Remarks |
|---|---|---|---|
| HTML | Web Document | Formatted sol-fa | |
| XML | MusicXML | Score format | To display staff notation, sol2snd generates a MusicXML file and passes it to the Abcweb web score display library. You may also download this file to view or edit it using your music notation application. |
| MID | MIDI Sequence | Tune performance | To play your tune, sol2snd generates a MIDI sequence. Each part in your tune becomes a track in the MIDI sequence. The Midi.js library is used to audition it in the browser. You may download this file to play or edit it with a digital audio tool. |
| Extension | Type | sol2snd use | Remarks |
|---|---|---|---|
| TXT | Text Document | Shorthand sol-fa | sol2snd typically takes input on-screen but you may upload a TXT file containing that input. The essential bit is the tune text (Tempo, Key signature and Notes). See a sample sol2snd TXT file. |
| MID, MIDI | MIDI Sequence | Score format | These score formats can be uploaded to sol2snd for conversion to sol-fa notation. |
| ABC | ABC Notation | ||
| XML, MXL | MusicXML |
This section lists links to resources on how to manually convert staff notation to sol-fa: