Jump to content

ABC Transcription Tools

Michael Eskin

Recommended Posts

Playing around with using VisualScript for SmartDraw to do visualizations of ABC search results including play links.


Click on any link icon to play the tune in my ABC Transcription tools:

PDF version:

SVG version:


Edited by Michael Eskin
Link to comment
Share on other sites

You can now batch export the images for your tunes all at one time in JPG, PNG, or SVG format.

This feature can be very useful for putting the tune images for an entire tunebook on a website or importing them into other documents.

The JPG and PNG files are bitmaps.  

The SVG files are vector-based.

This feature is only available on desktop browsers.

Unfortunately, I am unable to export images of tunes with tin whistle tablature due to limitations of the whistle fingering font.

Demo video:



Edited by Michael Eskin
Link to comment
Share on other sites

A new feature specifically for the developers out there:

You can now export the Share URLs for all the tunes in either a JSON or CSV formatted file.  

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.

Demo video:



Link to comment
Share on other sites

Sometimes it's the little things that make a huge difference.

You can now open the Player or export a PDF right from the full-screen tune view by clicking the new buttons on the bottom left and right corners of the window.

This is extremely useful since most people will be coming into the full-screen tune view from play links in PDF tunebooks.

Now, without ever entering the editor they can: Close and re-open the Player. Launch the Tune Trainer.

Save the tune image out in JPEG, PNG, or SVG format at any resolution.

Save the audio as a MP3 or WAV file.

Save the MIDI for the tune.

Export a PDF of the tune.


As part of this sprint to the finish I also added previous and next tune navigation buttons to the Player.  


This is particularly useful if coming in from a play Share URL with multiple tunes, you can now step through all the tunes and play them.  


Previously you'd have to exit to the Editor and click on another tune to play it.  


Now, you never have to leave the full-screen mode or Player to play all the tunes in a tunebook.


Very happy to have these now!

I'm going to be taking a break for at least a week (or two) to clear my mind and try to get more into a retirement mindset. I've been spending 8-12 hours a day working on the tool every day since retiring from my real job and I feel like, with these new features on the full-screen view, like I'm at a very good stopping point.

If any "show-stopper" bugs come up, I'll address those of course, but I think the tool is in great shape.

Going forward, as I've been adding more ways to get images and metadata out of the tool, I'll be focusing on ways to use the output of the my tool with other products, for example, the examples I did with SmartDraw VisualScript integration.

I think there is a lot that can be done in the area of academics and music education where the tool can provide a lot of value to assist with creations of lessons, websites, and other teaching materials.

That will be my focus more than adding new features to the tool itself.

At least that's today's thought. 🙂




Screen Shot 2023-12-08 at 7.58.33 PM.png


Edited by Michael Eskin
  • Like 1
Link to comment
Share on other sites

I've added a pretty major new feature for the PDF tunebook play link generation. Kind of a game-changer, really.

Inspired by a comment by Hans-Jørgen Jensen, now when exporting PDFs from the tool, you now have the option of having  your tune play links contain the entire tunebook instead of just the single tune.  

When you click on the title of the tune in a PDF tunebook generated with this feature enabled at PDF generation time, the player will open with the entire tunebook loaded, the particular tune selected and the previous and next arrows available to navigate through the tunebook.

Demo video:



Edited by Michael Eskin
Link to comment
Share on other sites

Finally, you can:

Highlight Notation by Selecting the ABC Text
Highlight ABC Text by Clicking the Notation

In the Developers Settings "Experimental Features" section there is now an option to replace the "Tune Trainer" button in the top toolbar with a new "Select Mode On/Off" button.

When Select Mode is turned on you can highlight the notation for any ABC text by selecting or select the ABC for any element in the rendered notation just by clicking on it.  You can even click on tablature elements in the notation.

Turn on highlighting the corresponding notation when selecting ABC text and highlight the ABC text for any note or element clicked in the notation by checking:

Replace Tune Trainer toolbar button with Select Mode On/Off button

When Select Mode is On:

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

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

- Select Mode requires redrawing all tunes on each change.

- 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 Advanced dialog as well as automatic injection of staff separation space will be disabled. Your settings will be restored when you turn Select Mode Off.

- PDF tunebook generation will work with no issues.

- The Tune Trainer is still available from the Player when playing tunes.

Once enabled, the Select Mode button will be shown every time you run the tool.

To re-enable the Tune Trainer toolbar button, open this dialog and un-check the box.

The main reason I’m keeping this in an “experimental” option that you have to “opt-in” for is that for the whole thing to work, the ABC and the rendered notation absolutely have to stay 100% in sync.

To do that, I have to re-render the entire ABC on every change.

That works fine for relatively small collections of tunes, lets say up to 30 tunes (depends on the speed of your computer), but once you have 50 or more tunes, there may be a noticeable delay as the tool re-renders the whole tunebook on every change.

While that’s not an optimal experience in some cases, I went ahead and made the feature work for any number of tunes. I do explain this in the “Experimental Features” section of the “Developer Settings” dialog.

I think most users aren’t even going to notice any delay, particularly working on sets of 1 to 10 tunes.

When Select Mode is off, to work efficiently with extremely large tunebooks, even over 1000 tunes, I’m able to do rendering optimizations to only redraw the tune you are working on, which actually makes it possible to work on such books.

When Select Mode is on, it isn’t optimal for those very large tunebooks and probably isn’t usable if there are over 100 tunes. When it’s off, it works like before.

Demo video:





Edited by Michael Eskin
  • Like 1
Link to comment
Share on other sites

A bunch of minor UI changes this morning:
The "Advanced" button has been renamed "More Tools"
"Developer Settings" have been renamed "Advanced Controls" and now are available on mobile as well as desktop.
I added a new setting in the "Advanced Controls" that allow you to move the Player tunebook navigation controls to the left side.
All of this is reflected in the latest version of the User Guide with new screen shots.
Link to comment
Share on other sites

So, one of the Holy Grails of ABC playback, besides having some swing, is to get the ornamentation to sound at least reasonably good.

Most solutions haven't done such a great job.

Based on some observations from Michael Long about the way that abcjs does ornamentation by default, tonight I set upon coming up with a much better solution, and I'm very happy with this initial experiment.

In ABC, you can designate a roll on a note either by preceding it with a ~ or the letter R.

abcjs would render the roll during playback if you used the R method, but not if you use the ~.  

~ in abcjs shows a roll in the notation, but during playback doesn't modify the actual note.  You have to use an R to get abcjs to actually play a roll.

The default abcjs roll playback solution sounded like a machine gun, repeating as many short notes as would fit in the length of the note..  

I thought I could do better.

I think I have something that will be very useful for most, but not all situations.

In my solution any rolls on a quarter note are played as two sixteenth + eight style triples.

Rolls on a dotted quarter will play with standard three note roll time, with a slight lengthened first note, a shortened second note and then the final note.  

In both cases the second note is played at a slightly lower volume.

This is in the released version of my tool.  To use it you'll need to change any ~ to R in your ABC to have it kick in.

Now for reels that have dotted quarter rolls, you might have to re-write, for example:




as I have done for The Congress.

Jigs should work very nicely with very little modification.

Here's some examples using the new roll timing, all are done using an R before the note instead of a ~.


If you close the Player and the full-screen view, you can see the raw ABC.   You'll see that the ornamentation isn't written out, all I've done to make this kick in is put an R before the notes I want to roll.

I could make this the default behavior of the tool, but I think that's too risky at this point, and the R (or !roll!) prefix is a standard ABC way of indicating a roll. I figure that's the best way to release this at this time.

Here's a demo of my custom abcjs roll timing solution compared with the default abcjs implementation using the same ABC tune notation.

I’m also adding a small amount of swing to each tune along with the custom roll timing:



Edited by Michael Eskin
Link to comment
Share on other sites

1 hour ago, Michael Eskin said:

So, one of the Holy Grails of ABC playback, besides having some swing, is to get the ornamentation to sound at least reasonably good.

Most solutions haven't done such a great job.

Based on some observations from Michael Long about the way that abcjs does ornamentation by default, tonight I set upon coming up with a much better solution, and I'm very happy with this initial experiment....

Nice! I didn't know about the 'R' abbreviation for !roll! Sounds good...


I also spent a few minutes experimenting with this, and comparing it with what EasyABC does. There's some similarity - in EasyABC ~ seems not to work at the very start of a tune (or some tunes, anyway), whereas R does. T (or !trill!) sometimes causes havoc within EasyABC, completely mangling playback. I've always got around this by replacing the T with a ~ which is really a 'quick-and-dirty' solution. Maybe I should try R instead...

Edited by Roger Hare
Link to comment
Share on other sites

Feeling lucky?

Opt-in to using the custom roll playback system on ~ style rolls!

Normally the custom rolls would only kick in for those indicated with an R or !roll! before the note letter.  

I didn't want to make it the default for ~ style rolls as because it could possibly misbehave on lot of existing ABC tunebook tunes.

Instead, if you want to opt-in to using the custom rolls for ~ style rolls, go to the Advanced Settings dialog and check the following option:

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

Once turned on, the tool will use the setting until you turn it off.

Also, when turned on, any custom roll parameters set with %roll_2_params or %roll_3_params  in the ABC will be applied to ~ style rolls as well as rolls indicated with R and !roll! preceding the note letter.

Link to comment
Share on other sites

For even more flexibility with the Roll Explorer, particularly with reels that have ~G3 style dotted quarter note rolls in them, I've added a couple of buttons that will transform all rolls in the style:


to either:




Which may give a much better sounding roll when played than using the default dotted quarter note roll solution, which I think is better suited for jigs.  I provided two common transforms that allow for a variety of roll effects.  

The transformed ABC is saved back to the tune along with the custom roll parameter annontations when you click "Inject Parameters into ABC".  

If you don't like the transformed ABC, don't inject the changes, just close and re-open the Roll Explorer, it will reload the original tune.

Link to comment
Share on other sites

I've been doing a lot of work lately to give you complete control over how rolls are rendered in the tool.

The Roll Explorer now has an option to save the quarter note and dotted quarter note roll parameters you've setup for a specific tune as the tool defaults.

The roll default timing parameters can also be edited manually or reset to the original defaults in the "Advanced Settings" dialog.

Here is complete walkthrough of all features related to the playback of rolls in the tool, including a tour of the Roll Explorer and explanation of the default roll timings and how they can be changed to match your preferences:




Link to comment
Share on other sites

You now can choose between the original Gavin Heneghan tune collection (20,000+ tunes) or the FolkFriend.app (45,000+ tunes) when searching for tunes in the tool! 

After the video, I added the ability to limit the maximum number of results as well as additional filtering options.



Edited by Michael Eskin
Link to comment
Share on other sites

Some rather exciting news!

I've added two new PDF export formats to my ABC Transcription Tools:

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 transformed from standard ABC to the Comhaltas preferred "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.

This feature will allow any teacher that uses the Comhaltas "blackboard" system to easily generate full notation tunebooks with just the note names in their preferred style.

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