ABC Transcription Tools User Guide

This free, open-source ABC converter/player tool was developed by Michael Eskin

Try it out here:  ABC Transcription Tools

YouTube playlist with all the demo videos:  Demo Videos

Just getting started with ABC?
ABC Notation
has links to many tutorials and videos on getting started with using ABC notation.


Table of Contents

   


Introduction   (Top)

ABC Transcription Tools is a free, web-based, open-source tool for converting music in ABC and MusicXML format to both standard notation and tablature for a wide variety of instruments.

Search for tunes by name from a built-in database of over 60,000 ABC tune settings and quickly add them to your tunebooks.

Play your tunes with over 500 high-quality, sampled instruments.

Use the Tune Trainer to practice your tunes with increasing tempos.

Create PDF tunebooks with title pages, table of contents, tune index, custom headers, footers, hyperlinks, tune incipits (notation or raw ABC), and sharing QR codes using the tool's built-in Export PDF feature.

Quickly transpose a single ABC tune or entire ABC tunebooks to any key.

You can fully customize the look of your notation using the standard ABC spacing and font annotations.

Easily share your tunes with others via Share URLs and QR Codes.


Getting Started   (Top)

On desktop browsers, when the tool is run, you should be seeing a side-by-side view with the ABC editor on the left and the notation on the right:


On a desktop browser, if you are seeing a single column view with the ABC editor at the top and the notation below, or the welcome dialog is taller than the screen, try zooming your browser view out using the following keystrokes:

Windows:  Ctrl -

Mac:  ⌘ -


Note: On iOS and Android devices the tool runs in a portrait-mode single-column layout with the ABC editor on the top and the notation below.


Click the ? at the top-left of the window or any dialog to open the related User Guide topic in a new browser tab.


When notation is present, you can:

- Click the Zoom arrows at the top-right of the window to view the notation full screen.

- Click the Play icon button at the bottom-right of the window to play the currently selected tune.

- Click the PDF icon button at the bottom-left of the window to export a PDF of the tunebook.

The Play and PDF icon buttons are always available in the notation full screen view mode on both desktop and mobile browsers.

They are both available in ABC edit mode on desktop browsers but not mobile device browsers to avoid interfering with the notation display on narrow screens.


Most features in the tool have tool tips you can view by hovering your mouse cursor over the button or other control.


Top Bar Buttons   (Top)


Open:

Opens an ABC or MusicXML file.

Details below in the Open an ABC or MusicXML File section.


Add:

Brings up a dialog where you can add your own ABC or MusicXML tunes, restore from previously saved Snapshots, re-order the tunes, add example ABC tunes, add useful ABC templates, or configure PDF tunebook features.

Details below in the Adding Your Own Tunes to Your Tunebook section.


Save:

Saves the contents of the ABC editor to a file.


Export PDF:

Exports the currently displayed score as a high quality PDF file.

The saved ABC or PDF file will be in your browser's Downloads directory.

On iOS the downloaded files will be found in the "Downloads" directory in the iOS "Files" app.

On desktop browsers, you can also click the PDF icon at bottom-left of the window.


Copy All:

Copies all the ABC text to the system clipboard so you can easily paste it into social media posts, emails, or other tools.


Play:

Opens the ABC Player where you can play the current tune. Full details below in the Playing Your Tunes section.

On desktop browsers can also click the Play icon at the bottom-right of the window.

If multiple tunes are in the ABC editor, holding down the Alt key on your keyboard while clicking the toolbar play button will play a random tune from the tunes available.


Highlighting On/Off:

Toggles Notation/ABC automatic highlighting On/Off.

Full details below in the Notation and ABC Highlighting section.


Settings:

Brings up the default playback instruments and other tool-wide settings dialog.

Full details below in the ABC Transcription Tools Settings section.


▲/▼:

Click this to hide/show the header at the top and any visible controls below the ABC text area so you can have more room to work on your music.


Open an ABC or MusicXML File   (Top)

Open:

The tool supports opening both ABC and MusicXML files.

The file type being opened depends on the file extension:

.abc or .txt - Opens an ABC file from your computer and loads it into the ABC Editor.

.xml, .musicxml, or .mxl - Imports a MusicXML file form your computer, converts it to ABC, and loads it into the ABC Editor.

Details on MusicXML import settings below in the MusicXML Import Settings section.

On desktop browsers, you may also drag-and-drop a single ABC or MusicXML file on the editor area to add it.

If you have unsaved work, you will be asked to confirm that you want to abandon your work in progress and load a new ABC file.


Adding Your Own Tunes to Your Tunebook   (Top)

Add:

Brings up a dialog where you can add your own ABC or MusicXML tunes, restore from previously saved Snapshots, re-order the tunes, delete tunes, add example ABC tunes, add useful ABC templates, or configure PDF tunebook features:

If you would like to only show the buttons for the features you commonly use and hid the others, click the controls icon at the top-right of the dialog to choose features of the dialog you would like to show/hide:

The most commonly used buttons are always shown.

Your preferences are saved and restored the next time you use the tool.


Choose File to Add:

Browse your system for an ABC or MusicXML file with one or more tunes to add to the end of the current tunes.


Restore from Snapshot:

This button appears if there is a saved Snapshot available in browser storage.

When clicked, restores the last saved Snapshot, replacing the contents of the ABC editor.

Since it completely replaces the contents of the ABC editor, you will be asked to confirm the operation.


Restore from Auto-Snapshot: (Desktop browsers only)

This button appears if there is a saved Auto-Snapshot available in browser storage.

When clicked, restores the last Auto-Snapshot, replacing the contents of the ABC editor.

Since it completely replaces the contents of the ABC editor, you will be asked to confirm the operation.

On desktop browsers, automatic snapshots when closing or reloading the browser tab the tool is running in can be enabled in the tool's Settings dialog.


Search and Add Tunes   (Top)

Brings up a dialog where you search either Gavin Heneghan's tune collection (over 20,000 tune settings) or the FolkFriend.app tune collection (over 45,000 tune settings) by tune name and style and then optionally add them to your tunebook:

When first entering this dialog or changing the search collection, the tool will need to load the tune collection.

The status will read "Ready to search" when the tune collection has been loaded.

Enter some text to search for in the title of the tunes and click Search

By default, the search will return only the first variation of a tune found.

If you want all the variations for a tune, uncheck Only return first variation found?

If you want to match the search text only at the start of the tune name, check Match start of title?

If you want to only match tunes that also have chords, check Only return tunes with chords?

Select the tune style you want from the Tune style dropdown.

Select the maximum number of search results you want from the Maximum number of results dropdown.

Click Add Results to Tunebook to append the search results tunes at the end of the ABC editor.

If you don't want all the tunes in the search results added to your tunebook, you can simply copy and paste the results you want back into the ABC editor.

You can also get to this dialog by clicking the Search for Tunes link at the top of the tool.


Change the Order of the Tunes   (Top)

On desktop browsers, brings up a dialog where you can drag and drop the tune names to change their order in the tunebook:

On mobile browsers, select a tune name and then use the Move Up and Move Down buttons to change the order of the tune in the tunebook.


Delete Tunes from the Tunebook   (Top)

Brings up a dialog where you can select tunes to delete from the tunebook:

Click on the tune names to select/deselect them.

Click Select All to select all the tunes for deletion.

Click Clear Selection to unselect all the tunes for deletion.

Click Delete to delete the tunes after confirmation.


Adding Example Tunes and Templates to Your Tunebook   (Top)

Add an Example Reel:

Adds "Cooley's" as an example of a typical reel.


Add an Example Reel:

Adds "Cooley's" as an example of a typical reel.


Add an Example Jig:

Adds "The Kesh" as an example of a typical jig.


Add an Example Hornpipe:

Adds "Alexander's" as an example of a typical hornpipe.


Add J.S. Bach Two-Part Invention #1:

Adds the J.S. Bach Two-Part Invention #1 for Harpsichord.

This piece was originally imported from a MusicXML transcription.


Add J.S. Bach BWV570 Fantasia:

Adds the J.S. Bach BWV570 Fantasia in four parts for Pipe Organ.

This piece was originally imported from a MusicXML transcription.


Add a Tune Template:

Adds a minimal ABC template for a tune.


Add a Song Template:

Adds a minimal self-documenting ABC template for a song with lyrics.


Add an Example Song:

Adds a detailed self-documenting example of ABC for a song with lyrics.


Add Bodhran Backing Track Tune Template:

Brings up a dialog where you can add a bodhran backing track for various tune styles to the end of the ABC.

These are two-voice templates.

Voice 1 is the melody. Replace the rests in the template with your tune.

Voice 2 is the Bodhran backing track. Use the existing template or edit to meet your needs.

You can change the tuning of the Bodhran by changing the value A in the template line:

%bodhran_tuning A

to the pitch you'd prefer.

Valid values are: C, C#, Db, D, D#, Eb, E, F, F#, Gb, G, G#, Ab, A, A#, Bb, or B.

If no pitch is specified, the default is A.

Full details on the Bodhran ABC note-to-sound mapping are available in the following section:

Using the Bodhran (MIDI program #117) Instrument


Add Box Fingering Symbols Template:

Add a template with symbols for annotating box fingerings and tablature at the top of the ABC editor text.


Configure PDF Tunebook Features:

Brings up a dialog that you can use to add annotations at the top of the ABC that will add an optional Title Page, Table of Contents, Index, Page Header, Page Footer, playback links, and/or QR code to an exported PDF tunebook.

Full details on PDF tunebook features can be found in the Configure PDF Tunebook Features section of Exporting a PDF Tunebook.


ABC Editor   (Top)

Type or paste your ABC notation here.

Changes are reflected immediately in the displayed notation below the ABC Editor.

You may also paste some ABC text into the ABC Editor or just start typing.

Click on any tune in the ABC to have the notation scroll into view.

Click in the notation for any tune and the ABC area will be autoscrolled so that the ABC for the tune is displayed (or within a few lines, browser dependent).

Note: The tune autoscroll features are not available on iOS or Android devices.


Resizing the ABC Editor   (Top)

On desktop browsers, the ABC text area can be resized by dragging the lower right corner.

When you resize the text area while in the "side-by-side" display mode, the notation will slide over to the right as much as it can:


Notation and ABC Highlighting   (Top)

Notation and ABC Highlighting can be toggled On/Off by clicking the Highlighting On/Off button in the top toolbar.

When Highlighting is turned on:

- Select ABC text to highlight the corresponding notes in red in the notation.

- Click any element in the notation to select the corresponding ABC text in the editor.

- Highlighting requires redrawing all tunes on each change to the ABC.

- This may be slow on large numbers of tunes.

- All pre-processing of the ABC at notation drawing time is turned off. Any hiding of Annotations/Text/Chords selected in the More ABC Tools dialog as well as automatic injection of staff separation space will be disabled. Your settings will be restored when you turn highlighting off.

This feature is only available for desktop browsers.


Viewing the Notation Full Screen   (Top)

If any ABC is present in the ABC Editor, this double-arrow control shows up on the top-right corner of the page.

The control hides or shows the ABC Editor and all controls so you can view your notation full screen.

Click once to hide the ABC Editor and all controls.

Click again to show the ABC Editor and all controls.

Click the ? at the top-left of the window for help using the tool in the full screen view.

Click the PDF icon at the bottom-left of the window to export the tunes in PDF format.

Click the Play icon at the bottom-right of the window to play the current tune.

The size of the full screen notation as a percentage of the browser window width is set in the Advanced Settings dialog. Default is: 50%.

If the resulting scaled width is less than 850 pixels (820 pixels for iOS/Android) the width will be set to 850 pixels (820 pixels for iOS/Android).


Playing Your Tunes   (Top)

To play a specific tune, click anywhere in the ABC for the tune and then click Play.

The tool will find the tune you've clicked on and bring it up in the ABC Player for playback.

If you have selected some notes in the tune, only the selected notes will be played.

Using the playback controls at the bottom, you can enable looping, rewind to start, start/pause playback, click in the progress bar to seek, or change the tempo as a percentage.


If there is more than one tune in the tunebook, click  ←  or  →  to play the previous or next tune in the ABC tunebook.

Shift-click on  ←  to jump to the first tune, shift-click on  →  to jump to the last tune.

The text in the lower right corner shows you the tune number of the current tune in the tunebook and the total number of tunes.

You may also select a tune in the tunebook by title from the pop-up list and the player will switch to that tune.

In the Settings dialog there is an option to have the tunebook navigation controls on the left instead of the right.


Click Export Audio or Image to bring up a dialog where you can export your tune in various audio, MIDI, and image formats.

Full details below in the Exporting Tune Audio or Image Files from the Player section.


Click Start Tune Trainer to bring up the Tune Trainer.

Full details below in the "Step-Up" Tempo Tune Trainer section.


Click Enable Metronome to switch to a version of the tune that has a metronome click sound when playing.

When playing a tune with the metronome enabled, click Disable Metronome to return to the original version.

If you save the tune to .WAV or .MP3 while the metronome is enabled, the resulting audio file will have the metronome sound.

While most common tune meters are supported by the metronome system, if the tune you are playing is in a meter that is not supported, you will be presented with a alert explaining the issue and will only be able to play the original version.


If you would prefer larger Player controls, for example for use on mobile devices, open the Advanced Settings dialog and set the check on: Player uses large controls (easier to touch on mobile and tablet)


If a wider view of the notation is available for the current tune based on the aspect ratio of the staves, the Wide View button will appear. (Desktop browsers only)

Clicking this button toggles between wide and normal views of the Player. (Desktop browsers only)


Notes on Playing Selected Notes

The selected playback works with most tunes but there are a few exceptions:

If any ABC : style headers, for example but not limited to P:, K:, or Q: are found in the notation below the header, the entire tune will be loaded into the player.

Selected note playback only works for single voice tunes.

If a V: tag is present anywhere in the tune, the entire tune will always be loaded into the player.

If you prefer to always have the entire tune played even if notes are selected, you can disable the selected note playback feature in the Advanced Settings dialog.


Click Close to return to the ABC editor.


"Step-Up" Tempo Tune Trainer   (Top)

Brings up a "step-up" tune player with the last clicked tune where you can practice playing along with the tune looped with increasing tempos:


Enter your starting tempo percentage in the box labeled Starting tempo %.


Enter your ending tempo percentage in the box labeled Ending tempo %.

The actual playback tempo in beat-per-minute will depend on the tempo of the original tune, either set with a Q: tag or using the default tempo if no Q: tag is present.


Enter how much you want to speed up the play each time the speed is increased in the box labeled Tempo increment %.

Enter zero if you just want to loop at the starting tempo.


Enter how many times the tune should loop before incrementing the speed in the box labeled Increment tempo after how many loops.

If Player/Tune Trainer uses label L/R side click to decrement/increment values (for touch devices) is checked in the tool settings, you can decrement or increment the value of any number input field by clicking on the left or right side of the label to the left of the field.

If you click the % the the right of any of the tempo percentage input fields, the touch increment for the tempo percentages toggles between 1 and 5.


Clicking on the loop count label decrements or increments by 1.


If you want a countdown delay before playback, for example to give you time to pick up your instrument, check Countdown? and set the number of seconds for the countdown in Countdown secs. Values are saved for the next time you use the Tune Trainer.


Click Apply Trainer Settings and Reload the Player to apply your values.


Click the play button to start the training session.

While playing, the progress through your training session is shown as a bar graph at the bottom-left of the Tune Trainer.


Click Enable Metronome to enable the metronome.

When playing a tune with the metronome enabled, click Disable Metronome to return to the original version.

Toggling the metronome resets the Tune Trainer to its initial tempos.


If a wider view of the notation is available for the current tune based on the aspect ratio of the staves, the Wide View button will appear. (Desktop browsers only)

Clicking this button toggles between wide and normal views of the Tune Trainer.


To exit the Tune Trainer, click Close.


Choosing the MIDI Soundfont and Instruments for Playback   (Top)

You may choose which instrument sounds are used for the melody and bass and chords when playing tunes.

By default, the melody, bass, and chords instrument used is a piano.

You can specify which abcjs General MIDI soundfont to use for a specific tune by adding any of these six comment-based annotations in the ABC header for the tune:

%abcjs_soundfont fluid

%abcjs_soundfont musyng

%abcjs_soundfont fatboy

%abcjs_soundfont canvas

%abcjs_soundfont mscore

%abcjs_soundfont arachno

Each soundfont is a full General MIDI implementation, but has somewhat different sounds for each instrument.

If no %abcjs_soundfont soundfont is specified in a tune, the default soundfont chosen in the tool's Settings dialog is used.

It is not possible to change soundfonts within a tune.

If multiple instancs of %abcjs_soundfont are found in a tune, only the first one is used.

For more details on the soundfonts, visit: midi-js-soundfonts on GitHub

If Use custom sounds for Dulcimer, Accordion, Flute, Whistle, Banjo, Bagpipe, Fiddle, and Bodhran is enabled in the Settings (on by default), for all soundfonts, my custom sampled instruments for Dulcimer, Accordion, Flute, Whistle, Banjo, Bagpipe, Fiddle, and Bodhran (overrides Melodic Tom) will override the soundfont sounds.

If you wish to override the custom sound setting for a specific tune, add one of the following comment-based annotations anywhere in the tune:

% Force use of custom sounds for this tune:
%use_custom_gm_sounds true

% Disable use of custom sounds for this tune:
%use_custom_gm_sounds false

Choosing the Melody Instrument Sound

To choose the instrument used for the melody, add the following line to your ABC right after any headers and before the ABC notes, for example for an Accordion sound:

%%MIDI program 21

Example:

X: 1
T: The Kesh
R: Jig
M: 6/8
L: 1/8
K: Gmaj
%%MIDI program 21
D|: GAG GAB | ABA ABd | edd gdd | edB dBA |
GAG GAB | ABA ABd | edd gdB |1 AGF G2D :|2 AGF G2A||
|: B2B dBd | ege dBA | BAB dBG | ABA AGA |
B2 B dBd | ege dBd | gfg aga |1 bgg g2A :|2 bgg g2D |]

To change the instrument used for the melody, try changing the MIDI program # above to one of:

Piano: 0, Harpsichord: 6, Accordion: 21, Fingered Bass: 33, Harp: 46

By default, if you have chords in the ABC, the instrument used for the bass and chord playback is a piano.

Choosing the Bass and Chord Instrument Sounds

To choose the instrument for the bass and chords, add the following lines to your ABC right after any headers and before the ABC notes, for example for a Bass sound:

%%MIDI bassprog 34

%%MIDI chordprog 34

Here's the same example where I've added the bass and chords instrument program selection:

X: 1
T: The Kesh
R: Jig
M: 6/8
L: 1/8
K: Gmaj
%%MIDI program 21
%%MIDI bassprog 34
%%MIDI chordprog 34
D|: GAG GAB | ABA ABd | edd gdd | edB dBA |
GAG GAB | ABA ABd | edd gdB |1 AGF G2D :|2 AGF G2A||
|: B2B dBd | ege dBA | BAB dBG | ABA AGA |
B2 B dBd | ege dBd | gfg aga |1 bgg g2A :|2 bgg g2D |]

To change the instrument used for the bass and chords, try changing the MIDI bassprog or chordprog # above to one of:

Piano: 0, Electric Piano: 5, Guitar: 25, Bass: 34, Synth Bass: 38

Changing the Playback Volume of the Melody, Bass, and Chords

To change the volume of the melody, add a dynamics indication in the ABC itself before all the notes.

For example, to make the melody very soft, you can inject a !ppp! pianissimo annotation:

!ppp! |:"Em"EBBA B2 EB|"Em"B2 AB dBAG|"D"F/E/D AD BDAD|"D"F/E/D AD BAGF|

Most standard dynamics indications are supported, for example: !ppp!, !pp!, !p!, !mf!, !f!

To completely mute the melody, change the MIDI Program to 143 (or mute):

%%MIDI program mute

To change the volume of the bass and chords, add the following two chordvol and bassvol %%MIDI directives immediately before any %%MIDI program and %%MIDI chordprog directives:

% Set the chord and bass volume (0-127)
%%MIDI chordvol 16
%%MIDI bassvol 16
%
% Use an Accordion sound when playing the melody:
%%MIDI program 21
%
% Use an Accordion sound when playing the bass:
%%MIDI bassprog 21
%
% Use an Accordion sound when playing the chords:
%%MIDI chordprog 21
%

The volume range is from 0 to 127.

To completely mute the bass or chords, change their MIDI Program to 143 (or mute):

%%MIDI bassprog mute
%%MIDI chordprog mute

The following MIDI instruments now use the same samples as my iOS "Celtic Sounds" and other apps:

Hammered Dulcimer: 15, Accordion: 21, Flute: 73, Whistle: 78, Banjo: 105, Bagpipe: 109, Fiddle: 110, Bodhran: 117, Uilleann Pipes: 129, Scottish Smallpipes (D): 130, Scottish Smallpipes (A): 131, Säckpipa: 132, Concertina: 133, Melodica: 134, Cajun Accordion: 135, Solfège: 136, Chorused Guitar (nylon): 137, Chorused Guitar (steel): 138, Irish Bouzouki: 139, Irish Bouzouki 2: 140, Mandolin: 141, Marching Drums: 142, Silence: 143 (or mute)

The Scottish Smallpipes (A) samples are from an instrument tuned in A, but the note numbers mapped to D so that they have the same transposed MIDI note range as the flute or whistle.

The Flute, Whistle (if Use custom sounds for Dulcimer, Accordion, Flute, Whistle, Banjo, Bagpipe, Fiddle, and Bodhran in the Settings is enabled), and Uilleann pipes sounds will automatically "fold" notes below first octave D up an octave.

The Säckpipa and Scottish Smallpipes (A) and (D) sounds will automatically "fold" notes above second octave D down an octave.

Any General MIDI instrument program number can be selected for the melody and chord sounds.


Setting the Release Decay Time for Notes

You can manually set the release decay time for notes using:

%abcjs_release_decay_time release_decay_time_in_milliseconds

This can be useful for lengthening the decay time on note releases for plucked and other instruments.

For example to set the release decay time for a specific tune to 500 milliseconds, add this anywhere in the tune ABC:

%abcjs_release_decay_time 500

The default release decay time for abcjs is 200 milliseconds.

When using my custom Hammered Dulcimer samples, the release decay time, unless overridden by this annotation, is 4000 milliseconds.


General MIDI Instrument Program Numbers    (Top)

Use program #143 Silence (or mute) to mute MIDI voices.

This can be used, for example, to create "Music Minus One" recordings consisting only of backing bass and chord tracks.


General MIDI Drum Sound ABC Note Map   (Top)

Use program #128 (Percussion) on its own voice for MIDI click tracks.


Using the Tenor Banjo (MIDI program #105) Instrument   (Top)

If %%MIDI program 105 (Banjo) is used in a tune, you may choose between one of five different custom Tenor Banjo sounds using one of the following comment-based annotations anywhere in the tune's ABC:

% Use the default banjo sound from the current soundfont
%banjo_style 0

% Dark tone
%banjo_style 1

% Medium bright tone
%banjo_style 2

% Bright tone
%banjo_style 3

% Medium bright tone, slightly rough
%banjo_style 4

Only the first instance of a %banjo_style annotation found in a tune will be used for that tune.

If no banjo style is specified in a tune, the default is style 2.

If banjo style 0 is selected, the default banjo sound from the current soundfont selected for the tune (or the tool default if not specified in the tune) will be used.

If you wish to override all custom sound setting for a specific tune, add one of the following comment-based annotations anywhere in the tune:

% Force use of custom sounds for this tune:
%use_custom_gm_sounds true

% Disable use of custom sounds for this tune:
%use_custom_gm_sounds false


Using the Bodhran (MIDI program #117) Instrument   (Top)

If you have Use custom sounds for Dulcimer, Accordion, Flute, Whistle, Banjo, Bagpipe, Fiddle, and Bodhran checked in the tool's Settings, MIDI instrument #117 (Melodic Tom) is remapped to bodhran sounds with the following note map:

%
% Basic low pitch strikes start at C,,,
%
C,,, - Strike velocity low
^C,,, - Strike velocity low
D,,, - Strike velocity medium low
^D,,, - Strike velocity medium low
E,,, - Strike velocity medium high
F,,, - Strike velocity high
^F,,, - Strike velocity high
G,,, - Strike velocity medium low - Scale Root
^G,,, - Strike velocity medium low - Major 2nd
A,,, - Strike velocity medium low - Major 3rd
^A,,, - Strike velocity medium low - Major 4th
B,,, - Strike velocity medium low - Major 5th
%
% Low pitch pitched strike versions at multiple velocities and pitches start at C,,
%
C,, - Strike velocity low - Scale Root
^C,, - Strike velocity low - Major 2nd
D,, - Strike velocity low - Major 3rd
^D,, - Strike velocity low - Major 4th
E,, - Strike velocity low - Major 5th
F,, - Strike velocity medium low - Scale Root
^F,, - Strike velocity medium low - Major 2nd
G,, - Strike velocity medium low - Major 3rd
^G,, - Strike velocity medium low - Major 4th
A,, - Strike velocity medium low - Major 5th
^A,, - Strike velocity medium high - Scale Root
B,, - Strike velocity medium high - Major 2nd
C, - Strike velocity medium high - Major 3rd
^C, - Strike velocity medium high - Major 4th
D, - Strike velocity medium high - Major 5th
^D, - Strike velocity high - Scale Root
E, - Strike velocity high - Major 2nd
F, - Strike velocity high - Major 3rd
^F, - Strike velocity high - Major 4th
G, - Strike velocity high - Major 5th
%
% Scrapes and taps start at ^G,
%
^G, - Scrape
A, - Edge tap velocity low
^A, - Edge tap velocity medium
B, - Edge tap velocity high
%
% High pitch strikes start at C
%
C - Strike velocity low
^C - Strike velocity low
D - Strike velocity medium low
^D - Strike velocity medium low
E - Strike velocity medium high
F - Strike velocity high
^F - Strike velocity high
G - Strike velocity medium low - Scale Root
^G - Strike velocity medium low - Major 2nd
A - Strike velocity medium low - Major 3rd
^A - Strike velocity medium low - Major 4th
B - Strike velocity medium low - Major 5th
%
% High pitch pitched strike versions at multiple velocities and pitches start at c
%
c - Strike velocity low - Scale Root
^c - Strike velocity low - Major 2nd
d - Strike velocity low - Major 3rd
^d - Strike velocity low - Major 4th
e - Strike velocity low - Major 5th
f - Strike velocity medium low - Scale Root
^f - Strike velocity medium low - Major 2nd
g - Strike velocity medium low - Major 3rd
^g - Strike velocity medium low - Major 4th
a - Strike velocity medium low - Major 5th
^a - Strike velocity medium high - Scale Root
b - Strike velocity medium high - Major 2nd
c' - Strike velocity medium high - Major 3rd
^c' - Strike velocity medium high - Major 4th
d' - Strike velocity medium high - Major 5th
^d' - Strike velocity high - Scale Root
e' - Strike velocity high - Major 2nd
f' - Strike velocity high - Major 3rd
^f' - Strike velocity high - Major 4th
g' - Strike velocity high - Major 5th

The tuning of the bodhran for a tune can be set using either of the following comment-based annotations anywhere in the tune's ABC:

%bodhran_tuning (drum pitch)
%bodhran_pitch (drum pitch)

Where the drum fundamental pitch can be:

C, C#, Db, D, D#, Eb, E, F, F#, Gb, G, G#, Ab, A, A#, Bb, or B.

If no pitch is specified the default fundamental pitch is A.

Demo of the complete bodhran instrument note map:

To use the bodhran sound for a percussion backing track, create a two-voice tune with the bodhran on its own voice:

Example Jig:

X: 1
T: The Kesh - Bodhran Demo
R: Jig
M: 6/8
L: 1/8
Q: 3/8=120
K: Gmaj
V:1 name="Melody"
% Use MIDI program 78 for the melody Tin Whistle sound
%%MIDI program 78
V:2 name="Bodhran"
% Use MIDI program 117 for the Bodhran sound
%%MIDI program 117
% Set the Bodhran tuning to A
%bodhran_tuning A
% Melody voice
V:1
z6|z6|z6|z6|
|:GAG GAB|ABA ABd|edd gdd|edB dBA|
GAG GAB|ABA ABd|edd gdB|AGF G3:|
|:BAB dBd|ege dBA|BAB dBG|ABA AGA|
BAB dBd|ege dBd|gfg aga|bgf g3:|
% Bodhran voice
V:2
FzD FCC | FzD FCC | FzD FCC | FCC !>!F3 |
|:FzD FCC | FzD FCC | FzD FCC | FzD FCC |
FzD FCC | FzD FCC | FzD FCC | FCC !>!F3 :|
|:FzD FCC | FzD FCC | FzD FCC | FzD FCC |
FzD FCC | FzD FCC | FzD FCC | FzD !>!F3 :|

Example Reel:

X: 1
T: Cooley's - Bodhran Demo
C: Traditional
R: Reel
M: 4/4
L: 1/8
Q: 1/2=90
K: Edor
%%staffsep 50
% Set a specific amount of swing:
%swing 0.15
%
V:1 name="Melody"
%%MIDI program 78
V:2 name="Bodhran"
% Use MIDI program 117 for the Bodhran sound
%%MIDI program 117
% Set the Bodhran tuning to A
%bodhran_tuning A
% Melody voice
V:1
z8|z8|z8|z8|
|:EBBA B2 EB|B2 AB dBAG|F/E/D AD BDAD|F/E/D AD BAGF|
EBBA B2 EB|B2 AB defg|afge dBAF|1 DEFD E3D:|2 DEFD E2gf||
|:eB (3BBB eBgf|eBB2 gedB|A/A/A FA DAFA|A/A/A FA defg|
eB (3BBB eBgf|eBBB defg|afge dBAF|1 DEFD E2gf:|2 DEFD E4|]
% Bodhran voice
V:2
CCFC CCFC | CCFC CCFC| CCFC CCFC | CC!>!F/E/D !>!F4 |
|:CCFC CCFC |CCFC CCFC |CCFC CCFC |CCFC CCFC |
CCFC CCFC |CCFC CCFC |CCFC CCFC |1 CC!>!F/E/D !>!F4 :|2 CC!>!F/E/D !>!F4 ||
|:CCFC CCFC |CCFC CCFC |CCFC CCFC |CCFC CCFC |
CCFC CCFC |CCFC CCFC |CCFC CCFC |1 CC!>!F/E/D !>!F4 :|2 CC!>!F/E/D !>!F4 |]

To strongly emphasize a hit, preceed the note with a !>! accent indication as shown in the above examples.

If the bodhran sound is too loud, try adding an !mp! or other ABC dynamic indication before the first note of the bodhran voice ABC.

When using the higher pitched sounds starting on C5, if you want to avoid excessive ledger lines, you can set an octave up transpose in the voice declaration:

V:2 name="Bodhran" transpose=12
% Use MIDI program 117 for the Bodhran sound
%%MIDI program 117

When using the lower pitched sounds starting on C1, if you want to avoid excessive ledger lines, you can set an octave down transpose in the voice declaration:

V:2 name="Bodhran" transpose=-36
% Use MIDI program 117 for the Bodhran sound
%%MIDI program 117


Using the Uilleann Pipes (MIDI program #129) Instrument   (Top)

The Uilleann pipes instrument, MIDI program #129, has chanter sounds over the range of ABC notes G, to D''.

The notes from G, to ^C are a copy of G to ^c for automatic octave folding when playing tunes that would be on the G string on a fiddle.

Two styles of drones and all available regulator pitches found on a full set are available on the following ABC notes:

%
% Drones:
%
D, Crowley-style drones
E, Lynch-style drones
%
% Regulator notes:
%
G,,,
A,,,
B,,,
C,,
D,,
^F,,
G,,
A,,
B,,
C,


Using the Marching Drums (MIDI program #142) Instrument   (Top)

The Marching Drums instrument, MIDI program #142, has a wide variety of percussion sounds useful for creating marching band drum backing tracks.

Here is the map of MIDI note names to drum sounds:

C,,, - ^D,  Bass Drum 1 at various pitches
E, - B,     Bass Drum 2 at various pitches
C - G       Bass Drum 3 at various pitches
^G - c      Bass Drum 4 at various pitches
^c5         Bass Drum 5
d           Snare Drum 1
^d          Snare Drum 2
e           Snare Drum Stick Click
f           Snare Drum Rim Tap
^f          Snare Drum Gak
g           Snare Drum Ping
^g and up   Tenor Drum at various pitches


Setting the Tuning Offset for Individual Voices   (Top)

You may set the playback tuning offset in cents for each voice in the ABC using the following comment-based annotation:

%voice_tuning_cents (voice 1 cents offset) (voice 2 cents offset) (voice 3 cents offset)...

Where the cents offsets can be either positive or negative floating point numbers.

One semitone = 100 cents

This feature can be used to create chorusing effects, wet Accordion sounds, or massed Bagpipes band effects on multi-voice tunes.

Example: Wet-tuned LMM Accordion Simulation

On an Accordion tune with three identical voices, create an LMM wet sounding instrument using the basic Accordion sound:

% Set the tuning of each voice in cents
%voice_tuning_cents -15 15 0
%
% Voice 1 gets a negative tuning of 15 cents
V:1
%%MIDI program 21
%
% Voice 2 gets a positive tuning of 15 cents
V:2
%%MIDI program 21
%
% Voice 3 has no tuning offset but is transposed down an octave
V:3 transpose=-12
%%MIDI program 21
%
% Followed by three identical voices with the same ABC
% Added !p! dynamics to reduce the volume of the total mix
V:1
!p! GAG GAB | ABA ABd |
V:2
!p! GAG GAB | ABA ABd |
V:3
!p! GAG GAB | ABA ABd |

When layering multiple identical but de-tuned voices, you may want to add !p! style dynamics to the start of each voice's ABC to reduce the overall mixed instrument volume.

If there are also bass/chords specified in the ABC using "G" style annotation, the backup track will have a voice number one higher than the total number of melody voices.

To create a modern Scottish bagpipes tuning of 480 Hz from a bagpipe score based in A, you can add the following two annotations to the melody and drone voices:

% Add this to the melody and drones voice descriptions
%%MIDI transpose 1
%
% Shift the tuning up to 480 Hz for all the voices
% Assumes the drum voices are using ^A for both bass and snare
%voice_tuning_cents 48 48 48 48

Here is an example, the tune "Cullen Bay" with the pitch at 480 Hz:


Exporting Tune Audio or Image Files from the Player   (Top)

If you click Export Audio or Image in the Player, a dialog will appear where you can save out the audio of your tune in either .WAV or .MP3 format, the note playback events as a MIDI file, or the tune image in .JPG, .PNG, or .SVG formats:


Save as WAV File: Saves the audio for the current tune to your system in .wav format:


Save as MP3 File: Saves the audio for the current tune to your system.

The bitrate for the MP3 file is set in the Advanced Settings dialog. Default is: 192 kbit/sec.

This operation may take some time. The button label changes to Encoding .MP3 while the audio is being encoded.

To download all the tunes at once in .MP3 format with repeats and optional two-bar click intros, use the Export all Tunes as .MP3 feature in the More ABC Tools dialog.


Save as MIDI File: Saves a MIDI file for the current tune to your system:

Limits on Use of my Custom MIDI Instruments

The General MIDI specification only supports MIDI program numbers as high as 128.

My custom MIDI instruments start at MIDI program 129 and go up from there.

These custom instruments and program numbers can only be used by my ABC tool and are not interoperable with other ABC software.

In the exported MIDI file, any of my custom MIDI instrument program numbers will be remapped as follows:

129: Uilleann -> 109: Bagpipe

130: Smallpipes D -> 109: Bagpipe

131: Smallpipes A -> 109: Bagpipe

132: Sackpipa -> 109: Bagpipe

133: Concertina -> 22: Harmonica

134: Melodica -> 22: Harmonica

135: Cajun Accordion -> 21: Accordion

136: Solfège -> 52: Choir Aahs

137: Chorused Guitar (nylon) -> 24: Acoustic Guitar (nylon)

138: Chorused Guitar (steel) -> 25: Acoustic Guitar (steel)

139: Irish Bouzouki -> 25: Acoustic Guitar (steel)

140: Irish Bouzouki 2 -> 25: Acoustic Guitar (steel)

141: Mandolin -> 25: Acoustic Guitar (steel)

142: Marching Drums -> 117: Melodic Tom

Muted voices using MIDI instrument 143 or "mute" will be changed to program 0 (Acoustic Grand Piano) and the volume set to zero.


Save as JPEG File: Saves the image for the current tune to your system as a bitmap in JPEG format.

Image width is set from the Image width to export: value.


Save as PNG File: Saves the image for the current tune to your system as a bitmap in PNG format.

Image width is set from the Image width to export: value.


Save as SVG File: Saves the image for the current tune to your system as a vector representation in SVG format.

Image width is set from the Image width to export: value.


Limitations on Image Export

At this time Tin Whistle tab cannot be exported as an image.

Exported Note Name tablature images include the staff lines along with the note names.


Adding Playback Swing to Tunes   (Top)

By default, unless disabled in the Settings dialog, any tune with a:

R:Hornpipe

detected in the ABC will automatically have swing added during playback.

The auto-swing factor may be set in the Settings dialog.


Manually Adding Swing to Tunes

If the tune is not marked as a Hornpipe, you can manually add swing to any tune in 2/4, 3/4, 4/4, 6/8, 9/8, and 12/8 meter by including the following comment-based annotation anywhere in the tune ABC:

%swing swing_factor (optional: Range is -0.9 to 0.9) swing_offset (optional: If used, generally set to 1 or 2)

The swing factor lengthens the primary beats by the swing factor and shorten subsequent beats accordingly.

The swing offset offsets the swing pattern by the specified number of eighth notes.

Swing factor must be specified to use the swing offset feature.

The optional swing_offset parameter is required for tunes if there is a one or two eighth note pickup (most commonly found in Jigs, Slip Jigs, and Slides), otherwise the swing pattern will be out-of-sync with the tune.

If no swing factor is provided, it will default to the Hornpipe swing factor set in the Settings dialog.

If no swing offset is provided, it is set to zero.

Example 1: To swing a reel with the default Hornpipe swing factor and no swing offset:

%swing

Example 2: To swing a reel with a 0.25 swing factor and no swing offset:

%swing .25

Example 3: To swing a jig with a 0.25 swing factor and a single pickup eighth note preceding the main tune:

%swing .25 1

Example 4: To swing a slip jig with a 0.25 swing factor and two pickup eighth notes preceding the main tune:

%swing .25 2

Example 5:

To get a typical Scottish snap feel in a Hornpipe with a shortened first beat, lengthened second beat, with no swing offset:

%swing -0.5

Any manually added %swing value always overrides the automatic injected swing factor for Hornpipes.

To disable swing for a Hornpipe, you may add %noswing anywhere in the tune ABC:

% This will result in the swing being disabled

%noswing

%noswing takes precedence over any default Hornpipe swing or manually added %swing


Setting Grace Note Duration for Ornamentation   (Top)

In ABC, grace notes, often used to indicate cuts and taps for traditional Irish music, are added using {}.

For example to indicate cutting a G with a preceding A, you would put the following in the ABC:

{A}G

Grace notes play with a fixed (very short) duration and steal time from the following target note.

Playing some tunes on specific instruments may sound more authentic with minor adjustments to the default 45 milliseconds grace note duration.

To set the duration of grace notes used in ABC {*} style ornamentation, add the following comment-based annotation anywhere in the tune ABC:

%grace_duration_ms duration_in_milliseconds

Unit is milliseconds, range is 1 to 150, default is 45.

For example to set the grace note duration to 60 milliseconds add the following anywhere in the tune's ABC:

%grace_duration_ms 60

Setting the %grace_duration_ms value to 0 will disable my custom grace duration solution and for the tune revert back to the original abcjs solution for grace note timing: Graces use half the duration of the following note and the following note duration is reduced by half.

% Disables custom grace timing solution
%grace_duration_ms 0


Defining Custom Roll Timing Parameters   (Top)



In abcjs, a ~ preceding a note draws the roll indication above the note, but does not inject a roll into the playback.

In this tool, playable rolls (also shows a roll indication drawn above the note) are are added using R or !roll! preceding the note.

For example, to indicate a quarter note roll on G in ABC:

RG2
% or
!roll!G2

To indicate a dotted quarter note roll on A in ABC:

RA3
% or
!roll!A3

To set the timing and volume parameters for a quarter-note roll, add the following comment-based annotation anywhere in the tune ABC:

%roll_2_params timeslot1 timeslot2 fraction1 fraction2 fraction3 volume1 volume2 volume3

To set the timing and volume parameters for a dotted quarter-note roll, add the following comment-based annotation anywhere in the tune ABC:

%roll_3_params timeslot1 timeslot2 fraction1 fraction2 fraction3 volume1 volume2 volume3

All parameters must be positive floating point values.

The duration values are based on dividing the note time into three time slots for the whole roll and indicate the relative time slots for the first and second notes of the roll.

The third note in the roll will have a time slot of (3 - (duration1 + duration2))

The fraction values indicate what fraction of the time slot the roll note should be played.

The volume values have a range from 0.0 to 1.0 and scale the playback volume of each note in the roll relative to the normal note volume.

Here are the default parameters used for a quarter note roll:

%roll_2_params 0.95 0.8 1.0 0.75 0.9 1.0 0.75 1.0

Here are the default parameters for a dotted quarter note roll:

%roll_3_params 1.45 0.6 1.0 0.75 0.9 1.0 0.75 1.0

If (timeslot1 + timeslot2) >= 3, since there would be no time left for the third note, the roll definition will be ignored.

To disable the custom roll parameter system and use the original abcjs "rapid-fire" roll timing solution, add the following comment-based annotation anywhere in the tune ABC:

%use_original_abcjs_roll_solution


Using the custom roll playback solution for rolls indicated with ~ before the note in the ABC

If you want to use the custom roll parameter playback solution for rolls indicated before the note with ~ as well those that use an R or !roll!, open the Advanced Settings dialog and check Rolls indicated in the ABC with ~ use the custom abcjs roll playback solution.


Enabling/Disabling ~ Roll Playback in a Tune

To override the default settings and force playback to use the custom roll playback solution for a specific tune you can include the following comment-based annotation anywhere in the tune's ABC:

%irish_rolls_on

To override the default settings and disable playback of the custom roll playback solution for a specific tune you can include the following comment-based annotation anywhere in the tune's ABC:

%irish_rolls_off


Custom Backup Rhythms   (Top)

You may customize the backup rhythm used for any meter in a single tune with chords by adding the following comment-based directive anywhere in the tune's ABC:

%abcjs_boomchick meter rhythm_pattern_string partial_measure_threshold

This is particularly useful for meters that may have multiple commomly played subdivision groupings like 7/8 and 10/8.

Valid rhythm_pattern_string characters are:

B - Boom, b - Alternate Boom, c - Chick, and x - Silence.

Examples:

%abcjs_boomchick 5/4 Bxcbc 2

%abcjs_boomchick 5/8 Bxxbx 2

%abcjs_boomchick 7/8 Bccbxbx 3

%abcjs_boomchick 10/8 Bccbccbxbx 5

The number of characters in the pattern_string must match the meter numerator.

partial_measure_threshold sets how many beats must be present in a partial measure in the ABC to use the custom pattern.

partial_measure_threshold is optional and if not included, defaults to half of the meter numerator rounded down to the next lowest integer (minimum is 1).

If you have an incorrectly formatted %abcjs_boomchick directive in a tune, you will be alerted when trying to play the tune.

You may have multiple custom rhythm directives for different meters in a single tune.

If you have the same meter specified twice in custom rhythm directives in a tune, only the first one will be used.

This directive is specific to this tool and will not work with other ABC players.


Select the Solfège Instrument to Sing Note Names   (Top)

To sing the note names, you can select the Solfège instrument (136) for a voice:

% Select the Solfège instrument:
%%MIDI program 136

If you have injected Fixed (Do=C) Solfège under the notes using the Inject Shape Note/Solfège dialog, the sung notes will match the displayed note names.

If you have injected either Do-based minor or La-based minor Movable Do Solfège under the notes using the Inject Shape Note/Solfège dialog, you can transpose the sound to match without changing the displayed notation by adding the following voice directive to your ABC:

% Set the voice transpose:
V:1 transpose=5

% Select the Solfège instrument for this voice:
%%MIDI program 136

Change the 5 to whatever is required to get the displayed solfège to match the sung note names.

There if the result sounds too high, you can also shift the required offset down by 12, this would be equivalent as far as the sung note names:

% Set the voice transpose:
V:1 transpose=-7

% Select the Solfège instrument for this voice:
%%MIDI program 136

Note: When transposed the absolute pitch of the sound when transposed will not be correct as compared with the notation, but this is the best possible at this time. At least the visual display and the sung notes will match.

For details on injecting solfège under the notes, see Inject Shape Note/Solfège.


Voice Combining and Hiding   (Top)

Here is an end-to-end walkthrough of the process of voice combining, transposition, and hiding on a three-voice version of Greensleeves for Cello and Harpsichord:

Live version in the tool of the original transcription shown in the video:

Click here to open the original three-voice transcription of Greensleeves

Live version in the tool of the final transcription shown in the video:

Click here to open the three-voice transcription of Greensleeves with voice hiding


Here is an end-to-end walkthrough of the process of voice combining, transposition, and hiding on "The Green Fields of Rossbeigh" with Mandolin and Tenor Banjo:

Live version in the tool of the full transcription shown in the video:

Click here to open "The Green Fields of Rossbeigh" for Mandolin and Tenor Banjo


"Music Minus One" Example Using Voice Combining and Hiding

Here is an example of a "Music Minus One" style PDF tunebook of a Telemann trio for Flute and Continuo created using voice combining and hiding:

The first tune in the PDF tunebook, when played, has the full arrangement.

The second tune in the PDF tunebook, when played, mutes the Flute part and plays only the Continuo part.

Live version in the tool of the transcription shown in the video:

Click here to open the Music Minus One example in the tool

PDF of the transcription shown in the video:

Click here to open the PDF of the Music Minus One example


If the stem directions are not correct after combining voices you can add the following annotation to one or all of the voices to force the stems to properly reformat, for example:

V:1 stems=auto


Controlling Note Highlighting in the Player   (Top)

For certain kinds of scores, for example two-part Bagpipe scores that have the melody and drone on the same staff using:

% This directive combines the two voices on one stave:
%%score (1 2)
%
% Set both voices to use the Bagpipe sound:
V:1
%%MIDI program 109
V:2
%%MIDI program 109
%
% This directive hides the drone voice ABC
%%voicecolor transparent

When playing the tune, you may only want the voice 1 melody line to be highlighted.

This may be useful for other multi-voice, single-staff tunes where you want to hide all voices except the melody during playback.

To accomplish this, you can add the following comment-based annotation anywhere in the tune ABC:

%play_highlight_v1_only

If you want to disable all highlighting of notes during playback, you can add the following comment-based annotation anywhere in the tune ABC:

%disable_play_highlight


Basic Controls and Features   (Top)

The instrument tablature button bar controls how the notation and tablature is displayed:

The instrument tablature button bar is shown by default, but can be hidden if desired.

See the ABC Transcription Tools Settings section for details.


Notation - Standard notation only.


Names - Shows standard notation with note names below.

Choose between standard ABC d e f style octave notes or Comhaltas-preferred "Blackboard ABC" D' E' F' octave note display in the Advanced Settings dialog.

Important: While the note Names display will show the Comhaltas-preferred note names, the ABC standard requires that the second octave C in the ABC itself either be represented by c or C' so that may requires some minor changes when pasting in your Comhaltas-formatted tunes.

Note names font and size in the tab is set by the Tab number font value in the Configure ABC Rendering Fonts dialog.


Mandolin - Shows standard notation and tablature for Mandolin.


GDAD - Shows standard notation and tablature for GDAD-tuned Irish Bouzouki.


CGDAE - Shows standard notation and tablature for 5-string CGDAE-tuned Mandolin.


Guitar - Shows standard notation and tablature for standard EADGBE-tuned Guitar.


DADGAD - Shows standard notation and tablature for DADGAD-tuned Guitar.


Uke - Shows standard notation and tablature for GCEA tuned Ukulele.

This tablature solution puts the majority of the notes on the CEA strings and only uses the G string for notes lower than C.


Whistle - Shows standard notation and fingering tablature for Tin Whistle in the key of D.

Note: For notes that go below D on of the whistle (lowest note supported is the G below middle-C), the suggested "folded" octave-up fingerings are shown.


Up to 8 voices may be displayed with tablature.


Showing/Hiding Stringed Instrument Tablature in Multi-Voice ABC Tunes

The two following annotations only work for stringed instrument tablatures and not the note names or whistle tablature.

To show the tablature on the first voice of a multi-voice tune and hide it on all the others, add the following comment based annotation anywhere in the tune:

%tab_first_voice_only

To hide the tablature on the first voice of a multi-voice tune and show it on all the others, add the following comment based annotation anywhere in the tune:

%tab_first_voice_exclude

If both are present in a tune, %tab_first_voice_only takes precedence over %tab_first_voice_exclude.

If a tunebook contains multiple tunes, all of the tunes in the tunebook should all either contain or not contain these annotations.

Mixed use of these annotations across multiple tunes in a tunebook may not produce the desired result.


These buttons perform common operations on the ABC:


Transpose Down - Transposes the selected tunes down one semitone. Shift-click transposes down one full step. Alt-click transposes down one octave.


Transpose Up - Transposes the selected tunes up one semitone. Shift-click transposes up one full step. Alt-click transposes up one octave.

To transpose multiple tunes, just click anywhere in the first tune you want to transpose, and drag to select any part of additional tunes you want transposed.

To transpose all the tunes at once, select them all before clicking the Transpose buttons.


Snapshot - Saves a snapshot of the contents of the ABC editor to browser storage.

If you save a snapshot and leave the tool, the next time you run the tool the snapshot will be available to restore by either clicking the Restore button on the main toolbar or the Restore from Snapshot button in the Add dialog.


Restore - If one is available, replaces the current contents of the ABC editor with the last saved snapshot from browser storage.

Since it completely replaces the contents of the ABC editor, you will be asked to confirm the operation.


More Tools - Shows the More ABC Tools dialog with several additional ABC filtering and display controls.


Sharing - Shows the Sharing Controls dialog with options for sharing your tunes via a share URL or QR code.


Clear - Clears the ABC Editor so you can start over.


More ABC Tools   (Top)

Clicking the More Tools button brings up the More ABC Tools dialog:

If you would like to only show the buttons for the features you commonly use and hide the others, click the controls icon at the top-right of the dialog to choose features of the dialog you would like to show/hide:

The most commonly used buttons are always shown.

Your preferences are saved and restored the next time you use the tool.


Hide/Show ABC Features   (Top)

These commands are non-destructive and only hide the elements chosen in the rendered notation.


Hide/Show Annotations - Hides/Shows most ABC annotations like Composer, Discography, History, Tempo, etc. in the displayed notation.


Hide/Show Text - Hides/Shows any %%center or %%text based text annotations in the ABC in the displayed notation.


Hide/Show Chords- Hides/Shows any chords present in the ABC in the displayed notation.


Hide/Show Injected Tab - Hides/Shows any text-annotation based injected tablature present in the ABC in the displayed notation.

The ABC filtering buttons are enabled if Annotations, Text, Chords, or Injected Tab is detected in the ABC.


Strip ABC Features   (Top)

These commands are destructive in that they remove text from the current ABC.

It may be a good idea to save the current ABC or do a Copy All or Snapshot before using one of these commands if you want to quickly undo the operation.


Strip Annotations - Removes most ABC annotations like Composer, Discography, History, Tempo, etc. from the ABC.


Strip Text - Removes any %%center or %%text based text annotations from the ABC.


Strip Chords - Removes any chords present in the ABC.


Strip Injected Tab - Removes any text-annotation based injected tablature present in the ABC.

The ABC stripping buttons are enabled if Annotations, Text, Chords, or Injected Tab is detected in the ABC.


ABC Utility Injection Features   (Top)

These commands are destructive in that they inject additional text into the current ABC.

It may be a good idea to save the current ABC or do a Copy All or Snapshot before using one of these commands if you want to quickly undo the operation.


Inject Tune Title Numbers - Brings up a dialog where you can inject or remove incrementing numbers to the tune titles:

The tune numbers are injected before the tune name with incrementing values starting at 1, followed by a period, followed by a space:

1. First Tune Name

2. Second Tune Name

3. Third Tune Name

etc.

This can be very useful for numbering tunes in tunebooks before PDF generation.

When adding tune title numbers, any existing numbers that were previously injected are removed first.

This makes it very easy to generate new incrementing tune title numbers after adding, deleting, or re-ordering tunes.

Title numbers are not added to PDF section headers.

When using numbered titles, it is best to select generating unsorted Table of Contents and Index pages in exported PDF files.


Inject PDF Section Header - Prompts for a PDF section header to inject at the text cursor insertion point.

Click on any section header in the Table of Contents or Index to jump to that section of the tunebook.

The * at the start of the injected tune title will be automatically hidden in the rendered ABC notation and only used to signal the PDF generator to add the section header.

In the unsorted Table of Contents and Index, section headers will be displayed with space above and below the section header.

In the sorted Table of Contents and Index, section headers will be displayed at the top without the extra space.

When rendering full tunes, section headers are automatically pushed to the top of a new page in the tunebook.

When rendering note or text incipits, section headers are not automatically pushed to the top of a new page.


Inject Font Settings - Injects specific tool font settings (set in the Font Settings dialog) at the top of the ABC for when you want to make absolutely sure that the rendered ABC on a shared ABC file exactly matches what you see on your system independent of the user's default font settings.


Inject MIDI Programs and Volumes - Injects MIDI Soundfont, Melody program, Bass program, Chord program and volume annotations into one or all tunes:

Select your MIDI soundfont from the soundfont selection menu.

Select your MIDI instrument for the Melody, Bass, and Chords from the instrument program selection menus.

To mute the Melody, Bass, or Chords, select "Mute" from the instrument program selection menus.

You may select which of the MIDI parameters you want injected by clicking the checkboxes.

Select "Inject all tunes" to add the selected MIDI annotations to all tunes.

If "Inject all tunes" is not checked, the MIDI annotation is added at the current text insertion point.


Inject Metronome - Injects a playable metronome into one or all tunes based on the meter of the tune as specified in the M: tag.


Inject Repeats + Intros - Allows you to increase the number of times through each tune by duplicating the ABC for the tune.

Additionally, you may optionally inject two bars of silence or a two-bar style-appropriate click intro at the top of each tune.

For clean repeats, your tunes must not have extraneous pickup notes and must have proper and complete timing.

Important Requirement for 1st Part Repeats

If the 1st part of a tune has a :| repeat symbol at the end of it (or on a first ending), but not at the very start of the part, you will need to add the starting |: repeat bar symbol for the ABC to play correctly if there is more than one repetition through the tune.

The lack of a first repeat bar symbol in the ABC will make the first part of the tune on the second and repetitions appear to not repeat.

To Fix:

Add a |: repeat bar at the start of the tune.


Inject ABC Header Text - Prompts for text to inject at the top or bottom of the current tune or all tunes ABC header.

This can be useful, for example to add a Q: tempo tag or %swing value to all the tunes at once.


Inject %%staffwidth - Prompts for a %%staffwidth value to inject at the text insertion point or into all tunes.

This can be used to change the scale of every tune both for display and PDF generation.

Generally values above 556 will make the tunes less tall.

If "Inject all tunes" is not checked, the annotation is added at the current text insertion point.


Tablature, Shape Note, and Solfège Injectors   (Top)

The tablature/solfège injection features add additional text into your ABC to create tablature for the selected instrument or notation style.

Consider saving or grabbing a Snapshot your work before injecting tab!

Since the tab injectors modify your original ABC, you may want to grab a Snapshot of the entire ABC (simply click Snapshot) before doing the tab injection operation.

If you grab a Snapshot, after the tab injection operation, if there was an issue, you can click Restore to get back your original ABC.


Inject B/C Box Tab - Injects B/C Box tablature into the ABC.

See the Configuring Tablature/Solfège Fonts and Settings section below for full details on the B/C box tablature style, font, and spacing options.


Inject C#/D Box Tab - Injects C#/D Box tablature into the ABC.

See the Configuring Tablature/Solfège Fonts and Settings section below for full details on the C#/D box tablature style, font, and spacing options.


Reading the Box Tablature

B/C Box - Shows standard notation and tablature for a standard 21-button B/C tuned box.

The button numbers and pitches used for the tablature match those on this chart:

Notes on the C-row are indicated by numbers: 1, 2, 3, ...

Notes on the B-row are indicated by numbers in circles: ①, ②, ③, ...

Push is indicated with a "↓" arrow by default (configurable in the Box and Anglo Concertina Tablature Settings dialog).

Draw is indicated with an "↑" arrow (configurable in the Box and Anglo Concertina Tablature Settings dialog).

C#/D Box - Shows standard notation and tablature for a standard 21-button C#/D tuned box.

The button numbers and pitches used for the tablature match those on this chart:

C#/D Box Button Map

Notes on the D-row are indicated by numbers: 1, 2, 3,...

Notes on the C#-row are indicated by numbers in circles: ①, ②, ③, ...

Push is indicated with a "↓" arrow (configurable in the Box and Anglo Concertina Tablature Settings Dialog).

Draw is indicated with an "↑" arrow (configurable in the Box and Anglo Concertina Tablature Settings Dialog).

Assumptions about the B/C and C#/D Box tablature solutions:

The tablature solution assumes that the "magic" notes (E and B on a B/C, F# and C# on a C#/D) that are available on both rows, will be played on the C-row on a B/C box and on the D-row on a C#/D box.

Use of the B/C and C#/D Box tablatures on a 23-button instrument:

If you are playing a 23-button instrument, you will need to shift your start position one button higher when playing.

Consider your first button as "button zero".


Inject Anglo Concertina Tab - Injects Anglo Concertina tablature into the ABC.

See the Configuring Tablature/Solfège Fonts and Settings section below for full details on the Anglo Concertina tablature style, font, and spacing options.

This includes selection of your instrument's button-to-note mapping (Jeffries or Wheatstone) as well as preferred fingering style (On-Row or Cross-Row).


Reading the Anglo Concertina Tablature

Wheatstone Layout

Jeffries Layout

Tablature Button Names

Push is indicated with a "↓" arrow by default (configurable in the Box and Anglo Concertina Tablature Settings dialog).

Draw is indicated with an "↑" arrow by default (configurable in the Box and Anglo Concertina Tablature Settings dialog).


Inject Fiddle Fingerings - Injects Fiddle/Mandolin fingerings (which finger to use for the note) into the ABC.

Note for Mandolin players:

This is distinct from the fret number displayed when showing the Mandolin tablature along with the notation.

The Mandolin tablature shows which fret to use on the Mandolin. This shows which finger to use on the fret.

See the Configuring Tablature/Solfège Fonts and Settings section below for full details on the tablature font and spacing options.


Inject Dulcimer Tab - Injects Mountain Dulcimer tablature into the ABC.

The tablature generation solution supports both DAD, DGD, or DAA-tuned instruments with a 6-1/2 fret.

Select between "Along High-D String" and "Cross-String" style tablature for the DAD and DGD tunings. (DAA is only available as "Along A String").

You may optionally exclude any tunes from the output that don't have complete tablature solutions.

This can be very useful when converting large numbers of tunes where you only want to end up with tunes that have complete fret tab solutions.

When excluding tunes, a report will be presented after the tab injection with the list of tunes that were excluded from the output.

Select "Blank Tablature" if you want to fill in your own tab. This will inject open string tablature for every note.

Choose between blank open strings and open strings represented by a -.

Editing of the tab is possible after the injection.

The "Highlighting" mode can be very useful in identifying the ABC for each note in the tune for manually adding chords.

Click on any note in the notation and the ABC will be highlighted that created that note along with the dulcimer tab that was injected.

When generating the tab, the following ABC text is added just before every note:

"_1; ;3"

The "_ tells the ABC renderer to put the tab under the next note.

The fret numbers (1, , and 3 in this example) are then entered, separated by ; which causes the ABC renderer to stack the numbers vertically under the note.

Finally, there is a closing " added to complete the tablature entry.

If you want to modify the automatically generated tablature, just change the fret numbers to whatever you like. I use a space to indicate an open string

See the Configuring Tablature/Solfège Fonts and Settings section below for full details on the tablature font and spacing options.


Inject Bamboo Flute Tab - After requesting the bamboo flute key, injects numeric notation tab for the selected key into the ABC.

See the Configuring Tablature/Solfège Fonts and Settings section below for full details on the tablature font and spacing options.


Inject Shape Note/Solfège - Injects "4-shape" or "7-shape" style shape note shapes into the ABC along with optional "fa/sol/la/ti" (4-shape) or "do/re/me/fa/sol/la/ti" (7-shape) solfège note names.

There are also additional options for injecting pitch names, fixed solfège at Do=C with or without chromatic note names, movable solfège based on key/mode, or movable solfège based on key/mode with shift for minor La.

For shape notes, the ABC injected before each note name to select the note head style is one of the following:

!style=sn_do! C2
!style=sn_re! D2
!style=sn_mi! E2
!style=sn_fa! F2
!style=sn_so! G2
!style=sn_la! A2
!style=sn_ti! B2
!style=sn_do! c2
!style=sn_re! d2
!style=sn_mi! e2
!style=sn_fa! f2
!style=sn_so! g2
!style=sn_la! a2
!style=sn_ti! b2

See the Configuring Tablature/Solfège Fonts and Settings section below for full details on the tablature font and spacing options.


Configuring Tablature/Solfège Fonts and Settings   (Top)

To configure the tablature/solfège fonts and other settings, first click the tool's Settings button, then click Tablature Injection Settings at the bottom of the dialog to bring up the tablature/solfège injection settings dialog:

Common tablature settings for all instruments:

Font family - Font used for all text injected into the tablature.

Tablature/Solfège font size - Font size used for the injected tablature text, solfège, and symbols.

%%staffsep value - Sets spacing between the staves.

%%musicspace value - Sets spacing between the title and the staves.

Common tablature settings for Box and Anglo Concertina:

Character(s) for Push indication - Sets the character used in the Box and Anglo Concertina tablature to indicate a bellows push.

Character(s) for Draw indication - Sets the character used in the Box and Anglo Concertina tablature to indicate a bellows draw.

Note: Setting either value blank restores the original default "↓" for Push and "↑" for Draw character values.

Use a bar over button name to indicate Draw (overrides Push and Draw characters) - If checked, draws a bar over the button name for a bellows Draw and no bar for bellows Push.

If checked, overrides the use of the Push or Draw characters entered above.

Select your preferred tablature position relative to the notation (Above or Below) from the selection menu.

When injecting tablature below the notation, you have the option to strip all existing chords and tablature from the ABC before injecting the new tab.

Injecting tablature above the notation always strips existing chords and tablature from the ABC before injecting the new tab.

Anglo Concertina-specific settings:

Select your instrument style: (Jeffries or Wheatstone) from the Concertina style selection menu.

Select your preferred fingering solution from the Preferred fingerings selection menu:

On-Row:

Jim Van Donsel's original fingering solution, favors center row:

Favors playing D5 and E5 on the right-side C-row.

For Jeffries-style instruments:

Favors right-side top-row 2nd button for C#5 and D#5.

Cross-Row:

A more cross-row friendly fingering solution:

Favors playing the D5 and E5 on the left-side G-row.

Favors playing C5 on the left-side G-row draw.

Favors playing B4 on the right-side C-row draw.

For Jeffries-style instruments:

Favors right-side top-row 2nd button for C#5 and D#5.

Gary Coover style tab (single notes only, overrides button name and direction settings) - Check this box if you want Anglo Concertina tab to be generated using the Gary Coover style standard:

Left                 Right
1a 2a 3a 4a 5a       1a 2a 3a 4a 5a
1  2  3  4  5        1  2  3  4  5
 6  7  8  9  10       6  7  8  9  10

Left hand note tab is drawn below the staff.

Right hand note tab is drawn above the staff.

Notes on the push are represented by the button number.

Notes on the draw are represented by the button number with a line above it.

Only single melody lines are supported (no chords possible)

When selecting the Gary Coover style tab, any custom button names or direction settings will be ignored.

Configure Anglo Concertina Tablature Button Names - Brings up a dialog where you can set the names of the buttons used for Anglo Concertina tab generation:

Click Reset to Default to reset the button names to the original tool values (L1, L2, L3, ...).

Values are saved in browser storage and restored the next time the tool is run.


Clearing the Injected Tablature   (Top)

Since the tablature is injected using the ABC chord system, you can easily clear all tab and get back to the original ABC by clicking the Strip Chords + Injected Tab button on the More ABC Tools dialog.


Tablature/Solfège Injection Issues and Limitations   (Top)

Occasionally tablature injection may fail when converting multi-voice tunes.

For best results, use source ABC tunes that have a single voice. (i.e. no V: tags)

Unpredictable results or a failure to complete the fingering generation may occur with multi-voice ABC files.

(Anglo Concertina-only) Button direction missing for some less-often used accidentals:

After fingering generation, some less-often used accidentals like _E in certain keys may show the correct button, but are missing their direction in the ABC.

If you see missing directions on any notes, review the ABC in the ABC editor and correct the direction manually by copying and pasting either a push "↓" or draw "↑" arrow (or other desired symbol) for the missing direction.

Tunes with key changes mid-tune may not generate correct tablature after the key change:

The tablature solutions only use the original key of the tune.

If the key changes mid-tune, the tablature solution after that point may not be correct.

Tunes with [GBd] style chords in square brackets do not generate the correct tablature:

You'll need to reduce these down to a single note for the tool to work.


Notation Spacing Explorer   (Top)

Brings up a dialog where you can experiment with spacing values for the notation and then optionally inject the values into one or all of the tunes:


Staff Separation: Sets the spacing between the staves. Default depends on the default spacing set in the tool's Settings dialog.


Left Margin: Sets the spacing to the left of the staves. Default value is 15.


Right Margin: Sets the spacing to the right of the staves. Default value is 15


Staff Width: Sets the width of the staves. Default value is 556.

Values greater than 556 will make the staves less tall to allow more staves per page in a PDF.

Values less than 556 combined with checking Add %%noexpandtowidest will make the staves taller and more horizontally compressed for "large print" format tunes.


Add %%noexpandtowidest: When checked, disables the abcjs automatic expand to widest staff feature to allow for staves less wide than the default. Default is unchecked.

More details on %%noexpandtowidest in this section of the User Guide: "Large Print" Edition Tune Notation.


Test Values: Applies the current values to the displayed notation in the dialog.


Inject all tunes: When checked, all tunes in the ABC will be injected with the new spacing values if Inject Spacing into the ABC is clicked.


Inject Spacing into the ABC Injects the spacing values into either the currently selected tune or all the tunes in the ABC depending on if Inject all tunes: is checked.

Once the spacing values are injected into the ABC, they can be modified in place if additional adjustments are desired.


MIDI Instrument Explorer   (Top)

Brings up a player where you can experiment with playing the currently selected tune using all of the available MIDI soundfonts, melody, bass, and chord programs/volumes:

This makes it quick and easy to find the right MIDI soundfont, instruments, and volumes for any tune:

The player controls works the same way as the standard player.

To test playing the tune with a new soundfont, melody instrument, bass instrument, bass volume, chord instrument, and chord volumes, make your changes and then click Reload Tune with Changed Instruments and Volumes.

The tune will be reloaded into the player with the new MIDI instrument and volume settings applied.

Click the play button to play the tune to check the new settings.

If you are happy with your new MIDI settings and want to apply them to the tune, click Inject Instruments and Volumes into the ABC to inject your new MIDI values into the tune's ABC, replacing any previous MIDI instrument and volume settings.

If "Inject all tunes" is checked, the MIDI instruments and volumes will be injected into all the tunes in the ABC editor.

To exit the MIDI Instrument Explorer, click Close.

Note: This feature is primarily for use with single-voice tunes. Unpredictable results may occur with multi-voice tunes.


Swing Explorer   (Top)

Brings up a player where you can experiment with playing the currently selected tune using different swing factors and offsets and then optionally inject them into the tune:

This makes it quick and easy to find the right swing settings for any tune:

The player controls works the same way as the standard player.

To test playing the tune with a new swing factor and swing offset, enter a swing factor (Range is -0.9 to 0.9) and swing offset (in 1/8th notes, set to the number of pickup notes for jigs and other */8 (and possibly 3/4) meter tunes to align the swing with the tune) and then click Reload Tune with Changed Swing Settings.

The tune will be reloaded into the player with the new swing settings applied.

Click the play button to play the tune to check the new swing settings.

If you are happy with your new swing settings and want to apply them to the tune, click Inject Swing into the ABC to inject your new swing values into the tune's ABC, replacing any previous swing factor and swing offset values.

To exit the Swing Explorer, click Close.

For more details on swing factor and swing offset, see this section:

Adding Playback Swing to Tunes


Grace Duration Explorer   (Top)

Brings up a player where you can experiment with playing the currently selected tune using grace durations and then optionally inject them into the tune:

This makes it quick and easy to find the right grace duration settings for any tune:

The player controls works the same way as the standard player.

To test playing the tune with a new grace duration, enter a grace duration in milliseconds (Range is 0 to 150) and then click Reload Tune with Changed Grace Duration.

The tune will be reloaded into the player with the new grace duration settings applied.

Click the play button to play the tune to check the new grace duration settings.

If you are happy with your new grace duration and want to apply them to the tune, click Inject Grace Duration into the ABC to inject your new grace duration value into the tune's ABC, replacing any previous grace duration value.

If "Inject all tunes" is checked, the grace duration will be added to all the tunes in the ABC editor.

Entering a value of 0 will disable the custom grace timings and play the tune using the abcjs default behavior: Graces use half the duration of the following note and the following note duration is reduced by half.

To exit the Grace Duration Explorer, click Close.

For more details on grace duration, see this section:

Setting Grace Note Duration for Ornamentation


Roll Explorer   (Top)

Brings up a dialog where you can experiment playing the tune with different roll playback parameters and then optionally inject the values into the tune.

The timing and volume parameters for the two available custom roll patterns (Quarter Note and Dotted Quarter Note) are described in detail in this section:

Defining Custom Roll Timing Parameters


The Reset buttons reset and reload the tune with the current tool default roll parameters.


The Set as Tool Default buttons set the roll timing parameters for the quarter note or the dotted quarter note as the tool defaults.

The default roll parameters for the tool can be viewed and edited in the Advanced Settings dialog.


Click Reload Tune with Parameters to reload the player with the roll parameters applied.

If any of the values are invalid, you will be presented with an alert explaining the issue.

Click the play button to play the tune to check the new settings.


If you are happy with your new roll parameters and want to apply them to the tune, click Inject Parameters into ABC to inject your new roll parameters into the tune's ABC, replacing any previous roll parameters.


Dotted quarter note rolls in the ABC can be transformed from ~G3 to either G~G2 or ~G2G by clicking either the ~G3 → G~G2 or ~G3 → ~G2G transform buttons.

This can provide a better feel for the rolls in reels than the default dotted quarter note roll playback solution which is better suited for jigs.


The modified ABC with the replaced rolls will be injected along with the custom timing information when you click Inject Parameters into ABC.

To exit the Roll Explorer, click Close.


Once the roll parameters are injected into the ABC, they can be modified in place if additional adjustments are desired.


Export All Audio or Images   (Top)

These features are only available on desktop browsers.

This dialog contains options to export all the tunes in the ABC area in multiple formats:


Export all as MP3 Audio: Exports all the tunes in the ABC area as individual .mp3 files or images at the bitrate set in the Advanced Settings dialog:

This can be very useful for creating longer "play-along" recordings of tunes.

You may optionally inject either two bars of silence or a two-bar style-appropriate click intro before each tune.

For clean repeats, your tunes must not have extraneous pickup notes and must have proper and complete timing.

Important Requirement for 1st Part Repeats

If the 1st part of a tune has a :| repeat symbol at the end of it (or on a first ending), but not at the very start of the part, you will need to add the starting |: repeat bar symbol for this feature to work when generating a .MP3 file with more than one repetition through the tune.

The lack of a first repeat bar symbol in the ABC will make the first part of the tune on the second and repetitions appear to not repeat.

To Fix:

Add a |: repeat bar at the start of the tune and regenerate the .MP3 file.

If you have tunes with chords, you can quickly create a backing track playing continously multiple times through the tune:

1: Mute the melody for all the tunes by clicking the Inject MIDI Melody button in the More ABC Tools dialog and select the Mute program.

2: Export all the tunes in the tunebook to .MP3 by clicking Export all as .MP3 Audio in the More ABC Tools Export All Audio or Images dialog, and when prompted enter the number of times through each tune.


Export all as JPEG: Exports all the tunes in the ABC area as individual JPEG bitmap images.

Image width is set from the Image width to export: value.


Export all as PNG: Exports all the tunes in the ABC area as individual PNG bitmap images.

Image width is set from the Image width to export: value.


Export all as SVG: Exports all the tunes in the ABC area as individual SVG vector images.

Image width is set from the Image width to export: value.


Your browser may request permission to download multiple files.

During the batch export operation, click the export status dialog's Cancel button to stop the export.


Limitations on Image Export

At this time Tin Whistle tab cannot be exported as an image.

Exported Note Name tablature images include the staff lines along with the note names.


Developer Share URL Batch Export Tools


These tools are useful for developers who want to have Share URLs to go with each of the exported tune images.

The names of the tunes in the exported files match the exported image names.

Each JSON or CSV record has two fields:

Name - Contains the tune name matching the image name (minus extension) that is created by the batch image exporters.

URL - Contains the Share URL for the tune.

The Share URL is the same as would be generated for each tune using the Sharing dialog and includes the &play=1 parameter so that tunes open in the Player.


Export all Share URLs as JSON: Exports tune names and Share URLs for all of the tunes in a JSON file.


Export all Share URLs as CSV: Exports tune names and Share URLs for all of the tunes in a CSV file.


SmartDraw Set List Builder   (Top)

Brings up a dialog where you can build tune sets and then export them in SmartDraw format.

Each tune in the SmartDraw diagram has a hyperlink that when clicked, plays the tune.

If you export the SmartDraw diagram as a PDF, the play hyperlink will also work in the PDF.

Drag and drop the tunes to order them into sets.

Click Add Set Name to add a set name marker above the currently selected tune.

Click Delete Set Name to delete a selected set name marker.

Choose your tune export format (Notation, ABC Full Text, or ABC Incipits) from the export format dropdown.

Both vertical and horizontal tune shape flow versions, indicated by the arrow direction after the format name, are available for all formats.

Vertical shape flow builds the tune shapes down the page.

Horizontal shape flow builds the tune shapes across the page.

If exporting Notation, you can set the image width (in 1/100" increments) in the SmartDraw diagram using Notation width to export.

When you are ready to create the diagram, click Export SmartDraw Set List

You will be prompted for a SmartDraw file name and a name for your set list.

Once the SmartDraw file is created and saved to your system, you can import it into SmartDraw from the SmartDraw file and template explorer.

For more information on SmartDraw and to get a free trial, please visit SmartDraw.


Sort by Tag   (Top)


Brings up a dialog where you can sort the tunes based on a specified ABC tag:

Sort by Name (T:) - Sorts all the tunes by name alphabetically based on the value found in the first T: tag, ignoring an initial "The"

Sort by Name (T:) - Ignore "A"and "An" - This also sorts all the tunes by name, ignoring an initial "A" and "An" along with "The".

Sort by Key (K:) - This sorts all the tunes by the key value found in the first K: tag in the tune.

Sort by Meter (M:) - This sorts all the tunes by the meter value found in the first M: tag in the tune.

Sort order is: C|, C, 4/4, 6/8, 9/8, 12/8, 2/4, 3/4, 6/4, followed by any other meters found, grouped by meter.


Incipits Builder   (Top)

Brings up a dialog where you can easily format the ABC specifically for notation incipits PDF export with only a couple of bars per tune:

Since this modifies the ABC, you may want to grab a Snapshot before running this command.

Bars per staff - Sets the number of measures shown in the incipit. Default is 3.

Staff width - Compresses the horizontal size of the incipit notation compared to the standard of 556. Default is 400.

Add tune title numbers - When checked, prepends the tune titles with incrementing numbers.

Left justify titles - When checked, will enable the "Left-justify all titles and subtitles" in the tool's Settings.

When Left justify titles is checked, you will need to manually uncheck the "Left justify all titles and subtitles" setting in the tool's settings after exporting the incipits as a PDF or just reload the tool to restore the title default center justification.

Here is an example of a two-column notation incipits PDF exported using the default settings:


Comhaltas Transform   (Top)

Brings up a dialog where you can choose between transforming the entire ABC from the standard ABC d e f octave note style to the Comhaltas-preferred "Blackboard ABC" D' E' F' octave note style, or from the Comhaltas-preferred "Blackboard ABC" D' E' F' octave note style to standard ABC d e f octave note style.

Important: While the note Names display will show the Comhaltas-preferred note names, the ABC standard requires that the second octave C in the ABC itself either be represented by c or C' so that may requires some minor changes when pasting in your Comhaltas-formatted tunes.

Regarding Comhaltas ABC and instrument tab injection: The various instrument-specific tab injectors detailed below are not able to work with the Comhaltas-preferred "Blackboard ABC" D' E' F' octave note style note names.

To inject instrument tab into ABC in this format, you will first need to convert the Comhaltas-preferred ABC to standard ABC the Comhaltas ABC Transform dialog's Comhaltas ABC to Standard ABC button first, then do the tablature injection.

After doing the tab injection, you can then transform the ABC back into the Comhaltas-preferred format using the the Comhaltas ABC Transform dialog's Standard ABC to Comhaltas ABC button


ABC Compliance Transform   (Top)

Brings up a dialog where you can transform all the private tool-specific directives in the ABC to an ABC 2.1 standard-compliant format for cleaner interchange with other ABC tools.

I wrote this tool before I was aware that there was a preferred ABC standard for adding additional tool-specific directives.

All the private tool-specific directives use the ABC comment syntax and should be transparent to other ABC applications.

However, some users may prefer that the private tool-specific directives use the ABC standard tool-specific syntax instead.

Examples:

% Private tool-specific comment-based directive:
%irish_rolls_on

% ABC Standard tool-specific directive syntax:
%%abctt:irish_rolls_on

% Private tool-specific comment-based directive:
%%abcjs_soundfont fatboy

% ABC Standard tool-specific directive syntax:
%%abctt:abcjs_soundfont fatboy

Transforms are provided for both private tool-specific to ABC standard syntax and ABC standard syntax to private tool-specific.

The tool can play back tunes with either the private tool-specific or ABC standard syntax directives.

The MIDI Instrument Explorer, Swing Explorer, Grace Exporer, and Roll Explorer work best with the private tool-specific directives.

You will need to manually transform the ABC from the ABC standard syntax to the private tool-specific directives if you wish to use these features.

Additionally, all ABC standard tool-specific directives in the ABC are transformed to private tool-specific format when exporting PDF files.


Custom Instrument MIDI Program Number Interoperability

My custom instruments use %%MIDI program numbers greater than 127 that only work in my tool.

Other ABC software may ignore these values, or may have issues with these values when attempting to play the tunes.

When importing any ABC created in my tool that use custom instruments with MIDI program numbers greater than 127, you will almost certainly need to change them to another program number in the range of 0-127 for the ABC to play in other software.

If you do a MIDI export from the Player, the custom MIDI program numbers in the resulting MIDI file are automatically remapped to values in the standard MIDI program range.


ABC Transcription Tools Settings   (Top)

Clicking the Settings button at the top of the tool brings up a dialog where you can set tool-wide settings:


Show instrument tablature button bar below ABC editor - If checked shows the instrument tablature button bar below the editor.

When the bar is visible, click on any button in the button bar and the notation will be redrawn with the new instrument tablature.

The new instrument tablature chosen will become the new default for the tool.

Default is: Enabled.


Save an Auto-Snapshot on browser tab close or reload? (Restore it from the Add dialog) - (Desktop browsers only) When enabled, saves an Auto-Snapshot when closing or reloading the browser tab the tool is running in.


ABC Editor Font Size (default is 13) - (Desktop browsers only) Allows you to set the font size (in points) used in the ABC editor area.

Default is 13. Minimum is 6, maximum is 36.


Space between the staves (default is 10, minimum is -40) - Allows you to set a wider or narrower gap between the staffs.

A value of 0 corresponds to an ABC %%staffsep of 40

Minimum value is -40 (corresponds to an ABC %%staffsep of 0)

Final rendered staff separation depends on the contents of ABC itself, for example the use of chords and other annotations may increase the staff spacing.

Experiment with this value until you get the result you want.


Left-justify all titles and subtitles - When checked, draws all titles and subtitles left-justified instead of centered above the notation.


Stringed instrument capo fret postion - Allows you to set a capo setting from 0 to 12 frets for any of the stringed instruments tabs.


Show stringed instrument names on tablature (single-voice tunes only, not shown in the Player) - Hides/Shows the instrument names and capo settings on the tablature.

At this time, instrument names below the tablature will only be displayed for single-voice tunes.


The following controls select default MIDI soundfont, programs, and volumes to use for the Melody, Bass, and Chords:


Default abcjs soundfont: - Choose between the six General MIDI soundfonts available in abcjs to use by default when playing tunes:

Fluid
Musyng Kite
FatBoy
Canvas (Based on a Roland JV-1010)
MScore (Based on the MuseScore General MIT licensed soundfont)
Arachno

On first run, the default is set to Fluid.

Each soundfont is a full General MIDI implementation, but has somewhat different sounds for each instrument.

If no %abcjs_soundfont soundfont is specified in a tune, the default soundfont chosen in the tool's Settings dialog is used.

For more details on the soundfonts, visit: midi-js-soundfonts on GitHub

Your default soundfont choice is saved in browser storage and restored the next time the tool is run.


Use custom sounds for Dulcimer, Accordion, Flute, Whistle, Banjo, Bagpipe, Fiddle, and Bodhran

If this is enabled (on by default), for all soundfonts, my custom sampled instruments for Dulcimer, Accordion, Flute, Whistle, Banjo, Bagpipe, Fiddle, and Bodhran (remapped from Melodic Tom) will override the soundfont sounds.


Use Default Melody and Bass/Chord programs when playing tunes

If enabled, will play tunes that don't have Melody or Bass/Chord programs already in the ABC with your preferred instrument sounds.

If a %%MIDI program, %%MIDI bassprog, or %%MIDI chordprog directive is already present in the tune when playing, it will take precedence over the default program values.


Default Melody MIDI program - Select your default MIDI instrument for the Melody from the instrument selection menu.


Default Bass MIDI program - Select your default MIDI instrument for the Bass from the instrument selection menu.


Default Chords MIDI program - Select your default MIDI instrument for the Chords from the instrument selection menu.


Use Default Melody and Bass/Chord volumes when playing tunes

If enabled, will play tunes that don't have Bass/Chord volumes already in the ABC with your preferred instrument volumes.

If a %%MIDI bassvol or %%MIDI chordvol directive is already present in the tune when playing, it will take precedence over the default volume values.


Default Bass MIDI volume (0-127) - Select your default MIDI volume for the Bass when playing backup patterns.


Default Chords MIDI volume (0-127) - Select your default MIDI volume for the Chords when playing backup patterns.


Override all MIDI programs and volumes in the ABC when playing tunes

When checked, this will override any existing %%MIDI program, %%MIDI chordprog, %MIDI bassvol, and %MIDI chordvol values found in the ABC with your defaults when you play a tune.

This can be useful with my Interactive PDF tunebooks with built-in playback features if you want to use your preferred instrument sounds and volumes instead of the instruments and volumes set by the Interactive tunebook play link ABC.

For example, if you want to always use a Whistle sound for the Melody and a Piano sound for the Bass and Chords, set your default Melody instrument to Whistle and your default Bass and Chords instruments to Acoustic Grand Piano. Then enable Override all MIDI programs and volumes in the ABC when playing tunes.

To mute the melody, select the Mute program.

To mute the bass and chords, select the Mute program.


Changing the Melody Volume

To change the Melody volume, add a dynamics indication such as !ppp!, !pp!, !p!, !mp!, !mf!, !f!, or !ff! immediately before the first note in the ABC.


Special Note on the Dulcimer (15) Instrument

Selecting the Dulcimer (15) program for either the melody or chords automatically sets all note release times to 4 seconds to allow the notes to ring.

This can be useful for tunes using solo melody instruments with long release times like Orchestral Harp (46) or Koto (107).

For those instruments played solo, set the melody instrument program as desired and the chord instrument program to Dulcimer (15).

In this case, you may not want to include any chords in the ABC, as they will be played using the Dulcimer (15) instrument.

This only applies if Use custom sounds for Dulcimer, Accordion, Flute, Whistle, Banjo, Bagpipe, Fiddle, and Bodhran is enabled (see below).


Automatically swing Hornpipes when playing (enabled if R:Hornpipe is found in the tune) - If checked, automatically swings Hornpipes if

R:Hornpipe

is found in the tune.


Auto-swing scale factor (range is -0.9 to 0.9, default for Hornpipes is 0.25) - Sets the level of swing used by the Hornpipe play auto-swing feature.

The swing factor lengthens the primary beats by the swing factor and shorten subsequent beats accordingly.

For full details on swing factor and swing offset, see this section:

Adding Playback Swing to Tunes


If your browser supports MIDI input, you will find these two additional options in the settings dialog:

Allow MIDI input for ABC text entry

For full details on MIDI input, see this section:

Typing ABC Using a MIDI Input Device

MIDI input is key and mode aware (if unchecked, enters note names with no accidentals)

For full details on MIDI input, see this section:

Typing ABC Using a MIDI Input Device


Font Settings - Brings up a dialog where you can configure all fonts used for rendering the ABC.


Tablature Injection Settings - Brings up a dialog where you can configure all parameters for tablature/solfège injection.


MusicXML Settings - Brings up a dialog where you can configure all parameters for MusicXML import.

Details on MusicXML import settings below in the MusicXML Import Settings section.


Advanced Settings - Brings up a dialog where you can configure low level tool features and settings.

Details on the advanced settings below in the Advanced Settings section.


Advanced Settings   (Top)

These settings are available by clicking the Advanced Settings button at the bottom of the main Settings dialog.

On mobile browsers, the dialog will only show the settings that are available on mobile platforms.


Note: Do not change these values unless you know what you are doing!


Show ABC syntax validation panel - When checked, shows any ABC syntax errors detected by abcjs for the tune currently being edited in a panel below the ABC editor.

Disable abcjs notation rendering - Check this if you want to completely disable the rendering of the notation.

This can be very useful with very large tunebooks to speed up the process of generating text incipits or full ABC text PDF exports, where the rendered notation isn't required to generate the PDF.

If you want any of the built-in tablatures shown when a user clicks on the title of one of your text incipits or full ABC text export play links with rendering disabled, click the desired tablature button (i.e. Mandolin, Guitar, Whistle, etc.) before doing the text incipits or full text export.

The current tablature selection is always injected into the share links for the tunes when the PDF is generated even if rendering is disabled.

This setting is turned off every time the tool is run.


Rolls indicated in the ABC with ~ use the custom abcjs roll playback solution

By default, abcjs doesn't attempt to play rolls that are indicated using a ~ before the note, it just plays the note without any modification.

The abcjs custom roll playback system is normally only enabled for rolls that are indicated using an R or !roll! before the note.

When this item on the Advanced Settings panel is checked, rolls indicated using a ~ before a note in the ABC will use the abcjs custom roll playback system as well as those indicated with R or !roll!

Any custom roll parameters you have the ABC will also work with the ~ style rolls when this is turned on.

Use this at your own risk, it may not work for all tunes.

Uncheck this item to return to the default abcjs behavior.


Enabling/Disabling ~ Roll Playback in a Tune

To override the settings and force playback to use the custom roll playback solution for a specific tune you can include the following comment-based annotation anywhere in the tune's ABC:

%irish_rolls_on

To override the settings and disable playback of the custom roll playback solution for a specific tune you can include the following comment-based annotation anywhere in the tune's ABC:

%irish_rolls_off


Note name tablature uses Comhaltas style ABC (D' E' F' instead of d e f for octave notes) - Check this if you want to use the Comhaltas "Blackboard ABC" standard for ABC note names (D' E' F' instead of d e f for octave notes) when in note names tab display mode.

Important: While the note Names display will show the Comhaltas-preferred note names, the ABC standard requires that the second octave C in the ABC itself either be represented by c or C' so that may requires some minor changes when pasting in your Comhaltas-formatted tunes.

Note name font and size in the tab is set by the Tab number font setting in the Configure ABC Fonts dialog.


Autoscroll player when playing - Check this if you want have the player autoscroll the notes into view while playing.


Player/Tune Trainer always plays full tune even if there is a selection region - Check this if you want have the Player and Tune Trainer always play the full tune even if you have selected some notes in the tune. (default is to play/train only the selected notes if there is a selection region)


Player uses large controls (easier to touch on mobile and tablet) - Check this if you want to have larger controls in the Player view.


Player tunebook navigation controls on left side - When checked, puts the player tunebook navigation controls on the left side of the player. (default is right)


Player/Tune Trainer uses label L/R side click to decrement/increment values - Check this if you want to decrement or increment values in the Tune Trainer number entry fields by clicking on the left or right side of their labels.

Touching to the left or right of the tempo field in any of the Players (Player, MIDI Instrument Explorer, Swing Explorer, Grace Explorer, Roll Explorer, Tune Trainer) decrements or increments the tempo by 5%.

This makes it easier to set tempos and increments on touch screen devices.

Defaults to enabled for Android and iPhone devices.


Full screen tune display scaling (percentage) (default is 50) - Sets the width in percentage of window width for the tune notation on the screen when viewing full screen. Default is: 50%.

If the resulting scaled width is less than 850 pixels (820 pixels for iOS/Android) the width will be set to 850 pixels (820 pixels for iOS/Android).


Highlighting color (HTML format) (default is #F00000): (Desktop browsers only) Sets the color of the notation highlights when Highlighting is on.

Value must be an HTML RGB hex color value or HTML named color for example #0000FF or blue.


Metronome volume (default is 48): - Sets the volume of the metronome drum sounds. Range is 0 - 127.


MP3 audio export bitrate (kbit/sec) (default is 224): - Sets the bitrate for MP3 stereo audio downloaded from the Player.

Default value is 224. Minimum value allowed is 96. Maximum value allowed is 384. Higher values result in higher quality audio.


Image Batch Export Delay in milliseconds (default is 200): (Desktop browsers only) Sets the delay between file saves when doing batch image export.

Many faster systems can handle setting this to 100ms or lower.

You can try a lower value. If you see any issues or are missing images on batch export, set it back to a higher value.


MP3 Batch Export Delay in milliseconds (default is 250): (Desktop browsers only) Sets the delay between file saves when doing batch .MP3 export.


Tune search fetch retry delay in milliseconds (default is 3000): Sets the delay between failed fetch retries when reading in a tune collection for the Search and Add dialog.


Tune search fetch retry maximum count (default is 10): Maximum number of failed fetch retries when reading in a tune collection for the Search and Add dialog.


Default roll_2_params - Sets the default quarter note roll parameter string.

Default roll_3_params - Sets the default dotted quarter note roll parameter string.

Enter the roll parameter strings in the same format as the %roll_2_params and %roll_3_params ABC annotation strings described here:

Custom Roll Timing


Reset Roll Parameter Strings to Defaults - Resets the roll_2_params and roll_3_params roll default parameter strings to their original known good default values.


All above values are saved in browser storage and restored the next time the tool is run.


Configuring ABC Rendering Fonts   (Top)

Clicking the Font Settings button in the tool settings dialog shows a subdialog where you can configure all the fonts used for rendering the ABC.


Values are saved in browser storage and restored the next time the tool is run.

For details on the use of each font, refer to the Custom Font Overrides information below.


Click Save to File to save the ABC rendering font settings to a file.


Click Load from File to load the ABC rendering font settings from a previously saved file.


Click Reset to Default to reset the ABC rendering font settings to their original defaults.


Typing ABC Using a MIDI Input Device   (Top)

If your browser supports MIDI input, you will find this additional option in the settings dialog: Allow MIDI input for ABC text entry

If checked, you can enter ABC melody notes (chords are not supported) into the editor area using a USB or Bluetooth MIDI keyboard or other MIDI input device:

This feature has been verified to work with the desktop version of Chrome and Firefox on a Mac, other browsers may also work as well.

This feature has been tested with both USB and Bluetooth MIDI keyboards as well as a USB WARBL wind controller on a Mac running Chrome.

To add a space, bar line, or other common useful ABC staff construction patterns after entering a MIDI note, you can use the MIDI text macro shortcuts described below.

There are two available modes for MIDI input, depending on whether you have also checked MIDI input is key and mode aware (if unchecked, enters note names with no accidentals).

When unchecked:

The note text entered will have only the note name and octave without any sharp, flat, or natural indication: (G, A, B, C D E F G A B c d e f g a b c' d' etc.)

If you require specific sharps, flats, or naturals on the notes, you will need to add them manually.

When checked:

The MIDI input is aware of the key and mode of the current tune and will enter additional sharps, flats, or naturals as required.

Note that since these accidentals will carry forward in playback to notes afterwards in the measure.

For example, you may have to manually edit the ABC after entering a natural note if a sharp or flat note will follow in the same measure.

For both MIDI input modes:

The range of the ABC notes for MIDI note entry is from C,, to c'' (MIDI notes 36 - 96).

The octave below C,, starting on C,,, (MIDI note 24) is used for inserting useful common ABC text macros.

This map shows the MIDI note number and the text inserted:

24: Space
25: Backspace
26: |
27: /
28: 2
29: 3
30: 4
31: (3
32: |:
33: :|
34: ||
35: |]

When using a MIDI wind controller like the WARBL, you should set up the response curves to generate as few transient notes as possible.

Additionally, you can map the buttons on the back of the WARBL to send three of the text macro triggers, which makes it possible to enter entire staves of ABC just from the WARBL.

Here are the WARBL breath settings and button mappings I use:

I've configured the three buttons on the back of the WARBL to insert a space, bar line, and backspace (MIDI notes 24, 26, and 25).

Setting them to "Momentary" speeds up the button response.

Here's a demo video showing entering the notes and bar lines for "The Kesh" jig into the tool entirely from my WARBL:

Note on using the MIDI Input feature on Firefox:

When first enabling MIDI input on Firefox, you will be asked by the browser to give the tool permission to access MIDI devices on your computer.

Once you grant permission, you will need to restart Firefox for MIDI input to work.


Exporting a PDF Tunebook   (Top)

The tool has a powerful built-in PDF tunebook generator that provides more flexibility than the browser's print feature, particularly in the area of adding custom page headers and footers, title page, table of contents, tune index, or adding a custom QR code.

It can format PDF tunebooks with one or multiple tunes per page, something the native browser's Print command cannot accomplish.

When you click Export PDF, the following dialog will appear where you select your PDF formatting preferences:

When exporting a PDF from the button on the bottom-left of the full-screen view, the Configure PDF Tunebook Features and Notation Spacing Explorer buttons are not shown on the dialog.

Since they possibly modify the ABC itself, they are only available when exporting a PDF from the ABC Editor.


Configure PDF Tunebook Features - Brings up a dialog that you can use to add annotations at the top of the ABC that will add an optional Title Page, Table of Contents, Index, Page Header, Page Footer, playback links, required fonts for ABC in playback links, and/or QR code to an exported PDF tunebook:

Leave any text fields blank for features you don't want in your PDF tunebook.

The PDF features are added using the tool's ABC comment-based annotations to the top of the ABC.

Once added, you can modify the features values directly in the ABC if you wish.

Since the PDF features are part of the ABC, they will be saved along with the tunes if you save or share the ABC.

The PDF features are separated by two marker lines:

% Start of PDF Tunebook Features
% End of PDF Tunebook Features

These two lines are used by the tool to locate the tunebook feature settings in the ABC.

If you click Configure PDF Tunebook Features again, everything in that block of ABC will be replaced with the newly configured PDF tunebook features.

Note: If you add features to your tunebook using the dialog and then manually delete:

% End of PDF Tunebook Features

from the ABC and click Configure PDF Tunebook Features, the tool will not be able to find the original set of features in the ABC to overwrite.

If this occurs, the new set of requested PDF tunebook features will just be added to the top of the ABC.


Note on use of "Playback links contain entire tunebook"

Normally when play links are added to tunes in a tunebook, they just are for the indvidual tunes.

If adding playback links to all the tunes by checking "Add playback links to each tune to allow playing the tune by clicking the tune title" and this item is also checked, the tool will add annotation to the ABC to add the Share URL for the entire ABC tunebook to each tune.

If the entire tunebook playback Share URL is too large to be a valid URL link for opening in the tool (about 8100 characters), you will be presented with a warning when the PDF export is complete, and no playback links will be added to the tunes.

Additionally, if the complete tunebook playback Share URL is larger than the maximum allowed by Adobe Acrobat (2076 characters), after the PDF export is complete you will be presented with a warning that the links may not work in Adobe Acrobat but will work with browser-native and many other PDF readers.

This will probably happen quite frequently for tunebooks with 5 or more tunes.


Notation Spacing Explorer: Brings up a dialog where you can experiment with spacing values for the notation and then optionally inject the values into one or all of the tunes.

For complete details, see Notation Spacing Explorer.


Paper Size:

Choose between Letter or A4 paper size:


Orientation:

Choose between Portrait or Landscape orientation:


Tune Layout:

Choose whether you want One Tune per Page, Multiple Tunes per Page, Tune Note Incipits, ABC Incipits (unsorted or alphabetically sorted by tune name), or full versions of the ABC notes (with optional Comhaltas ABC transformation):


One Tune per Page

The notation for each tune is placed on a new page in the PDF.


Multiple Tunes per Page

The notation for each tune is added one after another down each page in the PDF.

When exporting multiple tunes per page to PDF the tool will do its best to layout the output to not split tunes between pages, unless the tune itself is longer than one page.

When exporting multiple tunes per page, if you want to manually force a tune to a new page in the PDF, add:

%%newpage

on a new line immediately at the end of tunes after which you want to force a page break.

This will allow you to easily format a tune book where you want to override the automatic tune layout.


Notes Incipits

The notation for the first line of each tune is added one after another down each page in the PDF.

Exporting a PDF tunebook with notes incipits allow you create a "cheat sheet" for the tunebook that includes just the notation for first line of each tune.

The tune notes incipits can be in standard notation or any of the available tablatures.

Tune notes incipits are generated stripping all ABC annotation and for tablature, hiding the tablature name to try and fit as many tunes on one page as possible.

Additionally, manually inserted %%newpage requests are ignored for incipit generation.


ABC Text Incipits

The first few bars of the ABC text for each tune's notes are added one after another down each page in the PDF.

Exporting a PDF tunebook with ABC incipits allow you create a "cheat sheet" for the tunebook that includes just the first few measures of the ABC for each tune.


ABC Text Incipits Sorted

The first few bars of the ABC text for each tune's notes are added one after another down each page in the PDF in tune name sorted order.


ABC Text Complete Tunes

The full ABC text for each tune's notes are added one after another down each page in the PDF.


ABC Text Complete Tunes - Comhaltas ABC

The full ABC text for each tune's notes are first translated from standard ABC to the Comhaltas "blackboard" ABC format and then added one after another down each page in the PDF.

The Comhaltas "blackboard" style of ABC uses only upper case letters to represent the notes and is commonly used for teaching.

In this system, middle C is represented by C, instead of C as would be in standard ABC.

The C above middle C that would be represented as c in standard ABC is represented by C in the Comhaltas "blackboard" style.


QR Code for Each Tune

A QR code for each tune containing the tune's Share URL is generated and put on its own page.

If play links are being added to the tunes in the PDF tunebook, clicking or scanning the QR code will open the tune in the Player.

The QR code can be clicked to open the tune or scanned and openend by a mobile device camera.

If the tune is too long for a valid QR Code, you can still click the image to open the tune.


Notation+QR Code for Each Tune

Each tune is rendered starting on its own page and then is followed by a QR code for the tune on its own page containing the tune's Share URL.

If play links are being added to the tunes in the PDF tunebook, clicking or scanning the QR code will open the tune in the Player.

The QR code can be clicked to open the tune or scanned and openend by a mobile device camera.

If the tune is too long for a valid QR Code, you can still click the image to open the tune.


Default is:  One Tune per Page


Notes Incipits Columns:

When exporting notes incipits, choose whether you want one or two column layout:


Page Number Location:

Choose between: None, Top Left, Top Center, Top Right, Bottom Left, Bottom Center, Bottom Right, Alternating Top Left/Right, Alternating Top Right/Left, Alternating Bottom Left/Right, or Alternating Bottom Right/Left.

The Alternating Left/Right and Alternating Right/Left settings alternate the location between the left/right or right/left sides of the page for printing on both sides of the paper.

Default is:  None


Page Number on First Page:

Check this if you want the page number to be shown on the first page with tunes in the PDF.

Page numbers are not added to title pages, table of contents, index, or QR code pages.

Default is:  On


PDF Tunebook Additions Font Settings

The following two settings control the font and font style for the PDF tunebook Title Page, Table of Contents, Index, Page Headers/Footers, Page Numbers, Text Incipits, and QR Code label.

These settings do not change the fonts in the ABC notation itself, those are configured in the Settings dialog Configure ABC Fonts sub-dialog.

Font:

Choose between: Times, Helvetica, or Courier.

Default is:  Times

Font Style:

Choose between: Normal, Bold, Oblique, or Bold Oblique.

Default is:  Normal


PDF Font Override Settings   (Top)

You may override the font and font style set in the PDF Tunebook Export dialog to be used for the PDF title page, page headers/footers, table of contents, index pages, page numbers, text incipits, and QR code label by adding the following ABC comment-based annotation anywhere in the ABC:

%pdffont fontname fontstyle

Valid fontname values are: Times, Helvetica, and Courier.

Valid fontstyle values are: Normal, Bold, Oblique, and BoldOblique.

You can leave the style value blank for the Normal style.

This allows you to make sure a tunebook PDF always gets generated with a specific font and style.


PDF Quality Setting   (Top)

You may set the quality of the PDF output by adding the following ABC comment-based annotation anywhere in the ABC:

%pdfquality quality_value

Where quality_value is a floating point value.

The default value is 0.75 (high quality)

Lower values will create lower resolution PDF notation output and smaller PDF file size.

A value of 1.0 will produce the maximum quality.

A value of 0.5 will still produce good-quality PDF notation at about half the PDF file size of the maximum quality.

A pdfquality value of 0.25 can be used to produce draft quality output with even smaller PDF file size.


PDF Tunebook Tune Size and Layout Spacing Overrides   (Top)

You can also make individual tunes render smaller (or larger) both on screen and in exported PDF tunebooks by adding:

%%staffwidth desired_width

Immediately after the X: tag for a tune.

The default value is 556

To make the tunes less tall, a good value to start out with is setting desired_width to 730

Play with changing that 730 value until you get the output result you want.

This can be used to layout more tunes per PDF page.

You may also control the spacing between tunes in the PDF output by adding the following ABC comment-based annotation anywhere in the ABC:

%pdf_between_tune_space spacing_value

Where spacing_value is an integer in 1/72" increments.

The default value is 20

Smaller values will reduce the space between the tunes in the PDF.

Larger values will increase the space between the tunes in the PDF.

This value is used in the layout of multiple tunes per page.

For the most compact PDF layout possible to maximize the number of tunes per page when generating a PDF, set the value to zero:

%pdf_between_tune_space 0

The Staff spacing value in the ABC Transcription Tools Settings dialog can be easily overridden by setting a %%staffsep value in the ABC just below the tune header.

This can be very useful particularly for getting as much tab notation on a single page as possible.

Any spacing overrides must be applied on a tune-by-tune basis.

For the absolute minimum spacing between staffs, turn off the tab names, hide the tune annotations, and add the following just below the tune header:

%%staffsep 0

Try experimenting with different %%staffsep values until you get the result you want.

Setting the %%staffsep value manually too low may sometimes result in overlapping staff rendering.

To override the default space between the title and the first staff of music, you can add a custom %%musicspace value in the ABC just below the tune header, for example:

%%musicspace 10

Try experimenting with different %%musicspace values until you get the result you want.

Here is the full list of ABC spacing-related parameters available in abcjs:

%%topspace
%%titlespace
%%subtitlespace
%%composerspace
%%musicspace
%%partsspace
%%vocalspace
%%wordsspace
%%textspace
%%staffsep
%%sysstaffsep

Please refer to the official ABC 2.1 specification for more details.

Another good reference is this handy ABC 2.1 Quick Reference Card put together by Stephen Merrony:

ABC Quick Reference Card


Adding a PDF Title Page   (Top)

To add a title page to your PDF tunebook, simply add the following comment-based annotation anywhere in the ABC:

%addtitle (title text)

To add a smaller subtitle below the title on the title page, simply add the following comment-based annotation anywhere in the ABC:

%addsubtitle (title page subtitle text)

Note: The subtitle only appears if a title page is requested.

For a title page with just a subtitle and no subtitle, just enter %addtitle with no text after it and then add %addsubtitle with your subtitle text.

To add a title page to your PDF tunebook as a hyperlink, simply add the following comment-based annotation anywhere in the ABC:

%urladdtitle URL (title text)

To add a smaller subtitle as a hyperlink below the title on the title page, simply add the following comment-based annotation anywhere in the ABC:

%urladdsubtitle URL (title page subtitle text)

Examples:

%urladdtitle https://michaeleskin.com Tunebook Title with Hyperlink

%urladdsubtitle https://michaeleskin.com/abc Tunebook Subtitle with Hyperlink

Note: The URL must begin with either http:// or https:// to be recognized as a hyperlink.

Only the first instance of the %addtitle, %addsubtitle, %urladdtitle, and %urladdsubtitle annotations are processed, any additional instances are ignored.


Adding a PDF Tunebook Table of Contents and Index   (Top)

To add a table of contents to the start of of your PDF tunebook listing each tune name and page number in the same order the tunes appear in the ABC along with hyperlinks to each tune, simply add the following comment-based annotation anywhere in the ABC:

%addtoc (table of contents title text)

To append an sorted tunebook table of contents to the start of your PDF tunebook listing each tune name and page number in alphabetical order by tune name along with hyperlinks to each tune, simply add the following comment-based annotation anywhere in the ABC:

%addsortedtoc (sorted table of contents title text)

Tune names that start with "The" will have the "The" moved to the end of the tune name before the sorting.

To add a hyperlink (displayed as <<) on the left side of each page that links back to the tunebook table of contents, simply add the following comment-based annotation anywhere in the ABC:

%addlinkbacktotoc

To add some text above the table of contents pages as a page header, simply add the following comment-based annotation anywhere in the ABC:

%tocheader (table of contents page header text here)

Unlike standard page headers, the table of contents page headers do not support macro expansion.

To append an unsorted tunebook index to the end of your PDF tunebook listing each tune name and page number in the same order they are in the ABC along with hyperlinks to each tune, simply add the following comment-based annotation anywhere in the ABC:

%addindex (index unsorted title text)

To append an sorted tunebook index to the end of your PDF tunebook listing each tune name and page number in alphabetical order by tune name along with hyperlinks to each tune, simply add the following comment-based annotation anywhere in the ABC:

%addsortedindex (sorted index title text)

Tune names that start with "The" will have the "The" moved to the end of the tune name before the sorting.

Only the first instance of the %addtoc, %addsortedtoc, %addindex, and %addsortedindex annotations are processed, any additional instances are ignored.

If you want to suppress having the hyperlinks added from the table of contents or index page entries to the tunes, simply add the following comment-based annotation anywhere in the ABC:

%no_toc_or_index_links

To add a hyperlink (displayed as >>) on the right side of each page that links back to the tunebook index, simply add the following comment-based annotation anywhere in the ABC:

%addlinkbacktoindex

To add some text above the index pages as a page header, simply add the following comment-based annotation anywhere in the ABC:

%indexheader (index page header text here)

Unlike standard page headers, the index page headers do not support macro expansion.

To suppress page number on the Table of Contents or Index, add either of the following comment-based annotation anywhere in the ABC:

%toc_no_page_numbers

%index_no_page_numbers

These will cause the Table of Contents or Index to be rendered with the tune names in a column down the middle of the page.

This can be very effective in combination with setting larger Table of Contents and Index font size and line spacing parameters to make it easy to quickly jump to tunes from the larger text:

%toc_no_page_numbers
%tocfontsize 18
%toclinespacing 20
%index_no_page_numbers
%indexfontsize 18
%indexlinespacing 20

Adding a table of contents or index also adds bookmarks for the tunes to the PDF file.


Adding Table of Contents and Index Section Headers   (Top)

To add a section header in the Table of Contents or Index, add a two line placeholder tune with only X: and T: tags, and with a tune title that starts with a * character:

X:1
T:*Reels

The * at the start of the tune title will be automatically hidden in the rendered ABC notation and only used to signal the PDF generator to add the section header.

Click on any section header in the Table of Contents or Index to jump to that section in the tunebook.

In the unsorted Table of Contents and Index, section headers will be displayed with space above and below the section header.

In the sorted Table of Contents and Index, section headers will be displayed at the top without the extra space.

When rendering full tunes, section headers are automatically pushed to the top of a new page in the tunebook.

When rendering note or text incipits, section headers are not automatically pushed to the top of a new page.

If you want more information displayed under the section headers in the tunebook, just add more normal T: title tags (not starting with a *), they will show up as centered subtitles under the main section header.

For example:

X:1
T:*Reels
T:These are some tunes I'm working on
T:We can play them at the session next week

The additional text in the T: tags is added to the PDF tune pages, not the Table of Contents and Index.

Do not put more than one T:* section header tag in the placeholder tune, only the first T: tag should be marked with the *.


Table of Contents and Index Font Size and Line Spacing Overrides   (Top)

You may override the top offset to title, offset from title to the index or table of contents entries, default tune name font sizes and line spacing, by adding the following comment-based annotations anywhere in your ABC:

Table of Contents offset and font overrides:

%toctopoffset (top offset) - 72 dpi offset from the page header for the top of the table of contents title. Default is: 30.

%toctitleoffset (title offset) - 72 dpi offset from the title to the first entry in the table of contents. Default is: 35.

%toctitlefontsize (font size) - Font size for the table of contents title. Default is: 18.

%tocfontsize (font size) - Font size for tune names in the table of contents. Default is: 13.

%toclinespacing (line spacing) - Line spacing for tune names in the table of contents. Default is: 12.

Index offset and font overrides:

%indextopoffset (top offset) - 72 dpi offset from the page header for the top of the index title. Default is: 30.

%indextitleoffset (title offset) - 72 dpi offset from the title to the first entry in the index. Default is: 35.

%indextitlefontsize (font size) - Font size for the index title. Default is: 18.

%indexfontsize (font size) - Font size for tune names in the index. Default is: 13.

%indexlinespacing (line spacing) - Line spacing for tune names in the index. Default is: 12.

As with all previously described annotation, only the first instance these annotations are processed, any additional instances are ignored.


PDF Page Headers and Footers   (Top)

You may add custom page headers and footers to your exported PDF files by including the following ABC comment-based annotations anywhere in your ABC:

%pageheader (header text)

%pagefooter (footer text)

If you'd like to link to a specific URL when users click in the PDF page header or footer, include either the following ABC comment-based annotations anywhere in your ABC:

%urlpageheader (URL) (header text)

%urlpagefooter (URL) (footer text)

Examples:

%urlpageheader https://michaeleskin.com/abc Click in this page header to visit my home page

%urlpagefooter https://michaeleskin.com/abc Click in this page footer to visit my home page

Note: The URL must begin with either http:// or https:// to be recognized as a hyperlink.

There are also several useful user macros you can include in your page header or footer text that will be expanded in the PDF:

$PDFNAME - Matches the saved PDF filename

$PAGENUMBER - Current page number

$DATEMDY - Current date in M-D-Y format

$DATEYMD - Current date in Y-M-D format

$TIME - Current time in HH:MM format

$TUNECOUNT - Number of tunes in the ABC

$TUNENAMES - All of the tune names in the ABC separated by /

The tune names width is limited to about 70 characters before it will append "+ (remaining number of tunes) more" to the first few tune names.

Example ABC with page header and page footer annotations that include user macros:

%pageheader "The Tarbolton" from the Michael Coleman set - Saved on $DATEMDY at $TIME
%pagefooter $PDFNAME - Page $PAGENUMBER
X:1
T:The Tarbolton
M:4/4
K:Edor
Beed e2BA|GBAF GFEF|Dddc d2AG|FAGE FEDF|
Eeed efge|fedf e2BA|GABG FGAF|BGAF GEE2:|
|:gfef gebe|gebe gfec|d2fd Adfd|cdAG FDEF|
GABG FGAF|E2ef gfed|BcdB A2FA|BGAF GEE2:|

Results in a PDF that looks like this:

Note: Only the first instance of the %pageheader or %pagefooter annotation is processed, any additional instances are ignored.

Page numbers can be added along with page headers and footers.

If you add a page header and you have selected top-centered page numbers, the page number will be hidden.

If you add a page footer and you have selected bottom-centered page numbers, the page number will be hidden.

Since these annotations are ABC comment-based, they will just appear to be normal comments in other ABC software.

Forcing a Specific Filename for PDF Export

If you want to force a specific filename to be used by default every time you export the PDF file, add the following comment-based directive anywhere in the ABC:

%pdfname your_pdf_filename_here

PDF Tunebook Hyperlinks and Automatic Play Links   (Top)

Example of using the tune playback hyperlinks and other advanced features:


Adding an external website hyperlink to a specific tune:

The tool can add hyperlinks to external websites to the tune notation in a PDF tunebook.

When a hyperlink is present, touch the title of the tune and you will automatically launch the associated tune hyperlink.

To add a hyperlink to an external website in any tune, add the following comment-based annotation anywhere in the ABC for a specific tune:

%hyperlink URL

Examples:

%hyperlink https://michaeleskin.com

%hyperlink https://cnn.com


Adding a playback hyperlink to a specific tune:

To add a hyperlink back to the ABC Transcription Tools for playing a specific tune with specific General MIDI instrument program number sounds for the melody, bass and chords, add the following comment-based annotation anywhere in the ABC for a specific tune:

%add_playback_link MELODY_PROGRAM BASS_PROGRAM CHORD_PROGRAM SOUND_FONT

The MELODY_PROGRAM, BASS_PROGRAM CHORD_PROGRAM, and SOUND_FONT are optional.

If only the MELODY_PROGRAM is specified, the BASS_PROGRAM, CHORD_PROGRAM, and SOUND_FONT values will be set to the current default soundfont and instrument program number settings for bass and chord playback in the Settings dialog.

If MELODY_PROGRAM, BASS_PROGRAM, CHORD_PROGRAM, and SOUND_FONT are not specified, the play link will be added, but no additional MIDI program, bassprog, or chordprog information will be injected into the tune at playback time.

Example: To have a specific tune played using the FatBoy soundfont with an Harpsichord sound on the melody and a Piano sound on the bass and chords

X:1
T:The Tarbolton
M:4/4
K:Edor
%add_playback_link 6 0 0 fatboy
Beed e2BA|GBAF GFEF|Dddc d2AG|FAGE FEDF|
Eeed efge|fedf e2BA|GABG FGAF|BGAF GEE2:|
|:gfef gebe|gebe gfec|d2fd Adfd|cdAG FDEF|
GABG FGAF|E2ef gfed|BcdB A2FA|BGAF GEE2:|


Adding playback hyperlinks to every tune in a PDF tunebook:

You may automatically add a hyperlink for every tune back to the ABC Transcription Tools for playing the tune with a specific General MIDI instrument program number sound for the melody, bass, and chords by adding the following comment-based annotation anywhere in the ABC file:

%add_all_playback_links MELODY_PROGRAM BASS_PROGRAM CHORD_PROGRAM SOUND_FONT

The MELODY_PROGRAM, BASS_PROGRAM, CHORD_PROGRAM, and SOUND_FONT are optional.

If only the MELODY_PROGRAM is specified, the BASS_PROGRAM, CHORD_PROGRAM, and SOUND_FONT values will be set to the current default soundfont and instrument program number settings for bass and chord playback in the Settings dialog.

If MELODY_PROGRAM, BASS_PROGRAM, CHORD_PROGRAM, and SOUND_FONT are not specified, the play link will be added, but no additional MIDI program or chordprog information will be injected into the tune at playback time.

This is useful for tunebooks for which you have manually specified all the MIDI soundfont, program, bassprog, and chordprog information already in the tunes and do not want them overridden when played from the play link.

Example: To have all tunes played using the FatBoy soundfont and a Harpsichord sound on the melody and a Piano sound on the bass and chords:

%add_all_playback_links 6 0 0 fatboy

To specify the volumes for the bass and chords to the playback links also add:

%add_all_playback_volumes BASS_VOLUME CHORD_VOLUME

Range for both BASS_VOLUME and CHORD_VOLUME is 0 to 127.

If %add_all_playback_volumes is not present, no volumes will be injected into each tune.

If no other tune-specific volume directives are in the tunes, the bass and chords will play at whatever default volumes the user has set in their tool's Settings.

For example, to set the bass volume to 48 and the chord volume to 64:

%add_all_playback_volumes 48 64

To have the playback links include the entire tunebook ABC, along with %add_all_playback_links also add:

%playback_links_are_complete_tunebook

If the entire tunebook playback Share URL is too large to be a valid URL link for opening in the tool (about 8100 characters), you will be presented with a warning when the PDF export is complete, and no playback links will be added to the tunes.

Additionally, if the complete tunebook playback Share URL is larger than the maximum allowed by Adobe Acrobat (2076 characters), after the PDF export is complete you will be presented with a warning that the links may not work in Adobe Acrobat but will work with browser-native and many other PDF readers.

This will probably happen quite frequently for tunebooks with 5 or more tunes.


Adding or disabling swing for all Hornpipes in PDF tunebooks with play links:

If you want to add swing to every Hornpipe when generating PDF tunebooks with play links, add the following comment-based annotation anywhere in the tunebook ABC:

%swing_all_hornpipes swing_factor (Optional: Range is -0.9 to 0.9)

If you omit the swing_factor value, it will use the current tool default from the settings dialog.

Tunes that have swing manually disabled using %noswing in their ABC will not have the %swing annotation injected and will play with no swing.

If you want to disable swing on every Hornpipe when generating PDF tunebooks with play links, add the following comment-based annotation anywhere in the tunebook ABC:

%noswing_all_hornpipes

Tunes that have swing manually specified using %swing in their ABC will not have the %noswing annotation injected and will retain their swing setting.

%noswing_all_hornpipes takes precedence over %swing_all_hornpipes.


Adding a thesession.org hyperlink to a specific tune:

To add a hyperlink to a specific tune to the thesession.org search page for the tune title, add the following comment-based annotation anywhere in the ABC for a specific tune:

%add_link_to_thesession

Example:

X:1
T:The Tarbolton
M:4/4
K:Edor
%add_link_to_thesession
Beed e2BA|GBAF GFEF|Dddc d2AG|FAGE FEDF|
Eeed efge|fedf e2BA|GABG FGAF|BGAF GEE2:|
|:gfef gebe|gebe gfec|d2fd Adfd|cdAG FDEF|
GABG FGAF|E2ef gfed|BcdB A2FA|BGAF GEE2:|

Adding thesession.org hyperlinks to every tune in a PDF tunebook:

You may automatically add a hyperlink for every tune to the thesession.org search page for the tune title by adding the following comment-based annotation anywhere in the ABC file:

%add_all_links_to_thesession


Precedence order for hyperlinks:

On a single tune, manually added website hyperlinks take highest priority, then playback hyperlinks, then thesession.org hyperlinks.

Any manually added individual tune hyperlinks take precedence over automatically generated tunebook-wide playback or thesession.org hyperlinks.

For automatically generated tunebook-wide hyperlinks, %add_all_playback_links takes precedence over %add_all_links_to_thesession


Note: Adobe Acrobat has a maximum supported hyperlink URL length of 2076 characters.

During PDF generation, if a playback or other hyperlink is detected that exceeds the maximum Adobe Acrobat supported URL length, you will be presented with an alert at the completion of the PDF generation.

The alert lists the names of the tunes that have the long URLs, along with the URL length for each tune.

These play links will work with the built-in PDF reader on most web browsers and online PDF readers, many non-Adobe desktop and mobile PDF readers, but will not open correctly if the tune title is clicked when the PDF is viewed using Adobe Acrobat.

If Adobe Acrobat is your target PDF reader, your best option is to use the available per-tune %hyperlink directive in these tunes with a shortened play Share URL manually generated using the Sharing dialog:

%hyperlink your_shortened_Share_URL_here


Disabling access to the tune editor from tunes linked from PDF tunebooks.

To disable access to the editor (hides the Zoom arrows in the full screen view) from a tune link created with one of the above directives, add:

%no_edit_allowed

anywhere in the ABC file.


Example: Creating a PDF tunebook with playback links and other advanced features

Here is a good starting template of annotations for creating a tunebook that includes:

Sets the PDF quality to the default (.75 = High quality). This can be reduced to create smaller, but lower quality PDF files.

Sets the spacing between tunes for multiple tunes/page to the default of 20/72". Change this to 0 for minimal space between PDF tunes.

Title page with sub-title

Table of contents linked to each tune

<< Link back on each page to the table of contents

Sorted index linked to each tune

>> Link back on each page to the index

Page headers

Page footers

Playback links on every tune title selecting the Fluid soundfont, Piano sound for the melody, and a Piano sound for the bass and chords

Injects all required fonts for each tune to match the current state of the tool.

QR code with hyperlink and caption at the end of the tunebook

%pdfquality .75
%pdf_between_tune_space 20
%addtitle Tunebook Title
%addsubtitle Tunebook Subtitle
%addtoc Table of Contents
%addlinkbacktotoc
%addsortedindex Index
%addlinkbacktoindex
%pageheader This is the Page Header
%pagefooter This is the Page Footer
%add_all_playback_links 0 0 0 fluid
%add_all_playback_volumes 64 48
%add_all_fonts
%qrcode https://michaeleskin.com
%caption_for_qrcode Click or Scan to Visit my Home Page

You can instantly inject this useful starter set of PDF annotations at the top of your ABC by clicking the Add PDF Tunebook Annotations button in the Add dialog.


Custom Font Overrides   (Top)

As per the ABC 2.1 specification, custom font overrides are possible, giving you maximum control over the appearance of your notation.

Available ABC Inline Font Annotations:

%%titlefont font-style size (used for the first title of the tune)
%%subtitlefont font-style size (used any additional titles for the tune)
%%infofont font-style size (used for rhythm string at the left side of the staff)
%%composerfont font-style size (used for the composer string at the right side of the staff)
%%tempofont font-style size (used for the tempo indication)
%%gchordfont font-style size (used for "G", "Em", etc., style chords symbols)
%%tablabelfont font-style size (used for tablature label)
%%tabnumberfont font-style size (used for tablature numbers)
%%tabgracefont font-style size (used for tablature grace numbers)
%%historyfont font-style size (used for for Z:, H:, and other descriptive metadata tags)
%%textfont font-style size (used for any %%text or %%center text)
%%annotationfont font-style size (used for "^*" and "_*" chord-like tablature annotations)
%%voicefont font-style size (multiple voice staff labels)
%%partsfont font-style size (used for P:)
%%vocalfont font-style size (used for for w:)
%%wordsfont font-style size (used for W:)

Generally, these will use the PostScript font-style naming convention, for example:

Times, Helvetica, Courier, Verdana, Times-Bold, Helvetica-Italic, etc.

The size parameter should be an integer, but is optional.

Place your font override annotations just below the X: and above the T: ABC tune headers.

Inline font annotations will override the default font settings configured in the tool's Settings dialog.

For example:

X: 1
%%titlefont Palatino 30
%%infofont Palatino 18
%%gchordfont Palatino Bold 14
T: The Road to Lisdoonvarna
R: slide
M: 12/8
L: 1/8
K:Edor
D|:"Em"E2B B2A B2c d3|"D"F2A ABA D2E FED|
"Em"E2B B2A B2c d3|"D"cdc B2A "Em"B2E E3:|
|:"Em"e2f gfe "Bm"d2B Bcd|"A"c2A ABc "Bm"d2B B3|
"Em"e2f gfe "Bm"d2B Bcd|"A"cdc B2A "Em"B2E E3:|

Result:

Note: If a font change doesn't appear to happen immediately, force a full refresh by opening the controls, changing the display format, for example from notation to one of the tab options and then back to notation.

That will force a full page refresh and the new fonts will be used.

Web Safe Fonts

The following "web safe" fonts at a minimum should be supported by all browsers:

Helvetica (sans-serif)

Trebuchet MS (sans-serif)

Gill Sans (sans-serif)

Verdana (sans-serif)

Times New Roman (serif)

Georgia (serif)

Palatino (serif)

Baskerville (serif)

Courier (monospace)

Monaco (monospace)

Bradley Hand (cursive)

Font availability varies with browser and platform. Many other fonts may be available on your system.

More information is available here:

Web Safe CSS Fonts

iOS Fonts

Automatically Inject Fonts into Share Links   (Top)

When creating share links, you can force injection of the required fonts for each tune from the tool's default fonts (set in the Settings/Font Settings dialog) by adding the following comment-based annotation anywhere in the ABC:

%add_all_fonts

This forces the tune opened by a share link to use the same fonts as when it was exported originally to the PDF file by injecting any required ABC font annotations at the top of the ABC for the tune.

Any fonts specified in the ABC will override the user's default fonts when they open the share link.


All Available PDF Tunebook Annotations   (Top)

Here are examples of all the possible PDF comment-based annotations in the tool:

%pdfquality .75
%pdf_between_tune_space 20
%pdfname your_pdf_filename
%pdffont fontname style
%addtitle Title Page Title
%addsubtitle Title Page Subtitle
%urladdtitle https://michaeleskin.com Title Page Title as Hyperlink
%urladdsubtitle https://michaeleskin.com Title Page Subtitle as Hyperlink
%addtoc Table of Contents
%addsortedtoc Table of Contents Sorted by Tune Name
%addlinkbacktotoc
%tocheader Page Header Text for Table of Contents Pages
%toctopoffset 30
%toctitleoffset 35
%toctitlefontsize 18
%tocfontsize 13
%toclinespacing 12
%addindex Unsorted Index
%addsortedindex Index Sorted by Tune Name
%addlinkbacktoindex
%indexheader Page Header Text for Index Pages
%indextopoffset 30
%indextitleoffset 35
%indextitlefontsize 18
%indexfontsize 13
%indexlinespacing 12
%no_toc_or_index_links
%toc_no_page_numbers
%index_no_page_numbers
%pageheader Page Header
%pagefooter Page Footer
%urlpageheader https://michaeleskin.com Page Header as Hyperlink
%urlpagefooter https://michaeleskin.com Page Footer as Hyperlink
%add_all_links_to_thesession
%add_all_playback_links 0 0 0 fluid
%add_all_playback_volumes 64 64
%playback_links_are_complete_tunebook
%add_all_fonts
%swing_all_hornpipes 0.25
%noswing_all_hornpipes
%no_edit_allowed
%qrcode
%qrcode https://michaeleskin.com
%caption_for_qrcode Caption for the QR code
%abcjs_soundfont fluid
%
% These directives can be added to each tune:
%hyperlink https://michaeleskin.com
%add_link_to_thesession
%add_playback_link 0 0 0 fluid
%swing 0.25 0
%noswing
%bodhran_tuning A
%bodhran_pitch A
%banjo_style 2
%grace_duration_ms 30
%roll_2_params 0.95 0.8 1.0 0.75 0.9 1.0 0.75 1.0
%roll_3_params 1.45 0.6 1.0 0.75 0.9 1.0 0.75 1.0
%use_original_abcjs_roll_solution
%abcjs_release_decay_time 200
%use_custom_gm_sounds true
%disable_play_highlight
%play_highlight_v1_only
%irish_rolls_on
%irish_rolls_off
%voice_tuning_cents
%tab_first_voice_only
%tab_first_voice_exclude


MusicXML Import Settings   (Top)

Bars-per-line:  Sets the number of bars per line. Every line of ABC will have the specified bars (measures). When both Character-per-line and Bars-per-line options are given, Bars-per-line is ignored. Default is: 4

Characters-per-line:  Sets the maximum line length for ABC output to CPL characters. An integer number of bars, at least one, is always output. How many bars fit into the maximum line length is calculated from the note line, not from the lyric lines. Line- and page breaks in MusicXML are translated to '$' after the previous barline [or volta number]. Default is: 0

Measure numbers:  -1: No measure numbers, 1..n: Number every n-th measure, 0: Number every system. Default is: -1

Include measure numbers at end of staves:  If checked, will add the total measure count as an ABC comment at the end of each stave. Default is: Checked

Unfold repeats:  Turns off repeat translation and unfolds simple repeats instead. Default is: Unchecked

Credit text filter (level 0-6):  Sets the filter level of the credit filter. This filter tries to eliminate redundant T: fields. The level C goes from 0 (default) to 6 (no filtering). A higher level does less filtering. The default filters as much as possible and only includes the xml credit elements if no title of movement-title is found. Level 6 does no filtering and includes all xml credit elements as T: fields. Default is: 0

Denominator unit length for L: tags:  Sets the unit length for the ABC output to L:1/value. This overrides the computation of the optimal unit length per voice. Default is: 4

%%MIDI options:  0: No MIDI, 1: Only program, 2: All MIDI. Default is: 1

No score line breaks:  Disables translation of xml line breaks. No abc score line breaks ($) will be output. Default is: Checked

No pedal directions:  Disables translation of xml pedal elements. Default is: Unchecked

All directions to first voice:  Allocates all XML staff directions to the first voice of the staff. Normally a staff direction is allocated to the voice of the next note after the direction (if any). Default is: Unchecked

Translate stem directions:  Translates stem directions present in the XML. Default is: Unchecked

Inject Q: tag if not present:  If checked, will inject a Q: temp tag if not present in the imported ABC. Default is: Checked

Q: tag value to inject:  If Inject Q: tag if not present: is checked, this is the Q: tempo tag value to inject. Default is: 100

Click Reset to Default to reset the MusicXML import settings to their original defaults.

Values are saved in browser storage and restored the next time the tool is run.


Exporting ABC to MusicXML Requires a Desktop ABC Application

The tool is not able to export ABC back out to MusicXML, but several desktop ABC applications are able to do this.

Here is a demo of how to use the free "EasyABC" desktop application, available for both Mac and Windows, to transcode ABC to MusicXML:


Sharing Tunes with Share URLs and QR Codes   (Top)

Clicking the Sharing button brings up the Sharing Controls dialog:

Share URLs and QR Codes are a quick and easy way to share your ABC tunes with friends or to post tunes on social media sites.

Anyone with the Share URL or QR Code can view, edit, save, and share their own copy of the tunes.

Share URLs and QR Codes also include the instrument selected, whether or not to show the top bar and links, display size, line spacing, PDF tunes/page setting, page number position, and page number on first page settings.

For stringed instrument tablatures, the link also includes the capo setting and whether or not to show the tablature name.

Share URL: Copying and pasting this link in a browser address bar will open the ABC Tools website and copy in the tune set ABC and tablature settings.

If the Share URL link is too long to work in most browsers, the Share URL buttons will be disabled and you will see a message suggesting sharing fewer tunes.

Test Share URL - Opens the Share URL in a new browser tab.

Copy Share URL - Copies the Share URL to the system clipboard so you can easily paste it into social media posts, emails, or other tools.

Save Share URL - Saves the Share URL to a text file.

The saved file will be in your browser's Downloads directory.

On iOS the downloaded files will be found in the "Downloads" directory in the iOS "Files" app.

Shorten URL - Shortens the Share URL using TinyURL automatically if possible, or if not, assists with the URL shortening process.

Generate QR Code - Once an Share URL is generated, if it is short enough to fit in a QR code (less than 2600 characters), this button is activated.

The QR Code is a visual representation of an Share URL that you can scan with the Camera app on your iOS or Android device.

Clicking the button will generate a QR code in .PNG format for the Share URL and open it in a new browser tab.

Even if the button is greyed out, Shift-click of the Generate QR Code button will attempt to generate a QR code for whatever text is present in the Share URL box.

This can be useful for generating QR codes from TinyURL shortened Share URL links or for other arbitrary website URLs.

If the arbitrary text in the Share URL box is too long to generate a QR code, the tool will display an alert.

In the newly opened tab, you can click the link below the image to save the QR code to your system.

Add Auto-Play - Adds &play=1 to the URL.

Link will open in the player.

Add Disable Editing - Adds &dx=1 to the URL.

Entering the editor from the full screen view of the tune shown when the share link is visited will be disabled.


Making Shared Tunes Open in the Player   (Top)

For single tune sharing, if you want to have the Player open with the tune already loaded when someone clicks the share link or scans the QR code, it is very simple to create a play link.

Click Add Auto-Play to add:

&play=1

to the end of the Share URL before copying it, shortening the URL, or creating a QR code.


Shortening Share URLs   (Top)

Automatic URL shortening using TinyURL:


Assisted TinyURL URL shortening if automatic shortening fails:

Share URLs can get pretty long, particularly for large sets of tunes.

A third-party service like TinyURL can be used to shorten Share URLs.

To get a shortened URL for the Share URL, click Shorten URL.

The tool will attempt to call TinyURL directly first to get a shortened Share URL.

If it succeeds, it will copy the shortened Share URL to the system clipboard and also show the result in a dialog.

If it fails (most likely the tool has used up all available free URL shortening sessions for the month), the tool will help you manually get a shortened URL by automatically copying the full Share URL to the system clipboard and then launching TinyURL in another browser tab.

Paste the already copied full Share URL into the TinyURL "Enter long link" box and click Shorten URL.

You may have to agree to the TinyURL terms-of-service before you can shorten the URL.

Copy the shortened URL from TinyURL and paste it into emails or share it on social media.

For example, here is a set of polks from "Sliabh Notes" as a shortened Share URL:

https://tinyurl.com/5n9293yu

TinyURL also allows you to create and save a simple QR code for the shortened URL.


Shared Tunes Open Full Screen   (Top)

Shared tunes, when opened from a Share URL or QR code, are initially displayed with the ABC Editor and controls hidden so you can see the music full-screen.

Click the Maximize/Minimize arrow to show the ABC Editor and controls.


Adding a QR Code to the PDF Export   (Top)

To append a QR code representing the Share URL for tune set or a specific URL as a final page on your PDF, add the following comment-based annotation anywhere in the ABC:

%qrcode URL

The URL field is optional.

If a URL is present, it will be used for the creation of the QR code, otherwise the computed Share URL for the PDF tunebook (as would be shown in the sharing controls) will be used by default.

One application for this would be the use of a shortened Share URL from TinyURL for the QR code instead of the longer one generated by the tool itself.

Note that the QR code page itself includes the PDF page header and footer but does not include a page number.

Here is an example of a tune set QR code included in the exported PDF:

Note: If a QR code has been requested, and the Share URL is too long to generate a QR code (more than 2600 characters), you will see an informative message at the end of the PDF export suggesting sharing fewer tunes.

If you are able to generate a QR code in the Sharing Controls, then the Share URL is short enough to embed a QR code in a PDF.

To override the default generated caption that is shown under the QR code added to a PDF file, add the following comment-based annotation anywhere in the ABC:

%caption_for_qrcode YOUR_CAPTION_FOR_THE_QR_CODE_HERE

The QR code image and caption in the PDF file now have clickable hyperlinks to the same URL used to generate the QR code.


Reading the QR Codes   (Top)

All devices should easily be able to read the simpler QR codes generated for sets of one to three tunes.

Most iOS devices are able to read even the most complex QR codes generated by this tool using the built-in Camera app.

Some Android devices may have trouble reading the most complex codes with their built-in Camera app.

I suggest trying the free Google Lens app, available on the Google Play Store:

Google Lens


QR Code Example   (Top)

Michael Coleman set ("The Tarbolton" - "The Longford Collector" - "The Sailor's Bonnet"):

Try scanning this code with the Camera app on your iOS or Android phone.


I have several example QR codes for tune sets on my Flickr account at:

ABC Tune Set QR Codes on Flickr


Printing Your Tunes Using the Browser's Built-in Print Feature   (Top)

Overview of printing from the browser:

You may quickly print your tunes or generate a PDF using your browser's built-in print and export PDF features.

Tunes printed or exported from the browser are limited to one tune per page.

You may choose portrait or landscape orientation from your browser's print settings.

Additional advanced settings such as printing multiple-pages per page and setting custom margins may be available in your browser's print settings dialog.

Experiment with both the browser's print settings page orientation and "multiple page on one page" options to see what is possible.

Note:If you want to print a tunebook automatically formated with multiple tunes per page, you must use the tool's Export PDF feature.


Opting-out of "Expand to Widest" Layout   (Top)

The original abcjs version 6.2.2 I used for the early versions of the tool would sometimes leave ragged right edges on staves, particulary for staves with many or changing numbers of measures per staff or on complex tunes brought into the tool through MusicXML import.

As of 20 November 2023, with the release of abcjs version 6.2.3, a significant update to the library, I defaulted to expanding all staves to the widest in the tune, which produces very clean and aligned right staff edges in nearly all cases.

If you wish to opt-out of the "expand to widest" layout for a specific tune, I've added a new first-class (starts with %%) ABC directive that can be put into any tune to force abcjs to use the original abcjs 6.2.2 layout calculation system:

%%noexpandtowidest

Put this anywhere in a tune to use the original staff width calculation and layout solution for that tune.


"Large Print" Edition Tune Notation   (Top)

Most of the time, people have asked how to cram as many tunes on a page as possible, but sometimes you want to go the other way, make the notation larger.

Maybe you need reading glasses and are using the sheet music for a gig in low light and want the notation large.

To do this with the new layout system, you'll need to override the expandtowidest feature in abcjs 6.2.3 by adding:

%%noexpandtowidest

to your ABC, and then play around with the values of:

%%leftmargin
%%rightmargin
%%staffwidth

For example:

%%noexpandtowidest
%%leftmargin 0
%%rightmargin 0
%%staffwidth 400

Once you add %%noexpandtowidest, you may in some cases have to adjust your ABC to get a consistent right edge to the staves.


Transposing Notation Independent of Tablature   (Top)

For some tablatures like CGDAE where instruments maybe in either standard pitch or one octave lower, if you transpose the notes down an octave to get the tab on the lower strings, but want the notation displayed an octave up, you can add the following voice annotation to the ABC:

% This shifts the displayed notation up one octave but not the playback pitch:
V:1 octave=1

You can also transpose the pitch of the played music independently from the displayed notation:

% This will cause the playback to be shifted down an octave:
V:1 transpose=-12

These can be combined:

% This will cause the notation to be displayed one octave higher, but playback to be shifted down an octave:
V:1 octave=1 transpose=-12


Learning New Tunes Part-by-Part Using ABC   (Top)

This video shows the process I used to learn tunes part-by-part using the tool:


Adding a Two-Bar Click Intro to Tunes   (Top)

If you want to add a two-bar click intro before a tune, here are ABC pattern templates I find work well for common styles of tunes:

Add this before the start of a reel, before any repeats:

% Reel two-bar click intro
V:1
V:2
%%MIDI program 128
^Cz3 ^Cz3|^Cz3 ^Cz3|
V:1
z8|z8|

Add this before the start of a jig, before any repeats:

% Jig two-bar click intro
V:1
V:2
%%MIDI program 128
^Cz2 ^Cz2|^Cz2 ^Cz2|
V:1
z6|z6|

Add this before the start of a slide, before any repeats:

% Slide two-bar click intro
V:1
V:2
%%MIDI program 128
^Cz2 ^Cz2 ^Cz2 ^Cz2|
V:1
z12|

Add this before the start of a slip jig, before any repeats:

% Slip Jig two-bar click intro
V:1
V:2
%%MIDI program 128
^Cz2 ^Cz2 ^Cz2|^Cz2 ^Cz2 ^Cz2|
V:1
z9|z9|

Add this before the start of a polka, before any repeats:

% Polka two-bar click intro
V:1
V:2
%%MIDI program 128
^Cz ^Cz|^Cz ^Cz|
V:1
z4|z4|

Add this before the start of a waltz, before any repeats:

% Waltz two-bar click intro
V:1
V:2
%%MIDI program 128
^Cz ^Cz ^Cz|^Cz ^Cz ^Cz|
V:1
z6|z6|

A chart showing the complete mapping of MIDI drum sounds to ABC notes is here:

General MIDI Drum Sound ABC Note Map

For example, if you want a higher pitched click, for example for the first beat of the measures, change the:

% Low Bongo
^C

values in the click intro patterns to:

% High Bongo
=C

Demos:

Reel with Two-Bar Click Intro

Jig with Two-Bar Click Intro

You can add an ABC template containing all of these examples from the Add dialog and then copy and paste them into your tunes.


Additional Tool-Specific ABC Directives   (Top)

The following ABC annotations have been added to abcjs:

% Add a slide-up indication before the note
!slideup! or J

% Slide-up examples:
!slideup!G2 JG2

% Add a slide-down indication after the note
!slidedown! or j

% Slide-down examples:
!slidedown!G2 jG2

Examples result in:


Creating Sets of Tunes that Will Play Sequentially in the Player   (Top)

This video demonstrates how to create a set of tunes that will play continuously in the player:

Summary of the process shown in the video:

1) Remove the X: tags from all but the first tune.

2) Make sure the tunes are all run together by deleting any extra blank lines between the tunes.

3) Delete the R: tags on all but the first tune to get rid of the stacked style directives at the top.

4) Add space above the T: tags for the tunes after the first one using a %%text directive.

5) Add a matching %%titlefont and %%subtitle font directives to the top of the set so that all the titles display with the same font.


Adding Shape Note Shapes   (Top)

The tool supports the standard shape note shapes for both 4-shape and 7-shape systems.

You can turn any note into a shape note shape by adding any of the following prefixes to the ABC note name:

!style=sn_do! C2
!style=sn_re! D2
!style=sn_mi! E2
!style=sn_fa! F2
!style=sn_so! G2
!style=sn_la! A2
!style=sn_ti! B2
!style=sn_do! c2
!style=sn_re! d2
!style=sn_mi! e2
!style=sn_fa! f2
!style=sn_so! g2
!style=sn_la! a2
!style=sn_ti! b2

Which produces the following notation:

The unfilled versions of the shapes are used for longer notes:

!style=sn_do! C4
!style=sn_re! D4
!style=sn_mi! E4
!style=sn_fa! F4
!style=sn_so! G4
!style=sn_la! A4
!style=sn_ti! B4
!style=sn_do! c4
!style=sn_re! d4
!style=sn_mi! e4
!style=sn_fa! f4
!style=sn_so! g4
!style=sn_la! a4
!style=sn_ti! b4

Produces the following notation:


iPhone/iPad Chord Entry Issue Fix   (Top)

If you are trying to enter ABC chords, for example "D" or "Am", on an iPhone or iPad, iOS will, by default stick in "smart quotes" instead of standard double quotes.

To fix this, go into your device's Settings and under the General/Keyboard tab, and turn off "Smart Punctuation".

After you do this, you will be able to add standard double quotes.


Using Interactive PDF Tunebooks with GoodReader   (Top)

if you are using GoodReader on iOS as your PDF reader and want to be able to play the tunes in my interactive PDF tunebooks, you'll need to change this one setting, available under the gear menu at the bottom of the app:

Enable Use Safari for Internet links:


ABC Specification   (Top)

The full specification for ABC notation can be found at:

The ABC Music Standard 2.1 (Dec 2011)


ABC 2.1 Quick Reference Card   (Top)

Handy ABC 2.1 Quick Reference Card put together by Stephen Merrony:

ABC Quick Reference Card


Example ABC Tunes   (Top)

Click these Share URLs to open the tune ready to play in the ABC Tools:

Jig from the "Pickering Lute Book"
Harp

Flight of the Bumblebee
Acoustic Grand Piano

Star Wars Cantina Theme
SFX Rain Synth and Honky-Tonk Piano

James Bond Theme
Overdrive Guitar and Electric Fingered Bass

Midnight Blue
Acoustic Grand Piano

La Boheme
Tenor Sax and Acoustic Grand Piano


Example ABC Tunebook   (Top)

Click the Share URL below to open an ABC tunebook with 9 tunes in the ABC Tools.

The set is ready to export to PDF with a Title Page, Table of Contents, and Index:

"Sliabh Notes" Polkas Tunebook


Source Code Available on GitHub   (Top)

Full project source code may be found at:

ABC Tools on GitHub


Notes on Running the Tool from the GitHub Repo   (Top)

After downloading and unzipping the source code from the GitHub repo, you can run the tool by double-clicking the abctools.html file.

If you require the ability to play the tunes while not connected to the internet, run the abctools-offline.html file instead.

I can't support having all the instruments available offline, but I can include the Javascript encoded data for one instrument, an Acoustic Grand Piano, and for the percussion instrument as part of the tool source code tree.

When you start abctools-offline.html, it immediately grabs the online/offline state.

If an offline state is detected at tool start time, when playing tunes, all instruments are replaced with an acoustic piano sound, and the percussion sounds (MIDI program 128) are also available (for use in the metronome, primarily).

If the online status changes in the middle of using the tool, the change won't be detected until abctools-offline.html is reloaded.

Since these local sound resources are huge (about 4 megabytes), even bigger than the entire rest of the tool source, I don't want to burden everyone with having to load them for a case that only would be possible when running the tool from the source code in an offline state, so they are only included in abctools-offline.html as well as the offline check code.


Privacy   (Top)

My ABC tools use local browser storage to save the tool's settings, user preferences, and snapshots.

Google Analytics are used in the tool to provide anonymized telemetry on the frequency of the use of specific features.

No personal data is sent with this telemetry, only event category and event name, for example that the import MusicXML or export MIDI features were used.

I use this data to prioritize new features and to better understand how people are using the tool.

TinyURL does allow me to see some shortened URLs as they are created using my TinyURL account API key.

I will never redistribute or in any way use a shortened Share URL you create.


Support   (Top)

Have an issue with a specific tune, want to report a bug, or suggest a new feature?

Click here for the project support page:

ABC Transcription Tools Support


Tip Jars   (Top)

If you find my ABC Transcription Tools useful,
please consider tossing a few bucks into one of my virtual tip jars:

PayPal
https://paypal.me/MichaelEskin

Venmo
@MichaelEskin