Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Full album support in media players (not just another gaples (Read 2104 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Full album support in media players (not just another gaples

I can't tell you how many threads I've read searching for the perfect way to support gapless audio playback. And frankly, I haven't been satisfied with any of the solutions.

The closest I have come is to rip and encode an album as a single file, and then split the file across track boundaries. Then I use WinAMP with a gapless plug-in and a special MP3 plug-in. What makes this MP3 plug-in "special" is that it doesn't reset itself between tracks. So, it treats frames from consecutive MP3 files as if they came from the same continuous stream---effectively concatenating them back together. It provides perfect playback for gapless live albums, but it does in theory distort the first few frames of an MP3 that isn't a continuation of the previous one. I haven't been able to hear this distortion.

But even this doesn't work perfectly, because it's not just gap-free tracks that cause problems. Some albums actually put audible information in the pregap between tracks. In one case, the band starts playing in the pregap, and stops to make some adjustments, and restarts the song just as the track begins. When the entire album is played, you can hear this "warmup" section; but if you advance straight to the track, it skips that part. It's novel behavior, but in my opinion reasonable---and completely confounds any attempt to reprodce this in an MP3/MPC/Ogg playlist-like framework.

I suppose I could keep the track gaps lying around in my splitter routine, but isn't this getting just a bit unwieldy?

I think that a better approach would be to design players that understand what an album is---both as a single entity and a sequence of tracks. When I want to play the album from start to finish, I want it done without interruption. When I want to include certain tracks from the album in my playlist, it should handle that as if they were completely separate files.

I've been able to create this behavior somewhat in Windows Media Player. First, I ripped an album as a single .wav file, uncompressed. Then I generated one .asx file (Windows Media Metafile) for each track, which points to the album, and specifies the track's start time and duration.

Sure enough, if I open the .asx file in WMP, it plays just the track. And of course, if I open the original .wav file, it plays the full album. These .asx files can be added to playlists, like single tracks.

There are a couple of limitations of this approach.

--- When I'm playing the full album, I would still like it to display the current track information, and possibly skip forward and backward between tracks. I attempted to build an .asx file that contained all the tracks, but Windows Media player can't do gapless playback of the entries in an .asx file, even if they come from the same uncompressed sound file. The mp3CUE plug-in (http://www.guerillasoft.com/mp3cue/index.html) provides this functionality for WinAMP, and I like it a lot.

--- I'm not sure how careful Windows Media Player would be at seeking to the precise position in a compressed file, particularly a VBR file.

--- I found an interesting bug in Windows Media Player's handling of .asx files. If you use the STARTTIME command, visualizations won't work! Weird.

Anyway, I would appreciate comments on this approach. I am not just a complainer, I'm willing to help solve this problem my writing code. Right now I'm looking into writing plugins for WinAMP, MusicJukebox, and Audion to provide this per-track capability, though I've never written plugins before.
Michael