About sol2snd

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:

Writing a sol2snd Tune

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.

Layouts

sol2snd uses 3 layouts. Layout 1 & 2 assume four parts. Layout 3 has labels for each part.

Layout 1

Layout 1 assumes four parts ordered from soprano to bass and separated by blank lines.

TEMPO60
KEYF
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

Layout 2

Layout2 assumes four parts grouped by line. Blank lines separate line groups.

TEMPO120
KEYC
'SATB'SATB
SOPRANO LINE1ss-ss-sl-d'd'-ls-d'm'-r'd'----]
ALTO LINE1mm-mm-mf-ff-fm-ms-fm----]
TENOR LINE1d'd'-d'd'-d'd'-ll-d'd'-d'd'-td'----]
BASS LINE1dd-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

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.

TEMPO180
KEYBb
'S'SOPRANO NOTESSm,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 NOTESAd,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 NOTESTs,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---**

Tempo

10 < TEMPO < 300

Key

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

Notes

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

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

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

Rests: *

* ........ one beat rest

** ...... two beat rest

Note Length Modifiers

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

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-
Repeats and Jumps

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.

A Note On Note Length

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

Adding Lyrics To A sol2snd Tune

This section describes how to add lyrics to your tune on sol2snd

Using Lyrics Field

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.

  • Separate syllables using hyphen '-'
    sol2snd will assign each syllable to a note
    Tune
    s,.>s,l,s,dt,-
    Lyric
    Hap-py birth-day to you
    Output

  • Extend a syllable using space ' '
    Besides regular single spacing between words, any extra space extends the preceding syllable by one more note. (The frist "now" in "Lyric" below is followed by 2 spaces.)
    Tune
    s,smdt,l,fmdrd-
    Lyric
    How old are you now  How old are you now
    Output

  • Join syllables using caret '^'
    If multiple syllables that should normally be spaced share a note, put a caret (^) between them. They will appear spaced in the formatted output, assigned to one note.
    Tune
    s,s,dds,f,s,s,
    Lyric
    This ma-ny^a year Tim has been gone
    Output

  • Place a repeated section on a new line
    Lyrics are typically one continuous line matching the order of the notes. Lyrics on a new line are treated as the alternate lyrics of a repeated section.
    Though intended for repeated sections, this can be used to represent verses.
    Tune
    [mrd-d-msr-r-msl-s-mrd---]sl.td't
    Lyric
    Come thou fount of ev-ery bless-ing Tune my heart to sing thy grace Teach me  ev-er
    Streams of mer-cy nev-er ceas-ing call for songs of loud-est praise
    Output

  • Separate lyrics for different parts with a blank line
    This is useful for showing special phrases that belong to one part only.
    Tune
    Sd--d--d-rm--m-rm-fs-----
    A************d--d--d-rm--
    Lyric
    Row row row your boat gent-ly down the stream

    Row row row your boat
    Output


    For the sol-fa output, you can display lyrics for separate parts alternating with the notes by choosing "Separate" lyric placement:
    Lyric Placement


    Separate

Using CLEditor

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.

Adding Credits To A sol2snd Tune

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]
[2 words by]
[3 any other]
[4 etc]
Output

Importing a tune into sol2snd

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.

Usage Examples

This section describes some of the things you can do with sol2snd. Try it yourself with the demo or see a recorded demo.

DaCapo al Fine

Use 'D' for D.C., 'F' for FINE.

Tune
d--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

Half note lengths

The 'Half duration' tool modifies your input, halving the note lengths. This can be useful for saving space in sol-fa output.

Tune
120
Ab
d--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

s,--s,s,-s,-f,-f,-m,---s,-s,-l,-l,-s,-s,f,m,---Fs,--s,s,-s,-s,-s,-s,---s,--s,s,-s,-s,-s,-s,---D

m--mf-m-d-d-d---d-d-d-f-m-r-d---Fd--dt,-d-r-d-t,---d--dt,-d-r-d-t,---D

d,--d,r,-m,-f,-l,-d---d,-m,-f,-f,-s,-s,-d,---Fd--ds,-d-t,-d-s,---d--ds,-d-t,-d-s,---D
Tool
Modified Tune
120
Ab
d-.dt,dl,ds,-mdfrdt,d-Fm-.mrmfmr-m-.mrmfmr-D

s,-.s,s,s,f,f,m,-s,s,l,l,s,s,.f,m,-Fs,-.s,s,s,s,s,s,-s,-.s,s,s,s,s,s,-D

m-.mfmddd-dddfmrd-Fd-.dt,drdt,-d-.dt,drdt,-D

d,-.d,r,m,f,l,d-d,m,f,f,s,s,d,-Fd-.ds,dt,ds,-d-.ds,dt,ds,-D

Toggle layout

The 'Layout' tool swithces between an arrangement to help find chords and an arrangement to help read entire parts in the tune input field.

Tune
120
Ab
d-.dt,dl,ds,-mdfrdt,d-Fm-.mrmfmr-m-.mrmfmr-D

s,-.s,s,s,f,f,m,-s,s,l,l,s,s,.f,m,-Fs,-.s,s,s,s,s,s,-s,-.s,s,s,s,s,s,-D

m-.mfmddd-dddfmrd-Fd-.dt,drdt,-d-.dt,drdt,-D

d,-.d,r,m,f,l,d-d,m,f,f,s,s,d,-Fd-.ds,dt,ds,-d-.ds,dt,ds,-D
Tool
Modified Tune
120
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

Repeat a section

Surround a repeated section with repeat symbols, [ and ]

Tune
[ss-ss-sl-d'd'-ls-d'm'-r'd'----]
Output

First and Second Endings

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

Upbeat

Set the upbeat using "Start on".

Percussion styles

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

Remove tiny rests

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

Miscellaneous

This section demonstrates various uses of sol2snd output:

  • Sol-fa output: Adding text using CLEditor
  • Staff output: Viewing shape notes with a notation application
  • MIDI output: Lyric display on a Karaoke application


Extra Parts Using Layout 3

Use layout 3 for non-SATB arrangements.

  • Example with second Alto (Layout 3)
  • Example with second Alto - different notes only (Layout 3)

About Books

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.

Tips

Getting PDF

You can get your sheet or book as a PDF in several ways:
  1. Print dialog (recommended)
    • Hit Print
    • Depending on your system and browser:
      • The print dialog may have a PDF section. Look for "Save as PDF"
      • The print dialog may have a 'Destination' list. Look for "Save as PDF"
      • The print dialog may have a 'Printer' list. Look for a "PDF writer"
  2. Browser export tool
    If your browser has "Export as PDF" (file menu on Safari 12)
    • Click the Full Window button to show the page in a separate tab
    • On the new tab, use the browser's "Export as PDF" tool
  3. PDF Writer
    If you can not use methods 1 and 2 above, you can install a PDF writer such as Win2PDF for windows. When installed, the writer will appear in the Printers list on the print dialog.

Non-zip Saving

In stead of a zip download, save a non-zip alternative using your browser:
From context menu
  1. Right-click the sheet area
  2. Choose "Save Frame As..." or other "This Frame" saving option
  3. Select "Web page, complete" or "Web archive"
  4. Hit "Save"
    Note: The Web archive saved by one browser may not be compatible with other browsers.
From new tab (If "Save Frame" is not available)
  1. Click the Full Window button to show the page in a separate tab
  2. On the new tab, save using "Ctrl+S" or File -> Save As...
  3. Select "Web page, complete" or "Web archive"
  4. Hit "Save"
    Note: The Web archive saved by one browser may not be compatible with other browsers.

Lyric entry - How to add lyrics later using CLEditor

The lyrics field helps to place lyrics correctly for both staff and sol-fa outputs. But if you will only work with the sol-fa output, you can add lyrics using CLEditor in stead.
  1. First enter a dummy word in the Lyrics field
  2. Choose the sol-fa output type and hit 'Next'
  3. On the sol-fa output click 'Extra Edit'
  4. Then add lyrics on the row where your dummy word appears. Each chord has an empty cell on that row for the lyric.

Lyrics For MIDI Sequence

sol2snd adds lyrics to the MIDI sequence generated so lyrics can be viewed on MIDI devices or applications that have lyric display. However you may see unexpected results in the MIDI output with lyrics for multiple verses and repeated sections.
Multiple Verses
The lyrics field accepts multiple verses, but the MIDI sequence performs one verse only.
To output a MIDI sequence that performs more than one verse of lyrics, the tune must be extended for multiple verses.
As this is only required for the MIDI output, you may want to create a version of your tune just for MIDI:
  1. First modify the title to create an alternate version of your tune.
  2. Then rewrite your tune to repeat each part for as many verses as desired.
Repeated Sections
The tune area may have condensed arrangements of repeated sections, but in MIDI they are reproduced in full as performed without backward jumps. Therefore lyrics written for the condensed arrangement will not match the expanded arrangement of the MIDI output.
To have lyrics match notes in the MIDI output for a tune with repeated sections, lyrics for repeated sections should appear in full and on the same line.
For this you may want to create a version of the tune written for MIDI:
  1. (Optionally) modify the title to create an alternate version of your tune.
  2. Then rewrite the lyrics in singing order and on one line for each verse.

Navigating in Books

Books are deck.js decks with 'goto', and navigation enabled.
On mobile
  1. Tap once to show navigation buttons. Use the arrow buttons to turn pages
  2. Double-tap to show 'goto' tools
    1. In the input box, type text to search titles, then select a title to go to it
    2. Also in the input box, enter a song number, then tap 'Go' to go to that song
    3. For page thumbnails, tap the menu (columns) button
    4. To jump to the Index, tap the index (rows) button
On desktop
  1. To turn pages, use the arrow keys or the on-screen arrow buttons
  2. Press 'M' to show/hide page thumbnails
  3. If you know the song number, press 'G' and enter the number
  4. To find tunes by title press 'G' and start typing the title
  5. To jump to the Index, press 'G', then 'I', then Enter

Saving a book edition - Saving an offline copy of a book

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.

"Inline separators" - Beat separator display for some editing applications

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

sol2snd File Types

This section describes the file types supported by sol2snd

Output types

ExtensionTypesol2snd useRemarks
HTMLWeb DocumentFormatted sol-fa
XMLMusicXMLScore 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.
MIDMIDI SequenceTune performanceTo 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.

Input types

ExtensionTypesol2snd useRemarks
TXTText DocumentShorthand 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, MIDIMIDI SequenceScore format These score formats can be uploaded to sol2snd for conversion to sol-fa notation.
ABCABC Notation
XML, MXLMusicXML

See Also

This section lists links to resources on how to manually convert staff notation to sol-fa: