aargirakis / BZRPlayer

BZR Player is an audio player for Windows and Linux (using Wine) supporting a wide array of multi-platform exotic file formats
http://bzrplayer.blazer.nu/
GNU General Public License v3.0
17 stars 1 forks source link

Seamless loop #284

Open rayman3003 opened 1 year ago

rayman3003 commented 1 year ago

There are some sid files that has an ability to be looped continuously (& without any halt); So when u play these sid files with some sid players (like sidplayfp), the sid play with continuous loop, & it sounds like a long clean song.

Download this sid, enable the repeat in BZR2 & play the 5th subsong of it with BZR2.

M_A_C_H--5.zip

The BZR plays & repeats the 5th subsong with a halt or break in the middle.

But try the same sid (5th subsong) with this sid player:

https://github.com/libsidplayfp/sidplayfp/releases/download/v2.4.0/sidplayfp-2.4.0-lib2.4.1-w64.zip

sidplayfp plays & repeats it without any halt or pause in the middle.

So why can't BZR2 play these types of sid files continuously?

ciros88 commented 1 year ago

have a preference for enabling gapless playback & seameless loops for any file format played by bzr2 could be really interesting. but, as a preference (two different preferences, not enabled by default) because lot of people want the little time break between tracks & loops

ciros88 commented 1 year ago

btw, here a list of players that support gapless playback: https://en.wikipedia.org/wiki/Gapless_playback

rayman3003 commented 1 year ago

Yeap. It's good to have gapless playback in BZR2.

& as u said, it can be an a choosable option in the settings, to be enabled or disabled.

So people can choose to turn on or turn off the "gapless playback" in the BZR2.

Optional, always is a good path. :)

ciros88 commented 1 day ago

there are 3 concepts here:

seamless loop specs:

a switch is needed in the preferences ("general" tab) called "seamless loop (when looping single track)", that will enable seamless loop when loop button will be set to "loop one" (not "loop all"). so when both seamless loop and loop one are set, the track will be start from beginning without any audio gap, the seeking will be disabled, the song length will be "??" and the current timestamp will be the effective playback time (that is, the total amount of time the track has been played)