EasyABC

EasyABC

An open source ABC editor for Windows, macOS and Linux

Version 1.4.0.0b — LGPL License

Windows macOS Linux / GTK abcm2ps + abcMIDI

Source code (GitHub) · Downloads (SourceForge) · Complementary guide

Introduction

EasyABC is an editor for ABC music notation, originally developed by Nils Liberg and maintained since 2015 by Jan Wybren de Jong, Seymour Shlien and Frédéric Aupépin. It combines a text editor with syntax highlighting, a real-time rendered musical score, and conversion tools to MIDI, MusicXML, SVG, PDF and HTML.

The main window is split into three or four resizable parts: the tune list, the musical score, the ABC code editor, and the ABC assist pane (toggled with the light bulb icon in the toolbar). Clicking a tune in the list displays its score and code; the play button plays the selected tune.

EasyABC
EasyABC main window.

To get started, copy and paste this code into the ABC editor:

X: 1
T: My tune
K: C
CDEF | G2

The score is displayed at the top and an item called "My tune" appears in the tune list. With several tunes, single-click one to view it; double-click to play it (or use the play button in the toolbar).

Installation

EasyABC relies on external programs installed in the bin/ folder: abcm2ps (SVG rendering), abc2midi (MIDI generation), abc2abc (transposition), Ghostscript or ps2pdf (PDF export), xml2abc / abc2xml (MusicXML) and midi2abc (MIDI import).

  • Windows: run the installer, then check the paths in File ▸ Settings.
  • macOS: in packaged builds the executables live in the Helpers folder of the application bundle.
  • Linux: EasyABC looks for executables in /usr/local/bin and /usr/bin, then falls back to bin/ next to the program. Two options are available: a .deb package that installs all dependencies automatically (see below), or running from source (see Running EasyABC from source), which works on all platforms.
  • Ghostscript (PDF export): download it from ghostscript.com for Windows; for macOS, a prebuilt package is available on Richard Koch's page.
Tip: on Windows, Ghostscript is detected automatically from the registry; usually you just need to point at gswin64c.exe in the settings.

Features

  • Good ABC standard coverage thanks to abcm2ps and abc2midi.
  • Syntax highlighting; the score is updated automatically as you type.
  • Zoom support for the score and the editor.
  • Import MusicXML, MIDI and Noteworthy Composer files (the MIDI-to-ABC translator is custom made and produces legible ABC code with more sensible beams than typical midi2abc output).
  • Export to MIDI, SVG, PDF, HTML, MusicXML and WAV (single tune or whole tune book).
  • Select notes by clicking on them and add music symbols via toolbar drop-down menus.
  • Play the active tune as MIDI, with tempo and position sliders, looping and an optional metronome count-in.
  • Record songs from MIDI directly in the program.
  • Unicode (utf-8) and other encodings support.
  • Transpose and halve/double note length functionality (using abc2abc).
  • An abcm2ps format file can easily be specified in the settings.
  • ABC fields in the file header are applied to every single tune in a tune book.
  • Automatic alignment of bars on different lines.
  • Available in Italian, French, Danish, Swedish, English and more.
  • Functions to generate incipits, sort tunes and renumber X: fields.
  • Musical search function — search for note sequences irrespectively of key, grace notes, L: field, broken rhythms, ornaments or slurs.
  • Automatic removal of ties for simpler MIDI rendering.
  • Support for MC Music Editor "sticky rhythm" (L: mcm_default).
  • ABC assist for novice users; search-in-directory tool; progress bar for long batch operations.

Entering and editing ABC code

A bar line in ABC is represented by the character |. As an alternative, simply hit the Tab key to insert one.

With a multi-tune file, the score display is updated and scrolled into position when you move the text cursor in the editor. Clicking with the mouse highlights the closest note in red. For performance reasons this does not happen with the arrow keys; press Ctrl+L (Locate) to highlight the closest note manually.

Typing assistance

The Settings ▸ ABC Typing Assistance submenu enables automatic corrections:

  • Automatic uppercase/lowercase — "C" and "c" correspond to different octaves. With this mode on, EasyABC picks the octave closest to the preceding note. Press Shift while typing to reverse the chosen case. Off by default.
  • Do-re-mi mode — experimental sol-fa input with a movable do (e.g. "do" corresponds to a "D" if the key is D; the seventh degree is typed "ti"; one letter suffices, e.g. "r" for "re"). Can be combined with the previous mode. Off by default.
  • Add note durations — on Space, EasyABC adds durations so the group adds up to a quarter note. With L:1/8: AB becomes A2B2, ABC becomes A2BC. Off by default.
  • Add bar — when Space is pressed and the bar is full, a bar symbol is added automatically.
  • Add matching right symbol — typing "(" adds the matching ")"; likewise for [], {} and "".

Editing shortcuts

When two or more notes are selected (in the ABC editor or in the score):

KeyEffect
( or sAdds (or removes) a slur around the selected notes
.Toggles staccato on the selected notes
< / >Introduces broken rhythm (can also cancel an existing one)

The broken rhythm shortcut works on pairs of notes: "AB CD" + > becomes "A>B C>D". These functions may not work well with chords yet.

Musical score

EasyABC in dark mode
EasyABC in dark mode: tune list, musical score and ABC code editor.

Selecting notes

Click a note or rest in the score to select the corresponding ABC text — a direct link between the graphical and textual representation. Draw a rectangle to select a range of notes (hold Ctrl/Cmd to add to the existing selection). Clicking an empty white area deselects everything and moves the text cursor to the closest note — handy for inserting chords or annotations at the right place.

Inserting musical symbols

Select the note you want to attach a symbol to, then pick the symbol from one of the toolbar drop-down menus (ornaments, dynamics, articulations, etc.).

Zoom and pages

A toolbar slider controls the size of the score. Tunes that don't fit on a page are split into several pages, selectable from a drop-down menu; EasyABC auto-scrolls the score as you move through the ABC code but does not switch pages automatically. For very long tunes, you can turn off automatic score updates and refresh manually with F5.

Playback and MIDI

  • Play with the toolbar button or F6 (Shift+F6 on Mac).
  • While playing, two extra sliders appear: tempo adjustment (Ctrl+click to reset) and playback position.
  • Double-click the play button to loop the playback.
  • Hold Ctrl while clicking play to audition without repeats.
  • To play part of a tune, use the mouse to draw a rectangle over part of the score, highlighting the passage to play. The rectangle must encompass part of one line or several whole lines: it cannot start part-way through a line and end on another line.
  • Once a passage is selected you can add another passage to the selection by holding Ctrl and drawing another rectangle: that way you can add together part-lines.
  • In a multi-voice tune the selected passage can include one or more voices.
  • MIDI settings cover instruments per voice, volume, panning, guitar chords (%%MIDI gchord), chord/bass accompaniment, default tempo, transposition and tuning (-TT).
  • An optional metronome count-in can be added before the tune.
  • MIDI recording: press Rec, play on your MIDI keyboard, then press Stop. The result is quantized (with triplet detection) and converted to ABC. On macOS, output goes through the system's MIDI synthesizer.
Existing %%MIDI commands in your code are respected: EasyABC does not add duplicates.

Import / Export

To add an ABC, XML, NWC or MIDI file to the current collection, drag and drop it onto the EasyABC window, or use File ▸ Import and add…. The File ▸ Export (all or selected) menu saves the current tune or the whole book in several formats:

  • MIDI — copies the file generated during playback from the cache to a location of your choice (cache files have random names, so exporting is the proper way to keep them).
  • PDF — via Ghostscript or ps2pdf (see Installation).
  • HTML — the score is embedded as SVG inside an HTML file, viewable in any browser without special software (browser add-ons can even print it). The interactive HTML variant embeds the ABC file and links it to Jef Moine's abc2svg JavaScript library: the tune is rendered in the browser and can be played while following the score — an internet connection is required.
  • MusicXML — via abc2xml (Willem Vree's code, included in EasyABC), the standard format for exchanging digital sheet music, e.g. for MuseScore.
  • ABC — unlike File ▸ Save, which saves the whole open file, this option exports only the selected tune.
  • WAV — the tune is first converted to MIDI by abc2midi, then the MIDI file to a WAV audio file.
  • .nwc files get specific post-processing: Boxmarks font text annotations are translated into ABC decorations (trills, bowings, etc.); in two-voice songs with repeat alternatives, bar symbols from the first voice are copied to the second so the generated MIDI is correct.
  • ABC files are read as latin-1 by default; add a %%abc-charset utf-8 line to use Unicode.

Printing: File ▸ Print prints the current tune. On Windows and macOS the quality may be limited (bitmap rendering); for high-quality print-outs, export to PDF first.

Tools

Aligning bars

Edit ▸ Align bars aligns all | characters in the current tune; select a subset of lines first to align only those. How it works: each line is split into measures and separators (the aligner distinguishes all bar symbols: |, ||, |:, :|, |1, ::, etc.); incomplete measures are padded with pseudo-elements, and bar separators are centered on the last | they contain. Detection of anacrusis (pickup measures shorter than 80% of a full measure, computed from the M: and L: fields, including triplets and broken rhythms) lets lines that start on an off-beat align correctly; the contents inside bars can be aligned too. The change can be undone.

Transpose

The Edit menu offers transposition up/down and changing note lengths (adjusting the L: field), via abc2abc.

Incipits

Tools ▸ Generate incipits file... produces an ABC file with an overview of how each tune starts (number of bars, repeats and titles, and sort fields are configurable); View incipits shows the final PDF using the default template.

Sorting and renumbering

The Tools menu can sort the tunes in a file (multi-field sort key, e.g. "T,M") and renumber the X: fields.

Search

If your search string begins with a colon, EasyABC enters a special musical search mode: it matches the intervals between notes, irrespectively of key. The mechanism: every note in the tune is converted to a number (C,, through b'' over 43 degrees), and the sequence of intervals between consecutive notes is encoded as characters; the search then runs over that interval sequence. Key, accidentals, grace notes ({…}), ornaments (!…! / +…+), annotations, comments, fields (X:, T:… including embedded [I:…]) and %%begintext/%%beginps blocks are ignored; so the search works even when the two versions use different L: fields, broken rhythms or slurs. For example :gecc eceg would find d2>B2 G2G2 (BG)Bd: the intervals between successive notes are the same in both cases. The search is performed tune by tune (split on X:) and does not work on chords.

Internals

EasyABC acts as a graphical front end to command-driven programs such as abcm2ps and abc2midi, which are updated independently — you should point EasyABC at their latest versions. Errors and warnings no longer appear in pop-up windows: a short note in the status bar indicates whether the program ran normally, and the Internals menu lets you investigate.

Messages

Shows the communication between EasyABC and the external programs: the full command line (e.g. abcm2ps - -O temp-…-.svg -v -A) and the program output. For instance stdin:18:15: warning: Line underfull means a music line was not completely filled — usually harmless. The window refreshes on every operation (playback, tune selection…). Temporary SVG and MIDI files in the cache folder get long random names to avoid collisions, especially when several EasyABC instances run side by side.

Input Processed Tune

Shows the data actually submitted to the external program, with numbered lines so you can relate warnings to the input. The processed tune contains extra lines added by EasyABC: page margins for abcm2ps (%%leftmargin 0.5cm etc.) or %%MIDI commands for abc2midi (instrument, volume, pan, chords…). You can copy the contents with Ctrl+A / Ctrl+C.

MIDI Disassembled

Displays the MIDI file in text form (via midi2abc -mftext). An advanced feature useful for diagnosing playback problems: each line lists the time in beats, the command, the MIDI channel (1–16), the pitch and the velocity. Simple files produce a single-track MIDI; files with voices or guitar chords produce multiple tracks (one per voice, plus bass/chords).

Show settings status

Displays the readable contents of settings1.4.dat, the file where EasyABC stores its configuration. If EasyABC becomes inoperable, Settings ▸ Cold Restart resets all options to factory settings.

Temporary files (SVG, MIDI) and settings1.4.dat live in a hidden folder: AppData/Local/EasyABC on Windows, a dot-prefixed folder (e.g. .EasyABC) on Linux. The Settings ▸ Clear Cache… menu item shows the cache location without deleting it. If EasyABC fails to start, delete settings1.4.dat or use the cold restart: a default settings file will be recreated.

ABC Settings

The File ▸ ABC Settings dialog is a tabbed notebook. Hovering the mouse over most controls shows helpful tooltips. Settings are remembered in settings1.4.dat.

File Settings

  • Paths to the executables (abcm2ps, abc2midi, abc2abc, midi2abc, Ghostscript…), verified at each startup. Paths are stored in combo boxes so you can switch between versions conveniently.
  • Windows: gswin32c.exe or gswin64c.exe for PDF; macOS: pstopdf or Ghostscript; Linux: gs.
  • An external MIDI player can be specified (e.g. TiMidity on Linux, with its options in "Extra Midiplayer Parameters", e.g. -ik -A 50).
  • The restore settings button resets the paths you have cleared.

Abcm2ps Settings

Abcm2ps settings
EasyABC setting panel for abcm2ps.
  • EasyABC defaults: guaranteed familiar rendering. No page settings: EasyABC adds no commands if your tune embeds its own abcm2ps layout. To customize, uncheck both boxes: margins, page width/height and scale entry boxes appear (values in cm, without units).
  • Include bar numbers (useful for interpreting abc2midi warnings — note abc2midi counts bars from zero), add the X reference number to the title, suppress lyrics, ignore line ends (%%continueall).
  • Extra Parameters: any abcm2ps command-line option (e.g. -i to locate errors). Verify them via Internals ▸ Messages.
  • A format file (.fmt, e.g. the Turkish makam commaA-E.fmt for microtones) can be specified; abcm2ps will not find %%format files referenced inside a tune without a full path.

Abc2midi Settings

Abc2midi settings
EasyABC setting panel for abc2midi.
  • Default tempo (abc2midi assumes 120 bpm when no Q: is given), default instrument (Acoustic Piano), melody volume and pan.
  • Guitar chords: on/off, separate instruments and volumes for the bass and the chords (two distinct MIDI channels), customizable gchord pattern (default pattern follows the time signature).
  • Transposition (e.g. for a B♭ clarinet) and tuning up to one semitone either way (-TT).
  • Check boxes: ignore dynamics (-NFNP), ignore grace notes (-NGRA), ignore fermatas (-NFER), Barfly stress model (-BF, applied when the tune has a recognized R: rhythm designator).
  • Count in: prefixes the tune with two bars of metronome clicks adapted to the time signature, so you can get your instrument ready to play along.
  • If the tune already contains %%MIDI commands, EasyABC suppresses its own of the same type — edit the ABC code directly to change them.

Voice Settings

For tunes containing V: voice indications. Instruments are specified per voice (16 MIDI channels; channel 10 is usually reserved for percussion). On Mac, control codes are prefixed to work around QuickTime quirks. Voice overlays (the ampersand &) are supported but can be less than intuitive. The "separate defaults per voice" option defines instrument, volume and pan for each of the 16 channels; EasyABC assigns the selected program to a voice the first time it appears in the notation.

XML Settings

MusicXML ⇄ ABC conversion options (xml2abc / abc2xml), considered experimental. The free program MuseScore is a good companion for displaying, playing and creating MusicXML files and importing MIDI files.

ABC assist

ABC assist is useful for both beginners and experienced users. Toggle it with the light bulb icon in the toolbar: the pane appears at the bottom left (it can be docked or floating, and follows dark mode). It is contextual: it analyzes the cursor position (file header, tune header, tune body, empty line…) and shows the description of the ABC element under the cursor (field, directive, note, bar…) together with the applicable actions — all as clickable links. The documentation shown comes from the ABC standard reference and, for directives, from the online abcm2ps and abc2midi documentation.

Starting a tune

Abc Assist Welcome
ABC Assist to initiate a new tune.

On an empty file, click New tune: ABC assist generates a complete skeleton (%abc-2.1 header, X:, T:, C:, M:, L:, Q:, K:C, with the X: number following the last one used). Three templates are available:

  • Simple tune — one voice in C major, 4/4;
  • Multi-voice tune — four SATB voices with clefs, %%score [ (S A) (T B) ] layout and per-voice MIDI instruments;
  • Drum score — two percussion-clef voices, with %%MIDI drummap (channel 10) and ready-to-listen drum patterns.

You can also add a voice to an existing tune (next V:, treble clef), and add/remove staves from a %%score/%%staves directive.

Entering notes and editing assistance

On an empty line in the tune body, the pane offers to insert a note or rest (C…b, z); bar lines | are inserted automatically when the measure is full. New line and Space buttons exist for mouse-only users. On an existing note, the pane offers:

  • Pitch: note up/down, third up/down, octave up/down; accidental (flat, natural, sharp, doubles and quarter tones); "simplify note" to rewrite the octave in canonical form;
  • Duration: default, halve, double, dotted, broken rhythm (>/<), tie (-); for rests: visibility (z vs x), whole-measure rest (Z/X) and measure count;
  • Grouping: slur (normal or dashed), triplet on three selected notes, beam to put multiple eighth notes under one beam, conversion to a chord [[CEG]]; grace notes (appoggiatura/acciaccatura);
  • Decorations: dynamics (pppp→ffff, sfz, crescendo/diminuendo), ornaments (trill, mordent, roll, turn, arpeggio), articulations (staccato, accent, marcato, tenuto, bowings, pedal…), fingering (0–5), direction markers (segno, coda, D.C., D.S., fine) — with images and redefinable symbols (U:);
  • Annotations and chord symbols: insertion, position (above/below/left/right), annotation ⇄ chord conversion; for chords, chord suggestions relative to the tune's key and editing of the name (m, 7, M7, dim, sus, 9…) and bass note (/G);
  • Bars and variant endings: single, double, final bar, repeat points, first/second ending, invisible bar, voice overlay (&).
Abc Assist MIDI
ABC Assist update its content according to the carret position.

Header and fields

In the tune header, the pane lets you change the key signature (number of sharps/flats or none) and mode (major, minor, dorian, phrygian, lydian, mixolydian, locrian) without changing the displayed tonic, the clef (treble, bass, C-clefs, perc… with octave and ±8va transposition), the meter (C, C|, 2/4…12/8), the unit note length L:, the tempo (name — Allegro, Presto… — and/or metronome, with the referenced note length), octave and playback transposition, and field visibility (%%writefields). Measure numbering (%%measurenb/%%barnumbers) can be controlled too.

MIDI directives

On a %%MIDI directive, the pane offers:

  • Instrument (%%MIDI program): the complete list of the 128 General MIDI instruments, with optional channel;
  • Channel (1–16); volume (control 7, chordvol, bassvol) shown as a percentage with a visual gauge;
  • Percussion: %%MIDI drummap and %%percmap with the full General MIDI 2 percussion instrument list (snare, hi-hat, toms, cymbals…);
  • Guitar chords (%%MIDI gchord): preset patterns adapted to the meter (even or odd), a pattern editor (f = fundamental, c = chord, z = rest, 2 = double duration, G/H/I/J = chord notes…) and time adjustment.

On %%score/%%staves: show a single voice, add/remove displayed voices, group on the same stave (parentheses), brace or bracket together, and toggle continued bar lines between staves.

Finally, the pane detects invalid characters and offers to replace them, shows the description of each abcm2ps directive with a "learn more" link to the online documentation, and hides rare options behind a "more options" arrow to limit scrolling.

Sound output

EasyABC relies on MIDI synthesizers to produce audio. Native MIDI support has become rarer on modern systems (Windows Media Player no longer ships with Windows 10 by default), so playback sometimes needs manual setup:

  • Windows: playback usually works seamlessly; score following works both forward and reverse.
  • macOS: output goes through the system MIDI synthesizer (QuickTime / mplay).
  • FluidSynth: when the fluidsynthplayer library is available, EasyABC plays the tune using a SoundFont (.sf2) specified in the settings — much more realistic timbres than the default GM synthesizer. Note that players such as TiMidity and FluidSynth do not come with soundfonts: you must install a .sf2 and point EasyABC at it (e.g. /usr/share/sounds/sf2/FluidR3_GM.sf2 on Linux).
  • Linux: if playback produces no sound, the easy way out is to specify fluidsynth as your MIDI player; the proper solution goes through JACK: start jackd and add --audio-driver=jack --connect-jack-outputs to the MIDI player parameters.
  • As a last resort, an external MIDI player can be specified in File ▸ Settings ▸ File Settings — but score following no longer works.

Find in files

Find in Files
Find in Files for EasyABC.

This function, found under the Edit menu, searches a large collection of ABC files for words in titles, composers, lyrics, etc. For example, to find all tunes by Bach in the key of G and 9/4 meter:

C:bach M:9/4 K:G

On first use, specify the top-level folder where your ABC files live (subfolders included); the tool remembers it for future searches. Clicking a result loads the ABC file into EasyABC, positioned at the selected tune. The exhaustive search can take a while, but you can stop it anytime via the progress bar.

Interface

  • Each pane ("Tune list", "ABC code", "Musical score") can be moved by dragging its title bar; the buttons on the right of the caption minimize/maximize/restore the pane.
  • View ▸ Restore default layout resets the arrangement.
  • Editor font size: Ctrl++ / Ctrl+−, or View ▸ Change font.
  • The Messages window shows the output of the external programs (abcm2ps, abc2midi…), useful for diagnosing ABC syntax errors.

Running EasyABC from source

This procedure is common to Windows, macOS, Linux and the Raspberry Pi; on Linux and the Raspberry Pi it is the recommended way to run EasyABC. First get the code from the release-1.4.0 branch of the GitHub repository (Code ▸ Download ZIP button, or git clone -b release-1.4.0).

With a Python virtual environment (recommended)

  1. Install Python 3.10 or later (the versions tested primarily are 3.12 and 3.13): on Windows and macOS, download it from python.org/downloads; on Linux, use the python3 package of your distribution.
  2. Create a virtual environment and install the dependencies listed in requirements.txt:
python -m venv venv          # python.exe -m venv venv on Windows
pip install --upgrade pip
pip install -r requirements.txt

The virtual environment is illustrated here with venv, but other solutions (uv, virtualenv, conda…) work the same way. requirements.txt covers in particular wxPython 4.2.x (the GUI framework), pyparsing and, for macOS packaging, py2app. On Windows also run py -m pip install pywin32 pygame if needed. Then run python3 easy_abc.py (or double-click easy_abc.py on Windows); if it crashes, start it from a command window to read the error messages.

With distribution packages (Debian and derivatives)

On Debian-style distributions (Debian, Ubuntu, Mint…) the dependencies can also be installed as system packages instead of using a virtual environment:

sudo apt install python3-wxgtk4.0 python3-pyparsing python3-six \
  python3-pygame fluidsynth abcm2ps abcmidi fluid-soundfont-gm

Then run python3 easy_abc.py directly. Be aware however that the Debian/Ubuntu repositories currently ship wxPython 4.2.0, which can raise a "Bad perspective string" error at startup; that bug is fixed from wxPython 4.2.3 onwards (see issue jwdj/EasyABC #126, which also details installation on openSUSE, Debian, Ubuntu and Mint). The virtual environment, which installs wxPython through pip, therefore remains the safest option.

Raspberry Pi: EasyABC runs on the Raspberry Pi 4 (thanks to John Lowry for the report): install abcmidi abcm2ps fluid-soundfont-gm python3-wxgtk4.0 and, if needed, build FluidSynth (cmake, make libfluidsynth) then copy libfluidsynth.so* next to easy_abc.py. The default soundfont is /usr/share/sounds/sf2/FluidR3_GM.sf2. Note: printing does not work properly on the Pi — export a PDF and print it with another program.

Release history

A summary of the changes since version 1.3.5 — the complete log is available in the repository's change log.

1.3.5.P6 – P9 (patch fixes)

  • Compatibility with recent abcm2ps versions (in/px suffixes on SVG width/height) — patch by Frédéric Aupépin.
  • Fixed dim staff lines, bar lines and note stems on Linux.
  • Separate instruments for chord, bass and each voice; new per-voice %%MIDI settings.
  • More reliable playback looping (MEDIA_FINISHED/STOP events).
  • F7 stops the MIDI player; arrow keys now move the highlighted note in sync; updated Italian translation.

1.3.6 – 1.3.6.4 (2015)

  • Major rework: the Internals menu, tabbed settings notebook.
  • Permanent caching removed: temporary files (temp.abc, temp001.svg, …) are now overwritten as the program runs.
  • New tool for searching tunes in a folder and its subfolders.
  • Cold Restart.
  • Much faster SVG rendering (J.W. de Jong); unique MIDI/SVG file names across instances.
  • Default loudness raised from 64 to 96; bar numbering; optional two-bar count-in.

1.3.7.x (2016–2019)

  • ABC Assist: dockable/floating window, triplets, slurs, chords, microtones, multivoice/drum templates, MIDI instrument and volume selection.
  • Page navigation shortcuts: Ctrl+Alt+PgDn/PgUp, Home/End.
  • Python 3 compatibility (2 and 3 simultaneously from 1.3.7.4 on).
  • "Follow score" while playing, with checkbox and timing compensation slider.
  • Multi-tune selection for printing and export (ABC, single PDF); Dutch and German translations.

1.3.8.x (2020–2021)

  • Find in files (Ctrl+Shift+F) with ABC fields (e.g. C:mozart M:3/4); exclusive mode via the command line (-exclusive).
  • Python 2 definitively dropped; Windows installer moved to Python 3.
  • WAV export via FluidSynth; "HTML interactive" export via Jef Moine's abc2svg.
  • Tablet mode: full screen (Shift+Alt+F), navigation by clickable screen zones.
  • Instant startup sound (small SoundFont then switch on first play); FluidSynth 2.x, pulseaudio driver by default.
  • Chinese translation; "Insert musical symbol" menu removed then restored.

1.4.0.0

  • New exports: MP3 and AAC (via the ffmpeg setting); distinct colors for selection and follow; user-defined editor colors.
  • New: dark mode support (including toolbar icons), "internal list of tunes" menu.
  • MIDI playback on Mac via Apple's DLS synthesizer (the mplay library).
  • Improvements: note highlighting following the editor cursor, multivoice graphical selection, respect of %%abc-charset, window title marking unsaved changes.
  • Updated xml2abc/abc2xml and adaptation to newer abcMIDI and Python versions; many playback, display and copy/paste fixes.

Credits — software components used by EasyABC

  • abcm2ps — ABC to score images (Jean-François Moine)
  • abc2midi — ABC to MIDI (James Allwright, maintained by Seymour Shlien)
  • xml2abc / abc2xml — MusicXML ⇄ ABC (Willem Vree)
  • nwc2xml — Noteworthy Composer to ABC via XML (James Lee)
  • wxPython — cross-platform UI framework
  • Scintilla — the text editor used for ABC code
  • PortMIDI / pygame — real-time MIDI input
  • Thanks to all the project's translators and contributors.

EasyABC is published under the LGPL license. Bug reports and source code: GitHub (aupfred/EasyABC, release-1.4.0 branch). Up to version 1.3.8.7 the code was hosted on the jwdj/EasyABC repository, whose master branch remains aligned with the historical state of the project. Frozen versions are also downloadable from SourceForge, which also hosts a complementary guide (2021).