Kara-Moon Forum

Developers & Technology => Musical MIDI Accompaniment (MMA) => Topic started by: sciurius on January 20, 2019, 09:33:35 PM



Title: Convert iRealPro songs to MMA
Post by: sciurius on January 20, 2019, 09:33:35 PM
If you don't know iRealPro, see https://www.irealpro.com/ .
It is a very nice tool, and there are tens of thousands of iRealPro songs available on the net.

A number of years ago I wrote a data analysis tool for iRealPro songs. I turned it into a converter that could read and write iRealPro songs, make nice sheets, and so on. The last few weeks I've been working on an MMA backend for the converter. It is still a bit rough and may fail horribly on some weird songs, but in general it produces satisfactory results already.

For example, this iRealPro song:

Code:
irealb://Stand By Your Man=Tammy Wynette- Billy Sherrill==Country=A==1r34LbKcu7QyXAl4AXyQ#G/W,#F/Ws ,7EQ|yXE/A|QyX#F/D|,]{*A4Ti*[,#C/WZE7Xy A|QyXA|QyX7EZ-LB #F/-BZL lcKQsW/B,L lcKF/Ws yQKclyX7EZL lcKQyX7ZBL lcKQyXA1NZL Q|E7,XDl||X7#C|#,}|NB*{]QyXAZLD AZ7LEZLE/AZLDZLAl2SAXyQG/W,#2N|}QyQ|D QyX7B|QyX7#F|QXyAl1N|,-BQ,-#Cs|E7XyXD|Qy la .E7XyQLD A|QyX7E|QyX|DQyX7#F|QyX7#C|Z<D.S|QyXA#F/D AXyQ]7EZL D|QyX7#FZ L7#CZL 7EZL AQ[XyQ|A>adoCLZA/E sB-7,E7,|lAXyQZ =Pop-Country=105=1

looks in iRealPro as (see attachment), and the generated MMA is:

Code:
// Title: Stand By Your Man
// Style: Country
// Composer: Tammy Wynette- Billy Sherrill
// Converted from iReal by Data::iRealPro 1.14

MIDIText Stand By Your Man
MIDIText MMA input generated by Data::iRealPro 1.14

KeySig A major
Time 4
TimeSig 4/4
Tempo 105

Set SongForms 1

Label Capo

// Section: Intro
Groove CountrySwing
  1 A
  2 D/F#
  3 A/E
  4 E7 / E7/F# E7/G#

Repeat         // song form

// Section: A
Groove CountrySwing
Repeat
  5 A
  6 A
  7 E7
  8 E7
  9 Bm/F# / Bm
 10 E7
 11 A
 12 A / A/B A/C#
 13 D
 14 D
RepeatEnding
 15 A
 16 A
 17 B7
 18 B7
 19 E7
 20 E7 / E7/F# E7/G#
RepeatEnd
 21 A
 22 D
 23 A/E
 24 E7
 25 A / D
 26 A

// Section: B
Groove CountrySwing
Repeat
Label Segno
 27 A
 28 C#7
 29 D
 30 D / C#m Bm   /* Coda */
RepeatEnding
 31 A
 32 F#7
 33 B7
 34 E7
RepeatEnd
 35 A
 36 E7
 37 C#7
 38 F#7
 39 D
 40 E7
 41 A / D
 42 A   /* D.S. al Coda */

// Section: Coda
Label Coda
Groove CountrySwing
 43 A
 44 E7
 45 C#7
 46 F#7
 47 D
 48 E7
 49 A / / D/F#
 50 A/E / Bm7 E7
 51 A

RepeatEnd NoWarn $SongForms

You still have to manually tweak the grooves so they match the desired style. And fix up the long jumps.

Have fun!

You need Perl (https://www.perl.org) to run the converter. Install CitrusPerl (https://www.citrusperl.org) if you do not have Perl on your system.
If/once you have Perl, install with the cpan tool:

  cpan Data::iRealPro

Sources are on GitHub:

https://github.com/sciurius/perl-Data-iRealPro


Title: Re: Convert iRealPro songs to MMA
Post by: bvdp on January 21, 2019, 12:09:22 AM
Wowsers! This is huge and wonderful  :;

Hope lots of folks take you up on this offer. I'm up to my ass the next couple of weeks in other musical activities (real gigs with real people!), but soon as life settles down I'll have a go.

Thanks again.