Open mpogue2 opened 7 years ago
I would LOVE to have the music producers make the loops sample accurate, and stick them into the MP3 files.
It looks like there IS a standard (partial, but it exists) for loop points:
https://www.reddit.com/r/monogame/comments/9unc7d/music_with_partial_loop/
https://forums.rpgmakerweb.com/index.php?threads/audio-looping-using-metadata-tags.74700/
The standard appears to be "include 2 of the following 3 ID3 tags":
NOTE: If the values are in SAMPLES, there might be an issue with different MP3 decoders having different amounts of silence at the beginning. IIRC this can be on the order of 10's of milliseconds, making it not sample-accurate across MP3 decoder implementations.
Perhaps we could define the "start of song" with a threshold (some percentage of the max)?
Ah, we could also just measure the "delay" (the silence added up front) for the decoder we use right now, and compensate for that. Then the LOOP* ID3 tags would be sample-accurate (or close enough to it, within a sample or two).
https://wiki.hydrogenaud.io/index.php?title=Gapless_playback
Also, if we stick with LOOPSTART and LOOPLENGTH, any shifts in the LOOPSTART are not likely to be audible, because that also shifts the calculated LOOPEND number, so the LOOPLENGTH stays constant.
SquareDesk now understands the iTunes TBPM ID3 tag (it sets what "100%" means for Tempo). There are others that it would be Really Nice to have applied by the Music Producers to their entire catalog. TBPM is super-useful as the first one, because BPM detection is not very reliable.
Here's the reference link: http://id3.org/id3v2.4.0-frames .
Here are the main tags I would like to see in all the music I buy (in priority order):
` TBPM - BPM TKEY - Key, e.g. A#m, BbM USLT - Unsynchronised lyrics ETCO - Event timing codes: end of initial silence intro start intro end main part start main part end outro start SYLT - Synchronized Lyrics RGAD - Replay Gain adjustment (This is not widely supported and I think it has been superseded by RVA2 in ID3v2.4 (and the XRVA tag for 2.3 compatibility).) TPUB - Publisher
TPE1 - Lead artist (singer) TPE2 - Band TLAN - Language (use ISO code) TDOR - Original release date WCOM - URL for purchasing `