Xmcd Mcd Converter May 2026

Save the following as xmcd2mcd.py:

#!/usr/bin/env python3
import sys

def convert_xmcd_to_mcd(xmcd_path, mcd_path): with open(xmcd_path, 'r') as f: lines = f.readlines() xmcd mcd converter

mcd_data = {}
for line in lines:
    line = line.strip()
    if line.startswith('discid='):
        mcd_data['ID'] = line.split('=')[1]
    elif line.startswith('dtitle='):
        parts = line.split('=')[1].split(' / ')
        mcd_data['ARTIST'] = parts[-1] if len(parts) > 1 else ''
        mcd_data['TITLE'] = parts[0]
    elif line.startswith('ttitle'):
        idx = line.split('ttitle')[1].split('=')[0]
        title = line.split('=')[1]
        mcd_data[f'TRACKint(idx)+1:02d'] = title
with open(mcd_path, 'w') as f:
    f.write('[MCD_DISC]\n')
    for k, v in mcd_data.items():
        f.write(f'k=v\n')
print(f"Converted xmcd_path -> mcd_path")

if name == 'main': if len(sys.argv) != 3: print("Usage: xmcd2mcd.py input.xmcd output.mcd") else: convert_xmcd_to_mcd(sys.argv[1], sys.argv[2]) Save the following as xmcd2mcd

Run it:

python3 xmcd2mcd.py pinkfloyd.xmcd pinkfloyd.mcd
  • MCD ChordPro output:
  • MCD chord-above output (monospace alignment):
  • "xmcd" and "MCD" refer to two related formats and ecosystems for representing and exchanging chord charts, lyrics, and song metadata. xmcd is the XML-based source format used by the open-source chord/lyric editor "GuitarX/xcmd-style" tools (historically associated with the program xMCD/xmcd-like editors), while MCD usually refers to the (older) plain-text "MIDI Chord/ChordPro-like" or proprietary chord-chart formats used by various chord editors and show-control tools. A converter between xmcd and MCD (in both directions) translates structured XML representations of songs (with markup for chords, lyrics, sections, capo, tempo, metadata, and possibly multi-track/progression data) into the simpler, often line-oriented MCD text format and back. if name == ' main ': if len(sys

    Below I cover the formats’ characteristics, conversion challenges, mapping strategies, edge cases, implementation approaches, and testing/validation considerations.