Annotation errors in iReal-Pro
Among the annotations of chords in the iReal-Pro dataset there are incomprehensible chords, probably due to annotation errors. Here is the list:
-
A7at -
A7b9#9 -
Eh,F#h, etc. -
Co^7 -
Bbh9
At the moment, these chords have been interpreted as follows:
-
A7at->A7alt -
A7b9#9-> chord containing both flat ninth and sharp ninth -
Eh,F#h, etc. ->Eb,F#b, etc. -
Co^7->C:dim(7) -
Bbh9->Bb9
To be verified with the support of musicologists whether these conversions may be meaningful.
Interesting, I will check these chords using the renderer / mobile app.
The conversion of the forum section of iReal-pro has extended the list of non-convertible chords.
A comprehensive list of these errors can be found in the attached file error_meta.csv.
A further list of chords was instead converted despite the unclear syntax. Here are the main ones and the interpretation that has been attributed to them:
| Chord | Interpretation |
|---|---|
| aj | maj |
| ug | aug |
| aj7 | maj7 |
| im7 | min7 |
| aj9 | maj9 |
| j7911# | augmaj11 |
| us | sus |
| us2 | sus2 |
| us4 | sus4 |
| us7 | sus7 |
| us9 | sus9 |
| sub9 | 7b9sus |
| us13 | sus13 |
| dd [grade] | add [grade] |
Hi, I'm currently looking into ireal data and just discovered this project (and pyRealParser). First of all, thanks for the great work!
I made a fix for alt chord parsing and added some code to process chord timing information that may be related to https://github.com/smashub/choco/issues/20 . You can check them out here: current ver: choco/parsers/ireal_parser.py first diff: https://github.com/Code-Omega/choco_parser/commit/4191e3311274f17afcacb320a1676e14c8dcc29a .
However, since I was only concerned with parsing, the code as is will likely break jams functionalities. If you'd like to incorporate this info, I could potentially help with improving the onset in extract_annotations_from_tune and other related issues.
Hi @Code-Omega,, thanks for your interest in contributing to ChoCo!
As our attempts to contact the maintainers of pyRealParser were not successful last year (see this issue), we concluded that the project is no longer actively maintained. Therefore, we redefined and extended this parser within ChoCo -- to fix a number of bugs and support new functionalities. However, as you rightly mention (issues #20, #48), our parser needs revision and improvements, although some issues mentioned here by @andreamust were already addressed.
At the moment, to assign a beat duration to each chord observation, we divide the beat count per measure evenly for all the chords. For example, if the current time signature is 4/4 and there are 2 chords in a measure, they both receive 2 (beats) as duration. I am not sure if the current decoding of iReal-Pro tunes (via our improved parser) could provide more information to assign more meaningful onsets and durations to each chord observation. If you have any idea on this, please go ahead and continue this thread in #20.
Concerning JAMS, there is no need to worry at the moment, because: we first generate a preliminary version of JAMS files in partitions/ireal-pro/choco/playlist/jams (using a custom JAMS namespace); then convert chords in Harte notation to achieve interoperability within ChoCo, with the output saved in partitions/ireal-pro/choco/playlist/jams-converted. The first operation is achieved by the JAMifier (see choco/parser/commands.sh), and the second by the Chonverter (see choco/converters/commands.sh). Running these scripts on the ireal-pro partition will automate the whole process.
HI @jonnybluesman, thanks for the explanation! As a matter of fact I discovered ChoCo via that issue you mentioned :D
I checked out the conversion, while alt chords are parsed as 'at' into the raw jams files, they are indeed converted properly in jams-converted. I see it's been address in leadsheet_ireal.lark. Good to know!
Without encountering additional edge cases it would seem unwise to change the current parsing scheme in ChoCo.
I'll go ahead and share my thoughts regarding onset in #20