• Home
  • About
  • Code
  • Music

The Well-Tempered Studio

Feeds:
Posts
Comments

abc2mma

abc2mma is a Perl script that attempts to read ABC music notation containing chords and produces MMA output.I wrote this program to generate jazz backing tracks easily from ABC notation. I’m a classical guitarist currently trying to learn jazz. The variant of ABC I use is abcm2ps.

Generate MMA output from your ABC files. Click here to listen to the midi output


Features

  • Attempts to calculate the timings of the chord changes, instead of just extracting the chords from ABC files (which has been done long time ago by someone else).
  • Midi files generated by abc2midi can be automatically included by the script in the final MMA output, via MMA’s MIDIinc command.
  • MMA commands can be inserted directly in the ABC file using the command “%%X-MMA <mma command>”. Please see the included demo.abc for examples.
  • Handles multi-song ABC files. Roll your own fakebook anyone? 🙂

Free for personal and non-commercial use.


Download

Current version – abc2mma 0.51 beta (zip file)


Usage

    abc2mma.pl <abcfile.abc | abcfile.txt> [options]
    output filename is in the form: <abcfile><N><suffix>.mma

  - default=<abcfile><N>_mma.mma
    - the _mma suffix is added to avoid name collision with
      abc2midi ouput
    - N is the song reference number (X:) in the ABC file
Options:
-o or -output=<mmafile>
    - output to <mmafile>.mma (overrides -songref and -suffix)
-songref=<yes|no>
    - sets whether to use the song reference number in outfile filename
      also affects the MIDI filename in the MIDIinc line
      (default=yes)
-suffix=<suffix>
    - appends suffix to filename (default=_mma)
-writefile=<yes|no>
    - generates file (overrides -outfile) (default=yes)
-includemidi=<yes|no>
    - inserts MIDIinc command to include <abcfile>.mid (default=yes)
-groove=<mma_groove>
    - sets Groove (default=Folk)
-swingmode=<yes|no>
    - sets SwingMode (default=yes)
-tempo=<t>
    - sets tempo (default=80);

Frequently Asked Questions

  1. How do I insert MMA commands?

    Use “%%X-MMA <mma command>” to directly insert MMA commands at the appropriate sections in the file (note: must be on a separate line). Please refer to the included demo.abc for examples.
  2. The included melody (from abc2midi) and the chords accompaniment are not aligned! The music has a pick-up measure.

    Insert the “BeatAdjust” MMA command with the appropriate number of beats to offset after the pick-up measure. Please refer to the included demo.abc for examples.
  3. I get a run-time error with ABC files containing the “%%MIDI program” command.

    Please download the latest version of MMA.

Notes / Disclaimers

  • This is NOT a parser! I’m just using mostly string substitution to get the results I want. I’m too lazy to write a full abc parser. 😛
  • I do not claim to handle all possible abc notation scenarios. There are features of abc notation which I don’t use, so I’m sure there are many cases which are broken.
  • Finally, use at your own risk! I’m not responsible for any damages, blah blah… that may result from the use of this software.

Change Log

  • Version 0.5: 8 Apr 2006 – Beta release
  • Version 0.51: 14 Apr 2006 – Fixed logical bug in compound time

To Do

  • Handling of parts
  • Handling of voices and multiple staffs

Contact

Send your comments, bugs, requests to: gek<remove this>siong AT <remove this – no spam!>yahoo DOT com


abc2mma and the contents of this page are copyright (c) Gek S. Low, 2006

Share this:

  • Twitter
  • Facebook

Like this:

Like Loading...

  • Top Posts

    • LeMMA
  • June 2022
    M T W T F S S
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  
    « Jul    
  • abc funny guitar harmonica j2me LeMMA linux maemo mandolin midi music my software nslu perl phone python symbian timidity Ubuntu ubuntu ps3 ukulele Virtualbox web whistle
  • Recent Posts

    • LeMMA is now open-source
    • LeMMA 0.9 alpha
    • LeMMA 0.8 alpha release
    • Some notes on the current state of Python/Tkinter
    • Colorful bash prompts and line-wrapping problem
  • Categories

    • guitar
    • linux
    • maemo
    • music
    • my software
    • python
    • Ubuntu
    • Uncategorized
  • RSS Unknown Feed

    • An error has occurred; the feed is probably down. Try again later.

Blog at WordPress.com.

WPThemes.


Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy
  • Follow Following
    • The Well-Tempered Studio
    • Already have a WordPress.com account? Log in now.
    • The Well-Tempered Studio
    • Customize
    • Follow Following
    • Sign up
    • Log in
    • Copy shortlink
    • Report this content
    • View post in Reader
    • Manage subscriptions
    • Collapse this bar
%d bloggers like this: