Jump to content

ABC Transcription Tools

Michael Eskin

Recommended Posts

To address a user request to have a way to export .mp3 files of the tunes with some delay before the music starts, I've added  additional options to the batch .MP3 exporter on the "More Tools" "Export All Audio or Images" dialog.


While primarily designed to do batch .MP3 export of all the tunes in a tunebook at one time, it also works just fine if you have a single tune.  


Think of this as an enhanced version of the simple single tune .mp3 export that is available from the Player.


You can now select between three options for what to inject before the tune(s) when exporting .mp3 files using the "Export All Tunes as MP3" dialog:


Do nothing
Inject two bars of silence
Inject a two-bar style-appropriate click intro

Inject both two bars of silence and click intro


You can also pick how many times you'd like the tunes to repeat in the .MP3 file.


It's really important when using this exporter, particularly with automatic repeat injection that you have properly formatted ABC with regards to repeat marks and pickups:


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


If there is a repeat at the end of the first part of a tune, either  standalone or in a first ending, there must be a matching |: bar at the  start of the tune for the silence/click injects and tune repeats to work properly.

Update 2/10/24: Added this same functionality to the "Inject Repeats and Two-Bar Click Intros" dialog as well.

Edited by Michael Eskin
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Added a new "Inject Font Settings" feature on the "More Tools" dialog to allow you to easily inject your default font annotations into the header of one or all of the tunes.

Since the ABC font directives are pretty large, injecting all of them starts to impact the share links, while compressed, still have some maximum sizes for QR codes, Adobe Acrobat compatibility and such. So it makes more sense to just inject the directives you need, not all of them as I was doing in the first pass at this feature.

Note: This is an entirely optional feature, you only want to use this if you want to make sure that the way the ABC looks in the tool as far as fonts when someone opens one of your share links absolutely matches how it looked when you created the share link. Otherwise, if not specified in the ABC, the ABC will be rendered with the default fonts the user has setup in their their Settings/Font Settings. The notation in any PDF files will match however it looked at the time it was rendered, this is only about fonts in opened share links or exchanged ABC files.
Link to comment
Share on other sites

I've added a new annotation to the PDF exporter that will automagically inject the required fonts for a tune into the ABC contained in the share links:


So that you don't have to worry about dealing with it manually, I've added a new option in the PDF Tunebook Features setup dialog that will add the annotation for you:

"Inject all required fonts into the ABC in the playback links"

When this is checked, the ABC font annotations required to render each tune, much like is done for the MIDI instrument programs used for playback, will be inject to the top of each tune.

The default is for this to be unchecked (you have to opt-in to it).

The values in the PDF Feature Settings dialog are persistent so once you make any changes, they will be used the next time you open the dialog.

The most commonly required font descriptions like %%titlefont and %%subtitlefont are always added, but less common ones like for vocal parts and multi-voice tunes are only injected if required to try and keep the share link sizes down.

Again, this only comes into play if you want a tune opened from a share link in a PDF to have the same fonts as on your system when you generated the PDF tunebook.

The appearance of the tunes in the PDF tunebook itself will always reflect the fonts you have set in the tool's Settings/Font Settings dialog.

Link to comment
Share on other sites

I've added a new Bodhran instrument with multiple samples at various strike velocities, a scrape, and edge tap sound at MIDI program 117.
Full details on the mapping of notes to bodhran sounds at:

Demo video:

Live demo in the tool of the arrangement in the video:


Also included pitched bodhran samples starting at C5:

% Basic versions start at C4
C4 - Strike level 1
C#4 - Strike level 1
D4 - Strike level 2
D#4 - Strike level 2
E4 - Strike level 3
F4 - Strike level 4
F#4 - Strike level 4
G4 - Scrape
G#4 - Scrape
A4 - Edge tap
A#4 - Edge tap
% Pitched strike versions start at C5
C5 - Strike level 1
C#5 - Strike level 1 + 1 semitone
D5 - Strike level 1 + 2 semitones
D#5 - Strike level 1 + 3 semitones
E5 - Strike level 1 + 4 semitones
F5 - Strike level 2
F#5 - Strike level 2 + 1 semitone
G5 - Strike level 2 + 2 semitones
G#5 - Strike level 2 + 3 semitones
A5 - Strike level 2 + 4 semitones
A#5 - Strike level 3
B5 - Strike level 3 + 1 semitone
C6 - Strike level 3 + 2 semitones
C#6 - Strike level 3 + 3 semitones
D6 - Strike level 3 + 4 semitones
D#6 - Strike level 4
E6 - Strike level 4 + 1 semitone
F6 - Strike level 4 + 2 semitones
F#6 - Strike level 4 + 3 semitones
G6 - Strike level 4 + 4 semitones


When using the 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

Edited by Michael Eskin
Link to comment
Share on other sites

A huge thank you to Ben Hockenberry for providing some lovely example bodhran templates in multiple styles for my ABC Transcription Tools.

You'll find them on the "Add" dialog, there is a new button labeled "Add Bodhran Backing Track Tune Template"

There are six tune styles available as Bodhran backing track templates:

Slip Jig

Once added, the ABC for the bodhran track is no different from any other ABC and can be edited if you want to customize the track and save off your own modified templates to open later in the tool like any other tune.



Edited by Michael Eskin
Link to comment
Share on other sites

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

%bodhran_pitch (drum pitch)


%bodhran_tuning (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.



Edited by Michael Eskin
Link to comment
Share on other sites

Completely re-wrote the instrument sample fetching code in my custom version of abcjs in my ABC Transcription Tools to use fetch() instead of XMLHttpRequest and seeing dramatically faster load times for tunes at playback time.

This is a pretty major change.  

I've tested it on Firefox, Chrome, Safari, and mobile Safari, and it's looking really good and stable.

Please let me know if you run into any issues on any platform.  All you should notice is that it takes less time for the Player control bar to change from grey to black when playing, indicating that it's ready to play.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...