mjhydri / 1D-StateSpace

This repository contains the implementation of an efficient joint beat, downbeat, tempo, and meter tracking system using a compact 1D probabilistic state space and a jump-back reward technique. ICASSP 2022.
MIT License
66 stars 13 forks source link

Results are off, what am I missing? #4

Closed clementabary closed 8 months ago

clementabary commented 9 months ago

Hi, I installed the package and run it for GTZAN evaluation reproduction and got fairly bad results. I ran it on the debug sample 808kick120bpm.mp3 in the BeatNet repository and got those outputs. I get:

# Ex: RUN 1
array([[  4.02,   1.  , 130.  ,   4.  ],
       [  4.52,   2.  , 115.  ,   4.  ],
       [  5.02,   2.  , 125.  ,   4.  ],
       [  5.54,   2.  , 111.  ,   4.  ],
       [  6.04,   1.  , 115.  ,   4.  ],
       [  7.14,   2.  , 115.  ,   4.  ],
       [  8.24,   2.  , 120.  ,   4.  ],
       [  9.34,   2.  , 115.  ,   4.  ]])

# Ex: RUN 2
array([[  4.02,   1.  , 107.  ,   4.  ],
       [  4.52,   2.  , 115.  ,   4.  ],
       [  5.02,   2.  , 125.  ,   4.  ],
       [  6.12,   2.  , 125.  ,   4.  ],
       [  7.22,   1.  , 107.  ,   4.  ],
       [  8.32,   1.  , 125.  ,   4.  ],
       [  9.42,   1.  , 107.  ,   4.  ]])       

Beat times are clearly off/missing, plus results are different at each run actually. I don't know what is wrong, I wonder if someone took a dive in the code and found a quick fix? Thanks in advance!

mjhydri commented 8 months ago

While minor performance variations can be expected due to different package versions and seeds, obtaining consistently poor results implies a more significant underlying issue. For a sample with a tempo of 120, the beat intervals should be 0.5 seconds. Both runs initiate from the same beat time and their detections are fairly accurate for the initial 5 samples e.g. first run's (4.02, 4.52, 5.02, 5.54, 6.04). However, from 6.04 to 9.34, a phenomenon of half-tempo error occurs, indicating a need to adjust the jump back alpha parameter. I have also forwarded my GTZAN test log to you via LinkedIn message. I hope it helps.