task_categories:text-generation size_categories:100K<n<1M license:mit music region:us
---
license: mit
task_categories:
- text-generation
pretty_name: IrishMAN
size_categories:
- 100K<n<1M
tags:
- music
---

If you prefer MIDI or MusicXML, download [IrishMAN-MIDI](https://huggingface.co/datasets/sander-wood/irishman/resolve/main/irishman-midi.zip) or [IrishMAN-XML](https://huggingface.co/datasets/sander-wood/irishman/resolve/main/irishman-xml.zip). For better use of structural info in control codes, consider ABC notation.

## ABC Notation

ABC notation is an ASCII-based plain text musical notation system that is commonly used for transcribing traditional music and sharing sheet music online. It provides a simple and concise way to represent musical elements such as notes, rhythms, chords, and more.

For those looking to interact with ABC notation in various ways, there are several tools available:

1. **[Online ABC Player](https://abc.rectanglered.com/):** This web-based tool allows you to input ABC notation and hear the corresponding audio playback. By pasting your ABC code into the player, you can instantly listen to the tune as it would sound when played.

2. **[ABC Sheet Music Editor - EasyABC](https://easyabc.sourceforge.net/):** EasyABC is a user-friendly software application designed for creating, editing, and formatting ABC notation. Its graphical interface enables you to input your ABC code, preview the sheet music, and make adjustments as necessary.

## Dataset Summary

The **Irish Massive ABC Notation (IrishMAN)** dataset includes 216,284 Irish tunes in ABC notation, divided into 99\% (214,122 tunes) for training and 1\% (2,162 tunes) for validation. These tunes were collected from thesession.org and abcnotation.com, both renowned for sharing traditional music. To ensure uniformity in formatting, all tunes were converted to XML and then back to ABC using [scripts](https://wim.vree.org/svgParse/), and fields containing natural language (e.g., titles and lyrics) were removed.

Each tune is automatically annotated with control codes derived from ABC symbols, as described in the below section. These control codes offer insights into the musical forms and structures of each composition.

In the IrishMAN dataset, a [music21](https://web.mit.edu/music21/doc/index.html#)-filtered [subset](https://huggingface.co/datasets/sander-wood/irishman/raw/main/leadsheet_ids.json) includes 34,211 lead sheets, each human-annotated with chord symbols. It is from this very subset that [TunesFormer](https://huggingface.co/sander-wood/tunesformer) developed its capacity to generate melodies with harmonies.

A noteworthy aspect is the copyright status. All tunes in the dataset are in the public domain, ensuring ethical and legal usage for research and creative projects.

## Control Codes

Inspired by [CTRL](https://huggingface.co/ctrl), we incorporate control codes into TunesFormer to represent musical forms. These codes, positioned ahead of the ABC notation, enable users to specify the structures of the generated tunes. The following control codes are introduced:

- **S:number of sections**: determines the number of sections in the entire melody. It counts on several symbols that can be used to represent section boundaries: `[|`, `||`, `|]`, `|:`, `::`, and `:|`. In our dataset, the range is 1 to 8 (e.g., `S:1` for a single-section melody, and `S:8` for a melody with eight sections).

- **B:number of bars**: specifies the desired number of bars within a section. It counts on the bar symbol `|`. In our dataset, the range is 1 to 32 (e.g., `B:1` for a one-bar section, and `B:32` for a section with 32 bars).

- **E:edit distance similarity**: controls the similarity level between the current section $c$ and a previous section $p$ in the melody. It is based on the Levenshtein distance $lev(c,p)$ , quantifying the difference between sections for creating variations or contrasts. Mathematically, it can be expressed as:
  ```
  eds(c,p) = 1 - lev(c,p) / max(|c|,|p|)
  ```
  where $|c|$ and $|p|$ are the string lengths of the two sections. It is discretized into 11 levels, ranging from no match at all to an exact match (e.g., `E:0` for no similarity, and `E:10` for an exact match).

## Copyright Disclaimer
This dataset is for research use only and not for commercial purposes. We believe all data in this dataset is in the public domain. If you own the copyright to any musical composition in the IrishMAN dataset and have concerns, please contact us at shangda@mail.ccom.edu.cn. We will address your concerns and take appropriate action if needed.

## Special Thanks
We would like to extend a special thanks to thesession.org and abcnotation.com for their contributions to the development and promotion of ABC notation, as well as their significant impact on the field of music information retrieval. Their platforms have become invaluable resources for the traditional and folk music community. We also wish to express our gratitude to Willem (Wim) for providing the essential conversion tools that enabled the transformation of the tunes into a uniform format. Together, these collaborations have made it possible for researchers like us to create and study extensive datasets like IrishMAN.