Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Annotation errors in iReal-Pro #48

Open
andreamust opened this issue May 11, 2022 · 5 comments
Open

Annotation errors in iReal-Pro #48

andreamust opened this issue May 11, 2022 · 5 comments
Assignees
Labels
dataset-bug A bug that was found from an input partition help wanted Extra attention is needed

Comments

@andreamust
Copy link
Collaborator

andreamust commented May 11, 2022

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.

@andreamust andreamust added help wanted Extra attention is needed dataset-bug A bug that was found from an input partition labels May 11, 2022
@jonnybluesman jonnybluesman self-assigned this May 11, 2022
@jonnybluesman
Copy link
Member

Interesting, I will check these chords using the renderer / mobile app.

@andreamust
Copy link
Collaborator Author

andreamust commented May 19, 2022

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.

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]

@Code-Omega
Copy link

Code-Omega commented Mar 14, 2023

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 #20 . You can check them out here: current ver: choco/parsers/ireal_parser.py first diff: Code-Omega@4191e33 .

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.

@jonnybluesman
Copy link
Member

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.

@Code-Omega
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dataset-bug A bug that was found from an input partition help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants