Dismiss Notice
This Section is READ ONLY - All Posts Are Archived

ABC Player isssue

Discussion in 'Release 30 Bug Forum' started by yukimimiya, Jun 7, 2016.

Thread Status:
Not open for further replies.
  1. yukimimiya

    yukimimiya Avatar

    Messages:
    26
    Likes Received:
    33
    Trophy Points:
    3
      • Title: ABC Player issue
    1. Reproduction Rate: Everytime
    2. Blocker?     No
    3. Details:
      • ABC socre must have K header field. it's specifies the "Key".
      • Following ABC score:
        Code:
        X:1
        K: D minor
        D2 E2 G2 F2|A2 B2 c2 d2|d2 c2 B2 2|F2 G2 E2 D2||
        was sounded as same as following score
        Code:
        X:1
        K: C
        D2 E2 G2 F2|A2 B2 c2 d2|d2 c2 B2 2|F2 G2 E2 D2||
        .
      • So I play a song using D minor, I should write ABC as followings
        Code:
        X1
        K:C
        D2 E2 F2 G2|A2 _B2  c2 d2|d2 c2 _B2 A2|G2 F2 E2 D2||
      • In other words, SoA can not understand K header fields. it alway deals as "C".
    4. Steps
      • /play above ABC Score, and listen them.
    5. Reproduce:
      • see above.
    6. User Specs
      • Windows10 64bit
      • CPU: Intel i7-6700HQ
      • GPU: GeForce® GTX™ 970M
      • Mem: 32GB
    Thanks.
     
    Browncoat Jayson likes this.
  2. Serafina

    Serafina Portalarian Emeritus

    Messages:
    1,302
    Likes Received:
    1,658
    Trophy Points:
    113
    This has been reported. Thank you!
     
  3. oneandonly

    oneandonly Dev Emeritus Dev Emeritus

    Messages:
    114
    Likes Received:
    680
    Trophy Points:
    18
    @Eniko, can you point me in a direction?
     
  4. Leostorm

    Leostorm Avatar

    Messages:
    1,452
    Likes Received:
    3,879
    Trophy Points:
    125
    Gender:
    Male
    Location:
    Virginia
    @yukimimiya @oneandonly
    Heres a link to some info on the lotro player and that system, since ours seems to be built/based of that
    http://www.bladesofanarion.net/index.php?page=64;wap2

     
  5. Leostorm

    Leostorm Avatar

    Messages:
    1,452
    Likes Received:
    3,879
    Trophy Points:
    125
    Gender:
    Male
    Location:
    Virginia
    Apparently in my testing changing the K field does effect the sound.
    testing with an abc player not in game yet.
    But I will test further.

    @yukimimiya

    so it would need to be Dmin as the proper entry.
    give it a test :)
     
  6. Eniko

    Eniko Avatar

    Messages:
    115
    Likes Received:
    518
    Trophy Points:
    18
    Gender:
    Female
    This is a bug in the key parser specifically related to minor keys. I'm fixing it but until the fix goes live you can use the following values for minor keys instead:

    A# minor: C#
    D# minor: F#
    G# minor: B
    C# minor: E
    F# minor: A
    B minor: D
    E minor: G
    A minor: C
    D minor: F
    G minor: Bb
    C minor: Eb
    F minor: Ab
    Bb minor: Db
    Eb minor: Gb
    Ab minor: Cb
     
    Leostorm likes this.
  7. Eniko

    Eniko Avatar

    Messages:
    115
    Likes Received:
    518
    Trophy Points:
    18
    Gender:
    Female
    I've fixed the bug with key field parsing. Everything should work according to the ABC v2.1 spec now. While I was in there I also added the feature where you can add custom accidentals after the key, for example 'K: G major ^D' would be a key with sharp F notes (normal for a G key) and sharp D notes. This also works with the 'exp' explicit form mentioned in the spec.

    @oneandonly : the GitHub repository has been updated to reflect these changes. I also merged your changes from a year ago, which I thought I already had merged before. Oops?

    Please note that so called 'theoretical keys', keys which contain double sharps or double flats and which are functionally the same as other keys are not supported. For best results, use one of the internal values used by the framework below. The following is a list of the basic key values and their accidentals:

    C : no sharps or flats
    C# : F sharp, C sharp, G sharp, D sharp, A sharp, E sharp, B sharp
    F# : F sharp, C sharp, G sharp, D sharp, A sharp, E sharp
    B : F sharp, C sharp, G sharp, D sharp, A sharp
    E : F sharp, C sharp, G sharp, D sharp
    A : F sharp, C sharp, G sharp
    D : F sharp, C sharp
    G : F sharp
    Cb : F flat, C sharp, G flat, D flat, A flat, E flat, B flat
    Gb : F flat, C flat, G flat, D flat, A flat, E flat
    Db : F flat, C flat, G flat, D flat, A flat
    Ab : F flat, C flat, G flat, D flat
    Eb : F flat, C flat, G flat
    Bb : F flat, C flat
    F : F flat

    The following aliases/alternate values for the above keys are supported:

    A : F#m, EMix, BDor, C#Phr, DLyd, G#Loc
    B : G#m, F#Mix, C#Dor, D#Phr, ELyd, A#Loc
    C : Am, GMix, DDor, EPhr, FLyd, BLoc
    D : Bm, AMix, EDor, F#Phr, GLyd, C#Loc
    E : C#m, BMix, F#Dor, G#Phr, ALyd, D#Loc
    F : Dm, CMix, GDor, APhr, BbLyd, ELoc
    G : Em, DMix, ADor, BPhr, CLyd, F#Loc
    C# : A#m, G#Mix, D#Dor, E#Phr, F#Lyd, B#Loc
    F# : D#m, C#Mix, G#Dor, A#Phr, BLyd, E#Loc
    Ab : Fm, EbMix, BbDor, CPhr, DbLyd, GLoc
    Bb : Gm, FMix, CDor, DPhr, EbLyd, ALoc
    Cb : Abm, GbMix, DbDor, EbPhr, FbLyd, BbLoc
    Db : Bbm, AbMix, EbDor, FPhr, GbLyd, CLoc
    Eb : Cm, BbMix, FDor, GPhr, AbLyd, DLoc
    Gb : Ebm, DbMix, AbDor, BbPhr, CbLyd, FLoc

    Where as per the spec, 'm' is short-hand for 'Minor', 'Mix' is short for 'Mixolydian', 'Dor' is short for 'Dorian', 'Phr' is short for 'Phrygian', 'Lyd' is short for 'Lydian', and 'Loc' is short for 'Locrian'. You can use the full or short values for any of these, as well as any mix of: Maj/Major, Ion/Ionian, Aeo/Aeolian, Min/Minor. I've created a unit test for all of this to verify all of it works properly now.
     
  8. oneandonly

    oneandonly Dev Emeritus Dev Emeritus

    Messages:
    114
    Likes Received:
    680
    Trophy Points:
    18
    Your changes have been integrated. Thanks @Eniko !
     
Thread Status:
Not open for further replies.