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: Shuffle behavior - Winamp style (Read 11694 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Shuffle behavior - Winamp style

Hello

Is it possible to make selecting tracks manually in shuffle mode behave like in Winamp?

As the Foobar FAQ says: "manually selecting a track to play in your playlist will result in shuffle playback continuing from that track's location on the randomized list"

But Winamp doesn't jump to that track and continue playing from that location. After the manually selected song has finished, Winamp continues to play that internal randomized list from where it was before.

For example:

Foobar behavior:

Track 5
Track 1
Track 3
Track 8  - "I want to hear Track 5 again."
-> Track 5
Track 1 - "Bah. And the same songs again..."
Track 3
..etc


Winamp behavior:

Track 5
Track 1
Track 3
Track 8  - "I want to hear Track 5 again."
-> Track 5
Track 7 - (continuing the internal randomized playlist as if Track 8 was the previous track)
Track 2
..etc


This is an important feature to me because I have some favorite songs that I play often and it prevents the repetition of the same tracks every time I choose something manually. I know I could press the Random Track button but then I'd have to remember to press it every time and it also breaks the Previous track function (after pressing Random and then Previous, the resulting track isn't the track that actually played previously).

I like Foobar much more than Winamp but this current shuffle behaviour keeps me from using it. Is this Winampish shuffle behavior in any development plans or could some plugin do it?

Shuffle behavior - Winamp style

Reply #1
I like Foobar much more than Winamp but this current shuffle behaviour keeps me from using it. Is this Winampish shuffle behavior in any development plans or could some plugin do it?


I see two options:
  • Use playback order "Random".
  • Use the playback queue (context menu "add to queue") to play a manually -- randomly -- selected track after your favourite.

Shuffle behavior - Winamp style

Reply #2

I like Foobar much more than Winamp but this current shuffle behaviour keeps me from using it. Is this Winampish shuffle behavior in any development plans or could some plugin do it?


I see two options:
  • Use playback order "Random".
  • Use the playback queue (context menu "add to queue") to play a manually -- randomly -- selected track after your favourite.

  • That also breaks the "Previous" button's function. And then the behavior isn't like shuffle.
  • That also breaks the "Previous" button's function. And it's not very convenient. I usually choose tracks via the "Jump to" dialog (AMIP Playlist Search in Foobar) by just typing a part of the song title and pressing enter.


Shuffle behavior - Winamp style

Reply #4
Use Winamp?


A reasonable suggestion

But Foobar is so much better in many other things. It's just that the shuffle behavior is a top priority. I just wish Foobar had the same feature. I'm sure there are other people who would like this feature too.

(From my previous post you might get the impression that the "Previous" button functionality is crucial but it's not really that important. It's nice if it works but the other practical implications of those suggestions are more important (Random isn't shuffle, Queueing isn't very practical))

Shuffle behavior - Winamp style

Reply #5
Currently, Foobar shuffles the playlist when it starts. I wonder if that is possible to shuffle the playlist only when all songs in that playlist are played?

Shuffle behavior - Winamp style

Reply #6
A reasonable suggestion

But Foobar is so much better in many other things. It's just that the shuffle behavior is a top priority. I just wish Foobar had the same feature. I'm sure there are other people who would like this feature too.

(From my previous post you might get the impression that the "Previous" button functionality is crucial but it's not really that important. It's nice if it works but the other practical implications of those suggestions are more important (Random isn't shuffle, Queueing isn't very practical))

+1

Shuffle behavior - Winamp style

Reply #7
You can use foo_navigator, then you can go back(need to configure hotkey/button), even in random mode.
Windows 10 Pro x64 // foobar2000 1.3.10

Shuffle behavior - Winamp style

Reply #8
Currently, Foobar shuffles the playlist when it starts. I wonder if that is possible to shuffle the playlist only when all songs in that playlist are played?

That would be nice.

You can use foo_navigator, then you can go back(need to configure hotkey/button), even in random mode.

Thanks. That helps but still isn't exactly what I'm hoping. Random isn't shuffle.

Shuffle behavior - Winamp style

Reply #9
As far as I know, Peter does not intend to change the behavior of the Shuffle playback mode.

Shuffle behavior - Winamp style

Reply #10
As far as I know, Peter does not intend to change the behavior of the Shuffle playback mode.


Well that makes me sad 

Although I didn't mean it should replace the current behavior. I meant that this feature would be optional, eg. another shuffle mode or a choice somewhere in the Preferences.

I remember reading some time ago that the SDK didn't support some kind of shuffle things. So is this complicated to code or is this kind of feature regarded as unnecessary? To me it seems like a reasonable feature... Could there be some kind of workaround so that the actual shuffle behavior wouldn't have to be changed? Maybe change what happens when a song is manually selected to play or how it affects the playback order? I'm not a programmer so I don't have any idea if that makes any sense...

Shuffle behavior - Winamp style

Reply #11
I have an idea for a component or a feature that wouldn't require touching the Shuffle mode behavior at all. At least I think so...

Can components access the internal randomized playlist that Shuffle Mode generates? If so, maybe it's possible that a component would always keep the next track from that internal playlist in memory. And every time a track is manually selected that "ex-next-track" would be added to the Playback Queue. When the manually selected track is over that ex-next-track on the Playback Queue would cause the playback to continue from where it was before. That ex-next-track would not be added to the Playback Queue if a track from another playlist is selected.

So two things:
  • Always keep the next track of the internal randomized playlist in memory
  • Manually selecting a track to play causes that track from memory to be added to the Playback Queue (unless the selected track is in another playlist)
Could something like this work?


Shuffle behavior - Winamp style

Reply #13
Can components access the internal randomized playlist that Shuffle Mode generates?
No.

Well darn. Is it likely that it would be possible in the future?

How about this: Instead of that inaccessible next track, you put the currently playing track to the memory. That track would play again after the manually selected track so the original shuffle order would continue. So just one repeating track. Maybe there could even be some automatic skipping mechanism that would skip that repeating track.

Maybe?

Shuffle behavior - Winamp style

Reply #14
Maybe there is a reason for all the "Ryan fixed shuffle again" in some Winamp changelogs. I remember that running gag...

Wouldn't it make sense to re-shuffle after each playlist interaction?

Shuffle behavior - Winamp style

Reply #15
Maybe there is a reason for all the "Ryan fixed shuffle again" in some Winamp changelogs. I remember that running gag...

Wouldn't it make sense to re-shuffle after each playlist interaction?

I don't know about the problems Winamp has had with its shuffle. It has worked fine for me.

If the re-shuffling only shuffles the songs that are not yet played it would be ok. But I guess that might require making changes to the shuffle function and according to foosion that's unlikely. I was hoping that my suggestion could be made as a component so that the shuffle function itself could be left alone.

Could someone who knows more about developing Foobar components comment on that suggestion in my two previous posts? Could it work? Can it be made as a component?

Shuffle behavior - Winamp style

Reply #16
What about a feature that just randomizes your current playlist like winamp? That should be a simple solution and sounds like it will do what you want (that's all *I* want anyway)

Shuffle behavior - Winamp style

Reply #17
You mean like [Main Menu]->Edit->Sort ->Randomize?
elevatorladylevitateme

Shuffle behavior - Winamp style

Reply #18
Sorry but that isn't a solution to this problem. If I randomize the playlist, play it with Default playback order and manually jump back to some previous track it will repeat the same tracks again. If you meant that I should randomize the playlist every time after I manually play a track then it would be just the same to use Random playback order.

And Randomizing the playlist isn't a good option for people who like to keep their playlist in some sort of order.

Shuffle behavior - Winamp style

Reply #19
Instead of jumping back to the track you want you could drag it just below the track you are currently playing, and it will be played next. You can re-sort your playlists by going to edit>sort>sort by..., or by clicking a column title. I realise it's not the same, it's just a suggestion.

Shuffle behavior - Winamp style

Reply #20
I'm glad that people help and make suggestions for solutions. Unfortunately that suggestion isn't a good solution either.

Like I said I'm used to jumping to tracks via AMIP Playlist search. It only takes Ctrl+Alt+Q, a few letters from the title and Enter to play a track.

Opening Foobar, finding the track I want to play, dragging it to the right place and hitting next isn't as easy or fast. That would also require randomizing the list which makes it harder to find the wanted track. You could use some search component of course but that would add even more steps.

My wish is to get something more automatic. The suggestions in this thread might work but they all require some extra steps. There should be a more simple way to achieve this Holy Grail of Non-Repeating Shuffle.

Shuffle behavior - Winamp style

Reply #21
I would love to see this on fb2k too.
Currently I use the 'random' playback mode although there's no way to get the previous track, and sometimes a track is played twice...

Maybe... a second shuffle mode?
<insert signature here>

Shuffle behavior - Winamp style

Reply #22
Seriously. 

None of this is a problem if you use a hand-shuffled playlist instead of the internal shuffle. Want an earlier track? Queue it up, as well as the next track on your shuffled playlist. Very little overhead, and it does not break the determinism of the current shuffle mode. Playlists are cheap and easy in foobar2000. Use them. Love them.

Using Edit > Sort > Randomize is not some cheap substitute for Shuffle mode: it's the single best implementation of shuffle anywhere. Using various sorts, you can create all kinds of novel shuffles. Sort by "$crc32(%album%) %disc% %tracknumber%" to get a playlist shuffled by albums. Want a different order? $crc32(%album%RANDOM GARBAGE) or $puts(SEED,1)$crc32(%album%$get(SEED)). You can use tricks like these to make all kinds of unusual sort patterns.

There are so many "problems" people report here that only exist in their heads. With a bit of creativity and intelligence, problem solved.

I want to make this next point explicitly clear: There is nothing that any Shuffle mode does that cannot be reproduced in an ordinary playlist easily.

Shuffle behavior - Winamp style

Reply #23
Thank you for saying this. Sometimes I feel alone.
elevatorladylevitateme

Shuffle behavior - Winamp style

Reply #24
Quote
Want an earlier track? Queue it up, as well as the next track on your shuffled playlist.


I like that Place After Current component that's around here somewhere for this; cuts that 'click two places' workflow in half 

Mind you, you do lose the benefit of having your playlists sorted all prettily when shuffling them, but the only way to get around *that* and still get this functionality that I can think of would essentially be to have two playlists, one for determining playback order and one for display purposes, and that feels like an absurd amount of overkill to me.

One thing I have wished for along these lines, though, is for, after playing a queued track, the player to automatically return you to the playlist (and position within that playlist) you were in before. But there are enough workarounds for this that it's not a big deal at all.