HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: Lyx on 2003-10-17 16:14:41

Title: foo_shuffle
Post by: Lyx on 2003-10-17 16:14:41
finally a shuffle plugin! thanks kode

minor request: is it possible to also add a shuffle-menu-entry for the systray?

- Lyx
Title: foo_shuffle
Post by: Chairman85 on 2003-10-17 17:04:44
kode54: Awesome, exactly what myself and others were looking for.  Is it possible to maintain the functionality of Follow Cursor while using shuffle?
Title: foo_shuffle
Post by: simpleuser on 2003-10-17 23:26:03
Thanks Kode54.

Indeed another great plugin from you.
Do you think it's possible to add a "minimum" jump range to the shuffle ? to be able to avoid playing next song in the album (fustrating when the playlist is big).

SU
Title: foo_shuffle
Post by: kode54 on 2003-10-18 00:29:42
Done.
Title: foo_shuffle
Post by: addicted on 2003-10-18 01:29:02
Quote
foo_shuffle

Delicious!
Title: foo_shuffle
Post by: smithore on 2003-10-18 01:40:08
great plug in !!
Title: foo_shuffle
Post by: smithore on 2003-10-18 01:45:26
Nice; is it possible for you to add a "random album" mode (play all the songs of an album in order and then random to another album etc.) ?

please!!!
Title: foo_shuffle
Post by: Urraca on 2003-10-18 07:02:29
Random Album is exactly what I'm looking for. Also, I'm looking for it to shuffle between playlists as well, I like to sort my genres between different playlists.
Title: foo_shuffle
Post by: kode54 on 2003-10-18 07:35:33
Controlling which playlist the core plays from is beyond the power of a playback flow control service such as Shuffle.

Shuffle album is not. I'll see what I can do.
Title: foo_shuffle
Post by: kode54 on 2003-10-18 09:29:43
Uploaded v1.0.3.It may need some tuning, or perhaps a proper way of staying a sufficient distance away from the previous track in the album, without screwing up the range. For now, it just uses the MT random function to pick from the unplayed tracks of the current album. When it finishes with the current album, it uses the original method to pick a new random track.
Title: foo_shuffle
Post by: smithore on 2003-10-18 12:29:27
It works !  thanks!

The only problem is for classic music albums and for "pop concepts albums" , the tracks are still shuffled inside the album...the shuffle needs to be based on albums, not on the tracks...


http://www.hydrogenaudio.org/forums/index....hl=random+album (http://www.hydrogenaudio.org/forums/index.php?showtopic=13266&hl=random+album)
Title: foo_shuffle
Post by: teetee on 2003-10-18 13:18:31
Quality plugin! Nice work kode54! Thanks for making it.

Any chance of being able to choose which field it uses for Album Shuffle? This would make it even more powerful (shuffle within categories, genres, artists etc.)

Ooh and a Next Album shortcut key would be wonderful too
Title: foo_shuffle
Post by: Lyx on 2003-10-18 13:30:08
Quote
...being able to choose which field it uses for Album Shuffle? ... shuffle within categories, genres, artists etc.


this is a GREAT idea  simple feature, endless possibilites

- Lyx
Title: foo_shuffle
Post by: kode54 on 2003-10-18 23:50:05
Uploaded v1.0.4.A set of unplayed tracks will be compiled based on the tag rule set.


Example:

Rules: -album|+genre

Previous track:

album=blah
genre is unset

Only the album rule will be observed, in which case the choice list will contain all unplayed tracks with unset album, blank album, or non-matching album.


If no matches are found, it will fall back on the standard shuffle track jump behavior.

For now, it only supports the first defined tag for each rule. More than one is possible, but will be complicated. (new conditions, ie. at least one match, or all must match; each value present in the checked tracks will have to be verified against all of the values collected from the previous track)
Title: foo_shuffle
Post by: teetee on 2003-10-19 00:47:18
Quote
Uploaded v1.0.4.
  • Added tag set rule mode.
A set of unplayed tracks will be compiled based on the tag rule set.


Example:

Rules: -album|+genre

Previous track:

album=blah
genre is unset

Only the album rule will be observed, in which case the choice list will contain all unplayed tracks with unset album, blank album, or non-matching album.


If no matches are found, it will fall back on the standard shuffle track jump behavior.

For now, it only supports the first defined tag for each rule. More than one is possible, but will be complicated. (new conditions, ie. at least one match, or all must match; each value present in the checked tracks will have to be verified against all of the values collected from the previous track)

great! even better than I'd hoped (in theory). But..

If I understand your descriptions correctly, if I put +album as the rule and choose Shuffle tag set for the order, it should behave the same as Shuffle album? I tried this and it just seems to do normal random shuffle (not within album)... In fact I can't seem to get any + rule working..
Title: foo_shuffle
Post by: simpleuser on 2003-10-19 01:01:05
kode54, could you add another kind of "random album" ?
it takes any album , starts at track 1, play all of them in order until the album is finished, then starts another album ?

Thanks already for your great foo_shuffle
Title: foo_shuffle
Post by: kode54 on 2003-10-19 03:25:36
Uploaded v1.0.5.
Title: foo_shuffle
Post by: kode54 on 2003-10-19 03:59:26
Quote
kode54, could you add another kind of "random album" ?
it takes any album , starts at track 1, play all of them in order until the album is finished, then starts another album ?

Thanks already for your great foo_shuffle

Uploaded v1.0.6.
Title: foo_shuffle
Post by: spase on 2003-10-19 05:15:14
Quote
Quote
kode54, could you add another kind of "random album" ?
it takes any album , starts at track 1, play all of them in order until the album is finished, then starts another album ?

Thanks already for your great foo_shuffle

Uploaded v1.0.6.
  • Added second album shuffle mode that does exactly what you want.

where at??
Title: foo_shuffle
Post by: kode54 on 2003-10-19 05:19:31
"Shuffle album 2" in the order control list.

Note that if the history is smaller than the number of tracks in the current album, it will cycle through the album endlessly. If this is a problem, add more tracks to your playlist, or increase the history size. :B
Title: foo_shuffle
Post by: spase on 2003-10-19 05:20:24
no.  1.0.6 has not been uploaded anywhere

your site still has 1.0.5
Title: foo_shuffle
Post by: kode54 on 2003-10-19 06:55:59
Oops. Issue corrected.
Title: foo_shuffle
Post by: spase on 2003-10-19 07:16:41
i don't suppose there is any way to play the randomly selected album in order (starting from track 1), then move on to another album?

i figure some sort of internal queue could be used to queue up the entire cd in order or something.

just a thought.
Title: foo_shuffle
Post by: kode54 on 2003-10-19 08:40:14
Quote
i don't suppose there is any way to play the randomly selected album in order (starting from track 1), then move on to another album?

i figure some sort of internal queue could be used to queue up the entire cd in order or something.

just a thought.

Uhm, that's what "Shuffle album 2" is supposed to be doing, unless your files lack proper TRACKNUMBER values.

Maybe if everyone could vote on a better name than "Shuffle album 2..."
Title: foo_shuffle
Post by: JEN on 2003-10-19 08:40:35
Quote
Component name - foo_shuffle
Component type (appropriate section) - General
Which foobar2000 version the component works with - 0.7.1
Short description of the component - Shuffle control with play history.
Compile date - October 17, 2003
Download link - http://www.saunalahti.fi/cse/kode54/foo_shuffle.zip (http://www.saunalahti.fi/cse/kode54/foo_shuffle.zip)
Author website link - http://www.saunalahti.fi/cse/kode54/ (http://www.saunalahti.fi/cse/kode54/)

This pluggin is amazing !!!  Great work kode54
Title: foo_shuffle
Post by: joelpt on 2003-10-19 09:09:54
Quote
Maybe if everyone could vote on a better name than "Shuffle album 2..."

How about 'Shuffle Whole Albums'?
Title: foo_shuffle
Post by: anza on 2003-10-19 09:20:24
Quote
Maybe if everyone could vote on a better name than "Shuffle album 2..."

"Random album"?
Title: foo_shuffle
Post by: spase on 2003-10-19 09:29:26
trying to use shuffle album 2 gives me an error:

Code: [Select]
ERROR (CORE) : playback flow control "Shuffle album 2" failure
ERROR (CORE) : Illegal operation:
Code: C0000005h, flags: 00000000h, address: 011D3B48h
Access violation, operation: read, address: 00000000h
Module: "foo_shuffle", loaded at 011D0000h - 011D9000h
Additional info: playlist / calculate_next
This is the first crash logged by this instance.
Code bytes:
011D3B28h:  10 8B F0 E8 1C FF FF FF 59 3B C6 59 76 05 83 C8
011D3B38h:  FF 5E C3 1B C0 5E F7 D8 C3 56 8B F1 FF 74 24 0C
011D3B48h:  8B 06 FF 74 24 0C FF 50 28 85 C0 7D 04 33 C0 EB
011D3B58h:  08 8B 16 50 8B CE FF 52 10 5E C2 08 00 A1 A4 6D
Crash info dumped to failure_00000006.txt in your program directory.
If you are reading this, you should restart the program as soon as possible to avoid further trouble, and report this exact message to the developer.


This also happens is shuffle album and shuffle tag modes
Title: foo_shuffle
Post by: kode54 on 2003-10-19 11:10:37
Uploaded v1.0.7.It's failing to retrieve info from some of the entries in your playlist. File missing, file broken, whatever. Now it will properly skip files when this happens.

Either way, maybe you should prune your playlist of all .txt files or something. :B
Title: foo_shuffle
Post by: kode54 on 2003-10-19 11:17:06
Quote
minor request: is it possible to also add a shuffle-menu-entry for the systray?

Finally responding to this request...

I suppose I could do this. Of course, shuffle is an order mode, not an action. I could make it toggle between Shuffle and Default, but now that there are more shuffle order modes....


I could reduce all shuffle modes down to a single order item and add a behavior selection to preferences, but this will complicate matters with 3rd party software accessing and changing the order. (I will have to expose behavior setting through a public config_var_string.)
Title: foo_shuffle
Post by: Lyx on 2003-10-19 12:36:43
Quote
Uhm, that's what "Shuffle album 2" is supposed to be doing, unless your files lack proper TRACKNUMBER values.

Maybe if everyone could vote on a better name than "Shuffle album 2..."


actually, i would propose to REMOVE all the different shuffle modes put all the features into a single mode. Then, simply add two input-fields to the shuffle-preferences:

shuffle ruleset: __________________ (this provides the same functionality as "tag set rule mode")

play in order based on: __________________ (this provides the funtionality of "album 2" and more)

if you would leave both fields empty, you get the standard shuffle mode. If you leave the first fields empty, you get "album 2"-style behaviour. If you leave 2nd empy, you get "tag set rule mode"-style play. And finally, you could also combine both methods.


This would also solve the problems with the systray kind of thing, because then there's only one mode.

- Lyx
Title: foo_shuffle
Post by: smithore on 2003-10-19 13:04:53
The "shuffle2" works great! Thank you kode54, at last we got a real shuffle plug-in
with all modes!!!
Title: foo_shuffle
Post by: teetee on 2003-10-19 13:05:01
Quote
Quote
Uhm, that's what "Shuffle album 2" is supposed to be doing, unless your files lack proper TRACKNUMBER values.

Maybe if everyone could vote on a better name than "Shuffle album 2..."


actually, i would propose to REMOVE all the different shuffle modes put all the features into a single mode. Then, simply add two input-fields to the shuffle-preferences:
[..]
This would also solve the problems with the systray kind of thing, because then there's only one mode.

- Lyx

If this were to be done, it would definitely require drop-down histories (like in Masstagger->rename and other places) so you could easily swap between rules.

@kode54: Absolutely wonderful where this plugin is going. The two main 3rd party plugins I use all the time are by you (OSD and shuffle). I'm wondering if the following situation could be catered for (assume all field names could be changed to others - they are there for the sake of example):

I would like to be able to write a rule which said
1. play all tracks with the same ALBUM field, ordered by the TRACKNUMBER field,
2. then choose the next track to have the same ARTIST and use rule 1 to proceed.
3. if you can't find an unplayed track in either situation choose a random track that hasn't been played (isn't in the history). I think this is already the default action?

I would then be able to play through all albums by a certain artist and then shuffle to a different artist and play all of theirs etc. I'm sure a generalised way of doing this would open up huge possibilities..

I can see that the generalisation of 1. is what Lyx is proposing (use both set rule and order rule for shuffle). What I am proposing is to use cascading rules (where a rule is both set and order) - "try to satisfy rule 1, if you can't, try rule 2 etc." I think it's important that each time it has to choose a new track that it starts at the beginning though.

Am I making sense? (and is it a crazy idea?)  Please feel free to reject it as stupid, insane, impossible or just over complicated 

PS apologies for being such a demanding end-user - I'm not quite ready to jump into programming plugins yet.
Title: foo_shuffle
Post by: DotNoir on 2003-10-19 13:21:00
Hi there!

And thank you very much for this plug-in. I love it... But, hmmm... I don't know if this is a bug or having something to do with my settings/machine... If I close the Foobar when playing something, and I have your Album shuffle 2 enabled... then I restart the program and when foobar has played the song to the end it starts from the first track of the played album.

I'm guessing that the plug-in doesn't save the history when exited? I can live with this  But just felt like reporting... Hope I wasn't a total dumbass
Title: foo_shuffle
Post by: Ido on 2003-10-19 14:04:37
just to say thankyou very much !
Title: foo_shuffle
Post by: kode54 on 2003-10-19 14:15:11
Uploaded v1.0.8.
Quote
I'm guessing that the plug-in doesn't save the history when exited?
You are correct.

Quote
Hope I wasn't a total dumbass
Nope.

I believe foo_history has a saving/loading feature, but it's commented out. It's probably not terribly stable, unless it saves the history as a FPL, as metadb_handles definately will not work across instances.

I reference by playlist indices, rather than by keeping metadb_handles. I could extend the history system to be able to save and load itself from a file, but it would further necessitate having a history reset feature.

Speaking of history reset, I'll add a menu item or two for that after I grab some sleep. (Reset for current playlist, reset all.)
Title: foo_shuffle
Post by: foosion on 2003-10-19 14:49:06
Quote
I believe foo_history has a saving/loading feature, but it's commented out. It's probably not terribly stable, unless it saves the history as a FPL, as metadb_handles definately will not work across instances.

I reference by playlist indices, rather than by keeping metadb_handles. I could extend the history system to be able to save and load itself from a file, but it would further necessitate having a history reset feature.

foo_history's history saving feature is stable, it saves items as locations (path and subsong index) plus a timestamp (an experimental and rather useless feature, I think). I didn't want to store those timestamps in the database, so I did my own format.
The reason why this feature wasn't enabled in the official release, is that I was too lazy to do the following things:
1) Add automatic history truncation based on history length/item age.
2) Save the history in an appropriate place (saving it in the components folder is not a good a idea, when profiles are enabled).

So now you know.
Title: foo_shuffle
Post by: smithore on 2003-10-19 16:01:42
When history's size is set on , the album 2 shuffle mode plays everytime the sames albums (10 differents) in circle on a playlist containning 700 albums!!! (i've tried differents settings but it's always the same). 

When history's size is set to zero that does'nt happen...
Title: foo_shuffle
Post by: kode54 on 2003-10-19 16:55:52
Quote
When history's size is set on , the album 2 shuffle mode plays everytime the sames albums (10 differents) in circle on a playlist containning 700 albums!!! (i've tried differents settings but it's always the same).  

When history's size is set to zero that does'nt happen...

What size is ","? ... unless you forgot to type some indicative figure before that comma.
Title: foo_shuffle
Post by: smithore on 2003-10-19 17:17:46
My meaning whas : when the history's size is set to a value (between 1 and max size)...
Title: foo_shuffle
Post by: kode54 on 2003-10-19 17:39:34
Setting it to minimum would probably cause it to cycle to the next or previous unplayed album in the list.

Uploaded v1.0.9.
Title: foo_shuffle
Post by: smithore on 2003-10-19 18:18:21
Sorry, always the same problem with the last update, after around 20 albums it loops (jump to the first one again)! can't understansd why...
Title: foo_shuffle
Post by: kode54 on 2003-10-19 18:55:49
Uploaded v1.0.10.
Title: foo_shuffle
Post by: smithore on 2003-10-19 19:09:21
Simply Perfect!!! Thanks !!
Title: foo_shuffle
Post by: kuyawsadabaw on 2003-10-20 07:38:44
Does this work with the 'Playback/Next or Random' action, or should there be a need for a 'Playback/Next or Shuffle' action?

EDIT: Oh wait, 'Playback/Next' works huh?
Title: foo_shuffle
Post by: simpleuser on 2003-10-20 08:59:17
Sorry, already pm'ed about that question :
is there a way to disable some of the original (now useless) play orders ?

SU
Title: foo_shuffle
Post by: DotNoir on 2003-10-20 09:39:29
Sorry to bother again... Again, love your work Kode and don't want to be a bother... I was just thinking... (that's a surprise  ) About the shuffle album 2, that would it be possible to make it behave in a way that when having album shuffle 2 on and clicking on some song, it would play the current album to the end from the point I've clicked and not moving to the first song of the album? This would also help to the "problem" I was talking about earlier that when closing the player and restarting it jumps to the first song of the album. Hmmm... I hope I was clear enough. But then again, it's not my plug-in, and you can do what ever you feel like. Damn, I should start learning c++ (again, learned the basics at uni, but didn't have time to learn more...).
Title: foo_shuffle
Post by: simpleuser on 2003-10-20 09:47:00
IDEA : Controlling Replaygain settings.

If using shuffle or shuffletag, then use trackgain. if using shuffle album 1 or 2, use albumgain.

cya next suggestion.

Simple User
Title: foo_shuffle
Post by: addicted on 2003-10-20 12:19:46
This is like a dream come true, thanks so much for this plug-in!
Title: foo_shuffle
Post by: panzemeyer on 2003-10-20 13:26:02
Great plugin indeed. I specially like the "tag set" shuffle. No player has ever achieved that before (as far as i know).
Title: foo_shuffle
Post by: dev0 on 2003-10-20 13:41:35
foo_suffle makes me dance and scream!
Great PlugIn!
Title: foo_shuffle
Post by: DotNoir on 2003-10-20 15:35:59
Hi! It's me again... (sorry ;P)

Could you also make shuffle album 2 check the artist and album when playing the albums? I have both Opeths and Corrosion of Conformitys albums Deliverance, and it skipped from COCs first track to Opeths first track and then back to COCs second track.

Thanks
Title: foo_shuffle
Post by: teetee on 2003-10-20 16:35:55
Quote
Hi! It's me again... (sorry ;P)

Could you also make shuffle album 2 check the artist and album when playing the albums? I have both Opeths and Corrosion of Conformitys albums Deliverance, and it skipped from COCs first track to Opeths first track and then back to COCs second track.

Thanks

Another argument for being able to use both tag set and order rules at the same time (you would then be able to use +album|+artist with tracknumber as the order to make this problem go away)
Title: foo_shuffle
Post by: janjan on 2003-10-20 18:16:27
i really like your plugin but there ist one thing i can't live with:

- i set playback order to "Playback/Order/Shuffle" and made a keyboard-shortcut to "Playback/next or Random"

- i play track 5 (for example) and highlight track number 9

- when i press the next/random key the selected song is played and not a random song from the list.

i can understand that this behavior can makes sense but 9 out of 10 times i want a random song (isn't this the purpose of the plugin?) and not the song that is highlighted.

perhaps you can add a checkbox to control this behavior.
Title: foo_shuffle
Post by: The Link on 2003-10-20 18:25:12
janjan: Do you have "Follow cursor" enabled under "Playback"? If yes disable it and try again.
Title: foo_shuffle
Post by: janjan on 2003-10-20 20:20:46
If i disable "Follow Cursor" then foobar will not jump to the new song. So this isn't an option for me
Title: foo_shuffle
Post by: The Link on 2003-10-20 20:34:34
Quote
If i disable "Follow Cursor" then foobar will not jump to the new song. So this isn't an option for me
Either I don´t understand you or the behaviour you wish is illogical to me because in my opinion foobar2000 behaves in the right way regarding "follow cursor" enabled in shuffle mode.
Title: foo_shuffle
Post by: janjan on 2003-10-20 20:55:45
Quote
Quote
If i disable "Follow Cursor" then foobar will not jump to the new song. So this isn't an option for me
Either I don´t understand you or the behaviour you wish is illogical to me because in my opinion foobar2000 behaves in the right way regarding "follow cursor" enabled in shuffle mode.


You have many songs in the playlist, the playlist-position is at the bottom and you disable "Follow Cursor". If a song is played that is located at the top of the playlist then foobar will not center the playlist at the new song.

My Problem is:
If I enable "Follow Cursor" then the plugin will jump to a highlighted song (if there is a single highlighted song) instead of picking a random song -> I don't like this

If I disable "Follow Cursor" foobar does the thing I described above -> I don't like this either
Title: foo_shuffle
Post by: The Link on 2003-10-20 21:01:41
Well...I don´t see a solution in the current state. But you know that a double click on the status bar will fokus the currently played file?
Title: foo_shuffle
Post by: DotNoir on 2003-10-20 21:23:58
...funny, and I just love the behaviour this way... I just can't understand why you want to highlight some song and then want to playlist to skip to some other position... If you want to "unselect" the selection while playing the current song, just double click on the status bar...
Title: foo_shuffle
Post by: janjan on 2003-10-20 23:08:52
I've just found a solution for my problem:

1: disable "Follow Cursor"
2: goto http://www.dago.pmp.com.pl/foobar/ (http://www.dago.pmp.com.pl/foobar/) and download/install foo_focus.dll
Title: foo_shuffle
Post by: spase on 2003-10-21 02:31:36
Quote
I've just found a solution for my problem:

1: disable "Follow Cursor"
2: goto http://www.dago.pmp.com.pl/foobar/ (http://www.dago.pmp.com.pl/foobar/) and download/install foo_focus.dll

how do i enable this focus component?

nothing seems to be different in my foobar
Title: foo_shuffle
Post by: kode54 on 2003-10-21 05:09:58
Quote
Quote
I've just found a solution for my problem:

1: disable "Follow Cursor"
2: goto http://www.dago.pmp.com.pl/foobar/ (http://www.dago.pmp.com.pl/foobar/) and download/install foo_focus.dll

how do i enable this focus component?

nothing seems to be different in my foobar

Preferences, Display, Track auto-focus.
Title: foo_shuffle
Post by: spase on 2003-10-21 05:18:50
Quote
Quote
Quote
I've just found a solution for my problem:

1: disable "Follow Cursor"
2: goto http://www.dago.pmp.com.pl/foobar/ (http://www.dago.pmp.com.pl/foobar/) and download/install foo_focus.dll

how do i enable this focus component?

nothing seems to be different in my foobar

Preferences, Display, Track auto-focus.

muchos gracias
Title: foo_shuffle
Post by: Killmaster on 2003-10-21 06:38:03
While I've been wanting something like "Shuffle Album 2" for a really damn long time now and it's really awesome, but could there be an option to make hitting play skip to another album? Right now I have to click my way through the entire playlist to do this, which is annoying
Title: foo_shuffle
Post by: picmixer on 2003-10-21 10:04:09
Quote
, but could there be an option to make hitting play skip to another album? Right now I have to click my way through the entire playlist to do this, which is annoying

The playlist hopper plugin by paulski seems to do what you want.  You can find it here (http://www.hydrogenaudio.org/forums/index.php?showtopic=12421&) .
Title: foo_shuffle
Post by: GoWaN on 2003-10-25 13:27:45
Great plugin    I really hope it implements saving history between sessions anytime soon  B)
Title: foo_shuffle
Post by: spase on 2003-10-27 14:32:45
kode:  can you make a functionality like "next random album"

currently i can do this by setting it to shuffle album 2, hitting the random button, then hitting the next button (to get to the beginning of the CD).

If this were possible with a single command it would be awesome.
Title: foo_shuffle
Post by: mazy on 2003-10-27 17:22:11
i know it's not directly related to shuffle, but could there be special play mode (done as order type) 'intro', which would play say 10secs from middle of song (or beginning - selectable by user in preferences)?
Title: foo_shuffle
Post by: kode54 on 2003-10-27 22:03:58
Uploaded v1.0.11.
Title: foo_shuffle
Post by: julien_32 on 2003-10-28 20:25:37
some bugs (for shuffle album 2)
some suggestions
Example:
%artist% - %title% (weight)
TOTO - A (0.7)
TOTO - B (0.7)
TOTO - C (0.7)
TOTO - D (0.7)
Tricky - A (1)
Tricky - B (1)
Another - A (1.2)

Thus "TOTO - A" has a little less chance to be played than "Another - A"
Title: foo_shuffle
Post by: goweropolis on 2003-10-29 23:07:58
Quote
  • Shuffle album 2 mode now checks DISC and should play large albums in proper order. (Of course, this calls for even bigger history, or rather large playlist. :B)

Would it be possible to add a switch for "shuffle album 2" to switch after every disc as opposed to every album? I have some multi disc recordings, that I'd like to treat as individual albums for the purposes of shuffling; even though they're tagged with the same album name, but different disc numbers.

Thanks for the great plugin! 
Title: foo_shuffle
Post by: simpleuser on 2003-10-30 14:52:57
if I understand,
shuffle album = "suffle tag set" with "+artist|+album"

would it be possible to :Simple User
Title: foo_shuffle
Post by: teetee on 2003-10-30 20:36:02
Quote
some bugs (for shuffle album 2)
  • for me album is not based only on %album% tag but with %album% AND %disc%

This is already catered for.. Albums play in order starting with Disc 1 Track 1 then Disc 1 Track 2, to the end of Disc 1, then moving on to Disc 2 Track 1 etc.
Isn't that what you want it to do?
Title: foo_shuffle
Post by: upNorth on 2003-10-30 21:08:30
I have never been a shuffle and random user,  but this plugin is great. I simply love the Shuffle tag set mode in combination with a huge playlist and this rule set:
Code: [Select]
-album|-artist|+genre

The only negative aspect is that I will probably waste alot of time trying to come up with a good solution for the genre tag. I find it far from easy to settle on what to put in it. Guess I need more tags like %subgenre%, %category% and such.

Thanks for making this great plugin! 
Title: foo_shuffle
Post by: Scheisen2000 on 2003-11-01 12:39:58
hi, this is a really great plugin.
for me it would be even better, if the values of the tags shuffle is based upon could be defined.
so eg. you would be able to shuffle through all tracks tagged as 'Rock' or 'Hard Rock'.

sth like this:
Code: [Select]
-artist|-album|+genre('Death Metal' OR 'Black Metal')

(maybe it should be AND, dunno, but u guess what i mean?)

also it would be great if those 'shuffle-strings' could be saved and than placed in the 'order'-dropdown-list as sth like 'Metal Shuffle' eg

again great work, tnx alot
Scheisen2000
Title: foo_shuffle
Post by: upNorth on 2003-11-01 13:20:16
I second this.

I like the way it works now, but if it could be extended to include Scheisen2000's idea it would be even better IMHO. The good thing about the way it works now is that you can easily change the genre to be shuffled just by selecting another track with av different genre. The negative side effect of that, is that you have to find a track with the specific genre you want to listen to in the first place.

A save/load option would also be appreciated, but then it would also be nice if it could be accessed from the context menu or something.


Sorry about all the nagging, I still like it alot as it is already.
Title: foo_shuffle
Post by: julien_32 on 2003-11-01 16:01:14
Quote
This is already catered for.. Albums play in order starting with Disc 1 Track 1 then Disc 1 Track 2, to the end of Disc 1, then moving on to Disc 2 Track 1 etc.


Apparently i have a problem:
for me it play Track 1 on Disc 1, then Track 1 on Disc 2...

my files are properly tagged in APEv2 and ID3v1 with ARTIST, ALBUM, TITLE, DISC, TRACKNUMBER, GENRE and DATE.

There is no ID3v2 tags

for DISC the format is like "Volume 1/2", "Volume 2/2" but if it's a numeric value like 1,2,3 it occurs the same thing.
Title: foo_shuffle
Post by: kode54 on 2003-11-02 23:43:44
Uploaded v1.0.12.@julien_32: Text in DISC will also mess up most title formatting scripts which also handle DISC, since they expect it to be numerical... well, sort of. The old default format will probably result in an album display like...

For ALBUM="Blah", DISC="Volume 1/2", TRACKNUMBER="15":

[Blah #Volume 1/2/15]
Title: foo_shuffle
Post by: Ido on 2003-11-09 11:30:49
I don't if it is a bug or not but I find it quite annoying:
When I shutdown my computer without closing foobar, foobar seems to start on the same song than the first it played before.

More explaination:

I play songA, closed foobar, start foobar and play -> it play songA, then playing many other songs, I shutdown the computer without closing foobar, the next day I boot my computer then start foobar and play -> it play songA then many others...

the others songs are always different but the first song is always the same.

foobar 0.7.2 shuffle 1.0.12
Title: foo_shuffle
Post by: anza on 2003-11-09 11:40:55
It's not foobar's or foo_shuffle's fault. When you shut down your computer like that, foobar can't write the new config file and when you start it up again, it reads the "old" configuration file, where the song that should be played is "songA".
You can solve this by disabling "resume playback after restart" under prefs|core, or just close foobar first and after that your computer.
Title: foo_shuffle
Post by: kode54 on 2003-11-09 11:59:13
Shuffle history is not saved, and linear album mode always starts on or skips ahead to the first unplayed track in the current album.
Title: foo_shuffle
Post by: mesquite on toast on 2003-11-10 15:58:12
Suggestion for the names of the "Album shuffle" modes: "Shuffle album (track)" and "Shuffle album (full)", perhaps?
Title: foo_shuffle
Post by: Ido on 2003-11-10 17:31:14
Quote
Shuffle history is not saved, and linear album mode always starts on or skips ahead to the first unplayed track in the current album.

I'm in suffle mode, the "resume palyback" is not checked. Do I HAVE to close foobar before shutting down ? :-/
Title: foo_shuffle
Post by: mazy on 2003-11-10 22:22:14
Quote
Suggestion for the names of the "Album shuffle" modes: "Shuffle album (track)" and "Shuffle album (full)", perhaps?

i suggest:

"shuffle inside album" and "shuffle albums"
Title: foo_shuffle
Post by: ExUser on 2003-11-10 23:18:22
Furthermore, a customizable album grouping pattern (ie. new ReplayGain) would be nice. Perhaps the whole thing could be generalized to "Shuffle within group" and "Shuffle groups" or something.
Title: foo_shuffle
Post by: GeSomeone on 2003-11-12 12:43:56
or
- Shuffle Albums
- Shuffle Tracks per Album
Title: foo_shuffle
Post by: Mindflux on 2003-11-21 00:49:18
Sorry for failing to grasp this. But if all shuffle does is randomize your playlist, what's wrong with the already implemented "Random" option?
Title: foo_shuffle
Post by: stripe on 2003-11-21 04:24:11
Random mode can (and likely will) play songs twice before all the songs are played.

(but I use it anyway)

stripe
Title: foo_shuffle
Post by: Mindflux on 2003-11-21 04:33:19
Quote
Random mode can (and likely will) play songs twice before all the songs are played.

(but I use it anyway)

stripe

I was shuffling music all day today and would hear several songs before some of the new stuff. It seems no better than randomize.  Plus it crashes .74.4.. I take out foo_shuffle and all is fine.
Title: foo_shuffle
Post by: kode54 on 2003-11-21 07:06:20
Good. I don't use it either. Randomize playlist for me, if I'm not just manually picking songs or listening to a single song for hours on end, or more often not listening to anything at all.

Wait for Case to develop a sane solution.
Title: foo_shuffle
Post by: _Shorty on 2003-11-21 10:52:13
Quote
It's not foobar's or foo_shuffle's fault. When you shut down your computer like that, foobar can't write the new config file and when you start it up again, it reads the "old" configuration file, where the song that should be played is "songA".
You can solve this by disabling "resume playback after restart" under prefs|core, or just close foobar first and after that your computer.

actually it is foobar's fault, since it's entirely possible to halt the shutdown process until it finishes what it needs to do and then allow windows to proceed. I've seen this behaviour in who knows how many programs. I know at least one that takes so long with all the stuff it needs to clean up that windows pops up a 'not responding' dialog for this program. But once its done doing what it has to do, windows continues shutting down just fine. No reason foobar can't do what it needs to do before allowing windows to shut down.
Title: foo_shuffle
Post by: kode54 on 2003-11-21 15:41:25
Yes, it's true, Peter forgot the magic "halt shutdown long enough to save our shit" feature that every Windows programmer should normally add to their applications.

Phew, smells like bullshit to me. The only time an application would be force killed during shutdown is either when the shutdown is forced, or when the user has configured their system to automatically kill applications that have been unresponsive for 30 seconds.
Title: foo_shuffle
Post by: Mindflux on 2003-11-29 04:37:25
Seems like every time I start foobar and shuffle the same playlist, it always starts with the same song, and shuffles through the EXACT same songs.  I've tried it several times. Open foobar, hit play.. hit forward track a few times and make a note of the songs.

Close, hit play.. same first song, hit forward track.. same songs.

shrug, back to random.
Title: foo_shuffle
Post by: smithore on 2003-11-29 15:32:10
What's new in 1.0.13 version?
Title: foo_shuffle
Post by: kode54 on 2003-11-29 16:18:42
A bit of extra startup and shutdown security related to playlist switcher crashes some may have been experiencing. The core of Foobar2000 v0.7.4 was already changed to make this version unnecessary, but every little bit of security helps... or something. :B
Title: foo_shuffle
Post by: ludox on 2003-12-09 23:08:08
Quote
i know it's not directly related to shuffle, but could there be special play mode (done as order type) 'intro', which would play say 10secs from middle of song (or beginning - selectable by user in preferences)?

I like this idea, it's a good way to make an opinion fastly of an album.
It would be nice if you could integrate this feature in shuffle plugin or a new plugin.
Title: foo_shuffle
Post by: pornel on 2003-12-10 14:28:44
Could tagset use macros like playlist display?

[ -album|-artist|+genre ]

would be:

same:[ %genre% ]
diff: [%album% %artist%]

Plugin would then compare generated strings. That would allow making powerful shuffles :)

If its not possible I suggest adding directory "tag" (eh, tagging mp3s is endless struggle :)


and little bug report:
shuffe album with Playback->Random option doesn't cooperate. That randomly chosen track is played twice.
Title: foo_shuffle
Post by: GoWaN on 2003-12-10 21:38:10
Just wanted to know if the save suffle list between sessions in the TODO list. It's something very important for me.
Title: foo_shuffle
Post by: richard123 on 2003-12-14 16:45:47
Is there any way to play the randomly selected album in order (starting from track 1), then move on to another album, but only pick albums from a specified genre (or group of genres)?  So, for example, I could play complete jazz albums in a random order.

Shuffle2 plays random albums
tagset seems to let you restrict songs to a specified genre

but I can't figure out a way to combine the two
Title: foo_shuffle
Post by: Der_Iltis on 2004-01-12 15:11:31
Is it possible to add a feature like groups just in the way scheissenxxxx mentioned it? i hear music in different related genres (Techno,Dance,Trance) and it would be nice if I could just get them together to one group of genres.

you could define for each tag field several groups.Sth like this (Each line is a group):

GROUPS                   

GENRE               
Techno,dance,trance
Love,Soft Rock,Pop
etc

ARTIST                 
Beatles,doors
Fleetwood Mac,Alan Parson's Project
...
Title: foo_shuffle
Post by: sardiax on 2004-01-21 03:46:04
i'm curious if its possible to use the tagset to set percentage values that it would use to calculate whether to keep shuffling the same artist/album/genre.

i.e. - +album|+artist|+genre,$random(33,-album|+artist|+genre),$random(5,-artist|-genre),$random(1,-genre)
or someway to have it make determine whether to switch albums/artists/genres

shuffle as normal but
have a 33% chance the next shuffle to be -album|+artist|+genre
have a 5% chance the next shuffle to be -artist|+genre
have a 1% chance the next shuffle to be -genre

i'm also curious if foo_shuffle does +-year
Title: foo_shuffle
Post by: Der_Iltis on 2004-01-23 09:31:57
Maybe you could add the feature i requested by changin foo_Shuffles tag set control to e.g.:
+genre(Pop;Rock)        will play only Pop or Rock
-genre(Pop;Rock)          will play everything except from Pop and Rock
combinations of them

Just a suggestion, but would be really nice if you have >17000 songs of all different kinds and just want to hear different styles except from... or more from more  than one genre / album / artist.
Title: foo_shuffle
Post by: pornel on 2004-01-23 16:21:27
I got idea how tag sets could be implemented, but that deserves its own thread (http://www.hydrogenaudio.org/show.php/showtopic/17898)
Title: foo_shuffle
Post by: Zoominee on 2004-01-23 22:20:53
Quote
But you know that a double click on the status bar will fokus the currently played file?

Wow! I didn't know that either! Where do you find out useful stuff like this?
Title: foo_shuffle
Post by: Zoominee on 2004-01-24 23:07:34
regarding the "tag-set-mode":
I've noticed some confusion in the current thread regarding what the tag set mode "means". How about we agree on the following meaning (and syntax that I'm proposing here)?

The tag-set format string has the following format:
rule1[|rule2[|rule3...]] etc
where each rule is optional and has the syntax
=/-/1 tag
which means:
= next item on tag-set shuffle has to have the same tag value
- next item on tag-set shuffle has to have different value
1 next item on tag-set shuffle has to have next numerical value

If more than one rule is specified by the | operator, the first rule takes precendence over the next. When a rule cannot apply (because the history exhausts the playlist respecitvely), it is ignored for the previous one.

In this case, "album mode 1" (shuffle a track from each album but never from the same album twice) would be =artist|-album
"Album mode 2" (shuffle albums but play each album completely) would be =artist|=album|1tracknumber (or possible =artist|=album|1disc|1tracknumber).
Total shuffle of whole playlist would be the empty string.
Shuffling tracks from different genres would be -genre.
Shuffling tracks from different artists but keeping the genre would be =genre|-artist.

Does this structure make sense intuitively? I think so! Maybe this is the way to disambiguate the different structures/sorting/shuffling schemes suggested previously.
Title: foo_shuffle
Post by: teetee on 2004-01-25 16:42:28
Your description does not appear to allow for people wanting to specify that the tags have a specific value. How, for example, would you tell it to shuffle between all your tracks with genre=Rock?
Title: foo_shuffle
Post by: Xecter on 2004-01-25 17:48:28
Zoominee has some great ideas! I really really want a shuffle tag incrementer.

I really like his ideas. Would be nice to include a readme in the next version to understand the syntax of it.

For example i would really like to have "=album|1partinset|1tracknumber"
that would shuffle my albums perfectly. (i haven't started to use the disc field since itunes raped my tags. It uses partinset to differentiate discs  )


Teetee, does have a point. It would be nice to shuffle with set tags:

"=genre(rock)|etc"
or
"=artist(Bleh)|=album(bleh)"
or
"=date(2003)"

then of course you need some booleans
"=date('2003' or '2004')"

Even add some more fields:

"=genre(rock)|1playlist_number"

this would play all the rock tracks in order as they are in the playlist.

This is shaping up to be a killer plugin.
   
Title: foo_shuffle
Post by: Zoominee on 2004-01-25 19:54:22
Quote
Your description does not appear to allow for people wanting to specify that the tags have a specific value. How, for example, would you tell it to shuffle between all your tracks with genre=Rock?

If it's just one value for the tag that you want to keep shuffled, make sure it's first on the shuffle tag-set string, and start playing a song that fits.
Like, when you play a song from an album in "shuffle album 2" mode, it keeps playing that album (because, in my notation, "shuffle album 2" is =album|1tracknumber, so to stick to the first rule, =album, the album stays the same as long as possible).
So for what you want, simply stick =genre| at the beginning of your formatting string, and as long as there are songs left in your playlist which match the genre you're currently playing, you'll get more of the same.
Of course, if you need to select more than one value from the genre field (and ignore the other values), then my notation isn't good enough - xecter's =genre(...)extension would be useful in that case.
Title: foo_shuffle
Post by: teetee on 2004-01-27 22:39:20
I would also like to see the cascading rules I mentioned earlier in the thread (http://www.hydrogenaudio.org/forums/index.php?showtopic=14293&view=findpost&p=145212).. (not explained particularly well though!)

It would allow me to distinguish between "shuffle between all Rock and Metal tracks" and "shuffle between all Rock tracks and then shuffle between all Metal tracks". So in a similar way to your

Quote
If more than one rule is specified by the | operator, the first rule takes precendence over the next. When a rule cannot apply (because the history exhausts the playlist respecitvely), it is ignored for the previous one.


If a whole line of rules is called a rule-group (for want of a better word). Then when one rule-group cannot apply (because even the first rule cannot apply), the plugin moves onto the next rule-group.

If a maximum of 10 (arbitrary to make the preference page easier to handle) rule-groups was allowed, this would be quite possible to do (I think).

My example from above would be as simple as:
rule-group 1: =genre('Rock')
rule-group 2: =genre('Metal')

An example with perhaps more apparent use would be if you had tagged your files with a personal rating 1-5:
rule-group 1: =rating(5)
rule-group 2: =rating(4)

Just a thought 
Title: foo_shuffle
Post by: Xecter on 2004-01-29 23:46:37
I hope all these improvements will be included in the new version of foo_shuffle (under the 0.8SDK) 
Title: foo_shuffle
Post by: ExUser on 2004-01-31 00:24:48
The version for v0.8+ can be found at kode54's foobar2000 plugins page (http://www.cqasys.com/projects/kode54/index.php), like usual.

And, after a short, rather odd version snafu, it works just perfectly.  Thanks for the great component, kode54!
Title: foo_shuffle
Post by: Linkin on 2004-01-31 09:11:59
Quote
The version for v0.8+ can be found at kode54's foobar2000 plugins page (http://www.cqasys.com/projects/kode54/index.php), like usual.

However, it's not working here, so I dunno... 

it works for me with 0.8 beta 2...thanks kode for fast upgrading your plugins! 
Title: foo_shuffle
Post by: antares on 2004-01-31 11:46:08
Hi,

is there a kind of tutorial how to use shuffle control? I have been looking around but couldn't find anything!
Just to give your English native speaker an impression what problems you have to face if your mother-tongue is not English: in any English-German dictionary "random" and "shuffle" has the same meaning, namely by accident! So what is the real difference between both???

What is the correct meaning of shuffle album, shuffle album2, etc???

I have tagged my files with a "trackrating" tag (from 1 to 6 points) and would like to know how to manage that all songs with five points should be played (or five and six points) by accident?


Thanks for any help


Martin
Title: foo_shuffle
Post by: The Link on 2004-01-31 12:12:48
Random means that the next song is randomly chosen from ALL songs of the playlist, which means that the next song could be a song you just heard some minutes ago.

Shuffle works with a history (all suffle modes), which means it knows which songs have already been played during a session and will avoid them to play again.

Shuffle album2: plays complete albums in the right trackorder (1st track - last track of an album), then changes to the next randomly chosen album

Shuffle album: shuffles inside an album until all songs of this album have been played, then goes to the next randomly chosen album

Shuffle tag set: You can configure the "shuffle process" in the preferences of the plugin (theres an example of how it works). You can play with that feature to approximatly get what you want to do.

Regards,
The Link
Title: foo_shuffle
Post by: antares on 2004-01-31 13:26:05
@ Link,

thanks a lot for your reply! But one question is still left! Even if I "play around" I don't achieve to play all tagged files (%trackrating%) with a given number of points I have set!

Quote
Shuffle tag set: You can configure the "shuffle process" in the preferences of the plugin (theres an example of how it works). You can play with that feature to approximatly get what you want to do.


Could you please give some further explanations??

Thanks a lot


Martin
Title: foo_shuffle
Post by: The Link on 2004-01-31 13:33:13
I said "approximatly" because I don't know if you can exactly do what you want at the moment (but i didn't really think hard about it). You could try setting "+trackrating" and manually begin playing a song that has the wanted trackrating. It then should shuffle through all songs with the same trackrating (no guarantee that it will work!!).

Regards,
The Link
Title: foo_shuffle
Post by: floyd on 2004-02-06 02:03:55
First: this is an awesome plugin.  Thanks kode.  Exactly what fb2k has been missing since the very first version.

Second: would it be possible to somehow 'highlight' tracks that have been played in a different colour? So at a glance you can tell which songs have yet to be played?  Maybe this could somehow be done with formatting scripts, but I'm not quite up on all the latest syntax, I'll admit.
Title: foo_shuffle
Post by: kode54 on 2004-02-28 18:57:08
Uploaded v1.0.15. [already obsolete, wow]Uploaded v1.0.16. [obsolete too!]Uploaded v1.0.17.
Title: foo_shuffle
Post by: filon on 2004-02-29 15:01:07
Kode, could you add a feature to have multiple (named) "shuffle tag set" orders, with different tag sets?
Title: foo_shuffle
Post by: teetee on 2004-03-05 13:02:17
Thanks for implementing history saving. Very much appreciated. Particularly useful when using Shuffle Album 2.
Title: foo_shuffle
Post by: lav-chan on 2004-03-08 08:48:50
I'm sorry, i don't get this. ;_____;

I was looking for a way so that foobar would go through the entire list (when in random) before it would play a song twice. That is, instead of 'true' random, like

song 01, song 07, song 02, song 01, song 08, song 03, song 06, song 05, song 09, song 01, song 04

i want it to go through the whole list, like

song 01, song 07, song 02, song 08, song 03, song 06, song 05, song 09, song 04, (start over)

So... i found a thread where another person wanted this function, and someone replied that the solution was foo_shuffle. So i got foo_shuffle, and played with the configuration a little, but i'm not getting it. It's doing pretty much the exact same thing it's always been doing. On a play list of thirty songs, it'll play the same song like five or six times before it actually plays through all thirty. Really annoying. I must be using it wrong? There is a way to get a Winamp-style shuffle using foo_shuffle, right? :/
Title: foo_shuffle
Post by: DotNoir on 2004-03-08 15:17:08
You should have history size set to maximum to go through all songs before starting to repeat the songs... (as far as I know, that is...)

And just a check... you are using "Shuffle" option as the playback order, right?
Title: foo_shuffle
Post by: kode54 on 2004-03-08 18:44:03
BLEH!

v1.0.20 uploaded.
Title: foo_shuffle
Post by: illa on 2004-03-08 21:33:26
Version 1.0.20 is simply ingenious with history FINALLY memorized!

Now all we could possibly want is "just"  memory per each tab (playlist) preferrably.

Reset button is not needed under configuration / shuffle, but can be put as a part of context menus when rightclicked on tab - reset shuffle history.

It sounds quite simple to me, but i'm not quite sure how much coding does it involve...

THE plugin of all time, definitely!
Title: foo_shuffle
Post by: kode54 on 2004-03-08 21:55:27
Quote
Now all we could possibly want is "just"  memory per each tab (playlist) preferrably.

It has always done this.

Quote
Reset button is not needed under configuration / shuffle, but can be put as a part of context menus when rightclicked on tab - reset shuffle history.
I will add this.
Title: foo_shuffle
Post by: Gemini on 2004-03-08 23:07:18
Hey kode, this is kinda related and kinda not related to foo_shuffle, but is it possible to make a plugin that would skip (or backtrack) a certain number of tracks in the playlist? Like 5, 10, etc? This would be useful (with keyboard shortcuts) in games, where you could skip to tracks you like.
Title: foo_shuffle
Post by: kode54 on 2004-03-08 23:37:44
Moneo found out the hard way that you can assign multiple actions to the same key and they will all be executed. I am not sure they will be executed in the order you assigned them, or if this works for global shortcuts. Of course, it would be kind of messy, having 5-10 actions assigned to the same key in the list.
Title: foo_shuffle
Post by: illa on 2004-03-09 18:07:06
What happens if you manually select one song after ie 10 songs have been played ? It doesnt affect the shuffle history, does it ?
Title: foo_shuffle
Post by: kode54 on 2004-03-09 18:52:52
Not unless you use Follow cursor and play/next to skip to that track.

If you want, you can use that repeatedly to queue up several specific tracks and then skip back to the track you were originally playing.
Title: foo_shuffle
Post by: lav-chan on 2004-03-10 01:33:31
Quote
And just a check... you are using "Shuffle" option as the playback order, right?

y helo thar im retarded ;______;

I always leave that thing on 'Random', so i never noticed it added new options. Whoops. New problem, though. Now that i've got it set to that, it doesn't repeat songs anymore, but it's definitely not random. Like, say i'm on the tenth item in the list. It'll play 10, and then it'll go to, say, 60. Then the next song will be 09. The song after that will be 59. The song after that will be 08. The song after that will be 58. The song after that will be 07. The song after that will be 57. Notice the pattern? :,)

It does this in all the different shuffle methods ('Shuffle album', 'Shuffle', 'Shuffle tag set', it doesn't matter). I've got all the sliders set to max. Is that the problem? I'm not entirely sure of what the bottom two sliders do (the explanation is confusing), so i'm guessing it must be. Of course, i am retarded. :/

TIA~
Title: foo_shuffle
Post by: kode54 on 2004-03-10 03:37:38
Quote
Like, say i'm on the tenth item in the list. It'll play 10, and then it'll go to, say, 60. Then the next song will be 09. The song after that will be 59. The song after that will be 08. The song after that will be 58. The song after that will be 07. The song after that will be 57. Notice the pattern? :,)


Quote
I've got all the sliders set to max. Is that the problem?

Indeed.

Set size depending on how long you want before it can recycle files it has already played. Set to 100% if you want it to exhaust the entire playlist before stopping. (Though you could just use Random playlist sort and play from start to finish...)

Pretend the jump range slider is like the shuffle morph rate slider in Winamp. As for the minimum parameter, that is the minimum distance from the current track. If you set it to 100%, it will always jump to the middle of the playlist, then back to the nearest unplayed file at the top, then back to the middle again, etc.
Title: foo_shuffle
Post by: illa on 2004-03-10 22:21:17
1. So, if i understood it correctly, no action can affect mp3s allready written in history, except resetting the history from options. If i use follow cursor, the songs i've marked will be played, but not written in the history ( with a chance of being played again, after the que i selected finished playing ).

2. Using next will skip to the next shuffled track AND that track will be written in history, right ?

3. What happens with the history in this case?

i have tracks 1,2,3,4,5.
it play randomly 1,4,3 then i click previous, it goes back to 4.
4 finishes playing. Will it skip to the "same track 3 that was previously written in history" or will it skip to the next of the unplayed track?

4. Also, what happens to the history entry when a song was played 2 times with user interference with previous track button?

5. No matter how much i switch through the playlists, does it REALLY REALLY memorize all the songs per each playlist? ( i've been waiting for this too long, so, naturally i cannot believe you coded it )

I'm asking all this things because i can't really pinpoint what it actually does.
Thanx 
Title: foo_shuffle
Post by: kode54 on 2004-03-10 23:32:17
Quote
1. So, if i understood it correctly, no action can affect mp3s allready written in history, except resetting the history from options. If i use follow cursor, the songs i've marked will be played, but not written in the history ( with a chance of being played again, after the que i selected finished playing ).

Songs that are played manually by use of Follow cursor will be inserted into the history. Replaying a song that is already in the history will move it to the top, rather than inserting it twice.

Quote
2. Using next will skip to the next shuffled track AND that track will be written in history, right ?

Yes.

Quote
3. What happens with the history in this case?

i have tracks 1,2,3,4,5.
it play randomly 1,4,3 then i click previous, it goes back to 4.
4 finishes playing. Will it skip to the "same track 3 that was previously written in history" or will it skip to the next of the unplayed track?

It will skip to 3 again. Then, since there are no more tracks in the history, it will pick a new track.

Quote
4. Also, what happens to the history entry when a song was played 2 times with user interference with previous track button?

The same track cannot be in the history twice, unless it is in your playlist twice. Pressing previous twice will skip back two tracks.

If you use previous to skip back once, let that track finish playing, the press previous again to replay it, it will have no effect on the history. Navigating back or forward in the history does not change it, unless you reach the end. Skipping past the end will cause it to pick new tracks, which will be added to the end.

Quote
5. No matter how much i switch through the playlists, does it REALLY REALLY memorize all the songs per each playlist? ( i've been waiting for this too long, so, naturally i cannot believe you coded it )

Yes.  I designed it that way in the first place, so that the playlist switcher would not interfere with shuffling. The fact that the core can play from one list while you view/edit another was a welcome change.

The only minor problem may come if you do something like add a bunch of duplicate entires, then use "remove duplicates." That option doesn't seem to remove items from any particular place in the list, so you can add dupes, then the existing entries may be removed instead.

Since my history works by playlist item index, already played dupes may be removed from the history. Then, the copies you just added will be replayed again.

There should not be any problems with just reordering the playlist, or adding/removing items manually, or swapping the playlist tabs around.

There is currently a problem if you delete the track which is currently playing. Skipping afterward will probably restart you in the history. The only solutions are to either:

1) Make sure saving is enabled. Stop, quit, restart, skip to previous track. It is designed so that on restart, previous will always skip to the last track played, and play/next will start on a new random track.

2) Skip to a new track and delete the previous one.

Thank you, and have a nice day.
Title: foo_shuffle
Post by: illa on 2004-03-11 01:46:11
Perfect 

Ok, now lemme think ideas:

Optional toolbar:
1. playlist reduction info ( ie. played 34/100 songs in the playlist )
2. reset button ( for current playlist )
3. history browser
4. for the heck of it, put playlist sort buttons ( randomize, file path, artist, title, etc.. )

Misc:
- tab rightclick context menu - reset history
- notifications when played all items from the playlist / resetting the playlist.
- rename shuffle methods as people said, to be more "logical". First glance at the current methods create quite a confusion.

Crazy:
- various statistics about music played throughout a single and all playlists ( listening time, artst most listened to, etc ... )

Thank YOU and have a pretty darn nice day
Title: foo_shuffle
Post by: kode54 on 2004-03-11 05:26:53
Quote
1. playlist reduction info ( ie. played 34/100 songs in the playlist )

I can create a status window at some point.

Quote
2. reset button ( for current playlist )

I'll think about adding a context menu item for this.

Quote
3. history browser

Right, maybe when I add that status window...

Quote
4. for the heck of it, put playlist sort buttons ( randomize, file path, artist, title, etc.. )

That is not really the job of my component. Besides, there is not a universal way to add a toolbar to all user interfaces, at least not that I know of.

Quote
- notifications when played all items from the playlist / resetting the playlist.

When history size is set to 100%, it will stop after it finishes playing the last track. What kind of notification do you want?

Quote
- rename shuffle methods as people said, to be more "logical". First glance at the current methods create quite a confusion.

Goody. I can't think of any better names, and I didn't really like the suggestions that much either. I might change them to the suggested names anyway, though...

Quote
- various statistics about music played throughout a single and all playlists ( listening time, artst most listened to, etc ... )

The core already logs total playback time, shown in realtime in preferences, under Playback -> Status display. Artist/album/etc statistics can be implemented as a separate component.
Title: foo_shuffle
Post by: teetee on 2004-03-11 12:22:17
kode54 I've noticed some odd behaviour which I think may be a bug..

I'm running version 20. I have Shuffle album 2 on. If I have follow cursor off, and I move to look at another playlist, it doesn't stay inside the album I'm playing when it finishes the song it was on.

It jumps to another random song and then plays part of that album before jumping to another random song etc. Not really fitting any of the descriptions of the shuffle modes.. This means I can't use shuffle album 2 mode and look at other playlists
Title: foo_shuffle
Post by: itazura on 2004-03-11 15:30:35
Advance apologies for asking what seems to be a daft question, but how do I access the shuffle play history?  Reading this thread, it seems clear that there is a history maintained somewhere (and yes, I have clicked the "save history" box in the foo_shuffle options page), but for the life of me, I can't figure out how to access it.

Thanks,
itazura
Title: foo_shuffle
Post by: kode54 on 2004-03-11 15:58:33
Why yes, I forgot to post about that.

v1.0.21 uploaded.
Title: foo_shuffle
Post by: teetee on 2004-03-11 20:08:12
Thanks kode54, you (and your fb2k components) really do rock.
Title: foo_shuffle
Post by: itazura on 2004-03-12 00:04:18
Quote
...how do I access the shuffle play history? ....

It occurs to me that maybe I should have provided a bit more information with this question.... 

For starters -- thanks for this great component.  I use it almost exclusively to listen to my collection, usually in "shuffle album 2" or standard "shuffle" mode with some very large (25,000+ item) playlists.  I use an FM transmitter to broadcast the output from the computer to various tuners elsewhere in the house.  The effect is that I get something like my own little personal radio station playing only stuff that I like (with foo_shuffle ensuring that tracks/albums don't get repeated).

At any rate, I'll often hear a song playing while I'm away from my computer and later I'll want to go back and confirm the artist or album information (my modest brain cannot always keep track of my out of control music collection).  Can the shuffle history from foo_shuffle be opened and viewed somehow, allowing me to scroll back through, say, the past 50, 100 or 1000 items played?  I know that I can go to "components" --> "show console" to see a list of the most recently played items -- but that list is limited to items played since the program was last launched, and it also seems to be limited to a finite number of entries.

Thanks for your feedback,
itazura
Title: foo_shuffle
Post by: kode54 on 2004-03-12 00:17:58
Not at this time, but I may add a dialog for this some time soon...
Title: foo_shuffle
Post by: itazura on 2004-03-12 00:58:39
Quote
Not at this time, but I may add a dialog for this some time soon...

Well that explains why I couldn't figure out how to access it!  Thanks for clearing that up.
Title: foo_shuffle
Post by: lav-chan on 2004-03-13 22:21:35
I suppose that works for me. Thanks, kode54. :,)
Title: foo_shuffle
Post by: amppa on 2004-03-14 02:39:34
Quote
Can the shuffle history from foo_shuffle be opened and viewed somehow, allowing me to scroll back through, say, the past 50, 100 or 1000 items played?  I know that I can go to "components" --> "show console" to see a list of the most recently played items -- but that list is limited to items played since the program was last launched, and it also seems to be limited to a finite number of entries.

Thanks for your feedback,
itazura

You could use foo_text to write down all the tracks you play.
Title: foo_shuffle
Post by: Der_Iltis on 2004-03-14 11:04:29
or foo_history with user defined string...
Title: foo_shuffle
Post by: piero on 2004-03-14 14:21:25
Sorry, a simple question: where can I get it?
Title: foo_shuffle
Post by: The Link on 2004-03-14 14:26:33
http://www.hydrogenaudio.org/forums/index....howtopic=19611& (http://www.hydrogenaudio.org/forums/index.php?showtopic=19611&)
Title: foo_shuffle
Post by: Prodoc on 2004-03-15 17:48:55
A small bug in the latest release (1.0.21) of foo_shuffle causes a song to be played twice is you dubbel click on the first song of an album you want to hear if you are in "shuffle album 2" mode.

Also is it possible to change the behavior of the random next button to alway select the first track of an album if in "shuffle album 2" mode?
Title: foo_shuffle
Post by: kode54 on 2004-03-15 20:42:37
The behavior of the core's random and next/random functions are beyond my control.

As for double clicking, that's not something I can easily monitor. Sure, I can have a play_callback do this, but that's a bit hackish, especially since I get those callbacks regardless of whether shuffle is enabled or not. So, I'd have to check for a shuffle flow control being enabled, then mark the current track if it hasn't already been marked as played.

I'll think about it.
Title: foo_shuffle
Post by: Prodoc on 2004-03-15 22:19:17
It might not be the dubbel clicking specifically, it's the manual starting to play the first track of an album. If it becomes to complicated to implement you can leave it out np, I can life with it. I just though I should mention this behavior in case you didn't know about it.
Title: foo_shuffle
Post by: Zoominee on 2004-03-16 14:05:35
Quote
A small bug in the latest release (1.0.21) of foo_shuffle causes a song to be played twice is you dubbel click on the first song of an album you want to hear if you are in "shuffle album 2" mode.

Hi! I think the problem that is reported here is more general... Here's my "uninsightful" explanation of the reason that the track plays twice (maybe kode54 can confirm that this is how his code works):

The song (which you dubbelklicked to play it) ends and the next song has to be determined, so foo_shuffle is engaged. Foo_shuffle looks in its history, sees that from the same album the song which just has finished playing hasn't been started (by foo_shuffle) before - so it's the first unplayed song on the album and gets played next.

An easy fix would be to force foo_shuffle to check at the end of a song that it's contained in the foo_shuffle history. I guess usually that history contains songs because foo_shuffle started to play them, but it would be much better to put them into the history when they end playing (or at least make sure they're ticked as "played" then).

The other issue is, which song do you want to hear after, say, track 5 in an album was played? Do you want to hear track 6 next, or the first unplayed song in the album? In the latter case, you'll probably hear track 1 if you've dubbelklicked track 5 to begin with. Or, if you only have one track from that album on the list, you'll hear it again as it's the first one and not ticked.

kode - I don't know if you can easily find out "last track played" when foo_shuffle is asked to give the next track to play. But then it'd be easy to fix the history issue (the first point that I mention here). The other issue is about identifying if "next in album" means the track that has the next highest tracknumber from the track that just finished, or the track that has the least highest tracknumber and hasn't been played yet. I would vote for the first definition, but this is really just a matter of preference.
Title: foo_shuffle
Post by: kode54 on 2004-03-16 14:40:44
v1.0.22 uploaded.

Now, if you manually play a track in the visible playlist while a shuffle mode is enabled, it will be added to the top of the history if it hasn't already been marked as played. (If I always mark the tracks, it will kill history navigation. :B)
Title: foo_shuffle
Post by: nIRV on 2004-03-22 07:57:09
I was wondering if you could add (or if there's already a way) to make the history reset when pressing stop ... the current behaviour that I can see is that the shuffling history will keep going on even after a stop (which can be useful), but there should be a way to reset the history every time you press play

I guess when you quit and restart foobar, the shuffle history is still persistant too? if so you should make this option too ...

<X> Remember shuffle history accross multiple playback
  and
<X> Remember shuffle history accross multiple session of fb2k

Thanks for that component anyway
nIRV
Title: foo_shuffle
Post by: julien_32 on 2004-03-22 17:44:43
Some suggestions:and thank you for your component.
Title: foo_shuffle
Post by: Luckz on 2004-03-25 15:35:45
nIRV, would a bindable "wipe history" button do that?
Title: foo_shuffle
Post by: nIRV on 2004-03-26 02:50:48
basicaly yes , a command menu where I could assign a keyboard shortcut but for me what I requested should be a basic option (much like foo_history which offers to remember or _not_ the history between new sessions)
Title: foo_shuffle
Post by: CrazyCoder on 2004-04-02 11:34:05
I've noticed the odd behavior, I'll try to explain it.

I'm playing songs in the playlist using shuffle, say they are played in the following order: A->B->C->D .

Then I manually adjust to A, and foobar plays B->C->D->etc then. Not good since sometimes I want to listen to A several times and then there is no use of shuffle, all the rest songs are played in the same order.

I have no much time to figure it out, however, I've downloaded the sources of your plug-in and noticed that you are using mt19937 random generator but do not provide the source for the mt_rand class.

So, I've found the mt19937 implementation in C and created a wrapper C++ class for it to make the compiler happy. I've noticed that the generator should be initialized by some seed and I've added the appropriate code into the constructor:

init_genrand(time(0));

I've compiled and tried it. Guess what? I no longer experience the behavior described above, when I manually adjust to A random songs are played then...

Could you please provide any comment on this?

If you are interested, you can get the sources and binary here:
http://amip.tools-for.net/foo_shuffle_comm.zip (http://amip.tools-for.net/foo_shuffle_comm.zip)
Title: foo_shuffle
Post by: kode54 on 2004-04-02 17:46:53
Maybe I need to rename the component to foo_shuffle_see_description.
Title: foo_shuffle
Post by: CrazyCoder on 2004-04-02 18:13:13
Quote
Maybe I need to rename the component to foo_shuffle_see_description.

Ok, after reading the entire thread I got it, sorry for the useless post.
Title: foo_shuffle
Post by: Prodoc on 2004-04-03 01:35:21
Quote
  • with shuffle album 2, when random button is pressed, play the FIRST track of a (random) album.

As stated one page back:
Quote
The behavior of the core's random and next/random functions are beyond my control.

Quote
  • please, change shuffle modes names

As stated a couple of times (one page back as well):
Quote
Goody. I can't think of any better names, and I didn't really like the suggestions that much either. I might change them to the suggested names anyway, though...

There's a reason why older posts stay visible in a discussion forum, this way it's possible to read the discussion history to know what was been talked about before...
I admit some things are a bit hard to find using the search function every once and a while but these suggestions aren't hard to find because they are made before (some multiple times) in this same thread.
Title: foo_shuffle
Post by: nIRV on 2004-04-03 03:30:20
I'ld like to see one thing added to foo_shuffle sooner or later (you could guess sooner is prefered  ), imo its a big lack

right now in foobar we can repeat, or shuffle ... I would like to shuffle _and_ repeat once the playlist has been all shuffled ... so maybe an option in the preference like

[ x ] restart playback once playlist(s) done

thanks
Title: foo_shuffle
Post by: Prodoc on 2004-04-03 14:28:13
About using a different name for the album shuffle modes, what about "Shuffle Albums" and "Shuffle in Album"?
Or maybe "Shuffle Album (ASC)" and "Shuffle Album (RND)" but those might not be as descriptive to everyone.

Edit: on second thought, "Album Shuffle" and "Shuffle in Album" would be even better but that breaks the list placing Shuffle at the beginning. If that's no problem maybe "Shuffle" should be changed to "Track Shuffle" as well and "Shuffle tag set" to "Tag set Shuffle".
Title: foo_shuffle
Post by: mazy on 2004-04-05 11:24:19
good possible names, Prodoc
Title: foo_shuffle
Post by: nyarlathotep on 2004-04-10 13:00:00
Something I've noticed:
- open foobar2000, shuffle order mode on, playback / follow cursor on
- double click on track A
- put cursor on track B
- wait till track A has ended being player and track B is being played
- press Next while track B is being played or wait till track B has ended being played -> track A is being played again

Intended behaviour or have I missed something (then sorry for that)?

edit: clarification.
Title: foo_shuffle
Post by: kode54 on 2004-04-10 15:08:16
Are you sure you enabled one of the shuffle modes before starting track A? Try this:

- Set playback order to Shuffle
- Create new playlist
- Add some tracks to the new list
- Double click one of the tracks
- Skip forward with the next track button a few times
- Skip backward

When skipping backwards, is the track you double click played, or does it stop playing after skipping back past the first randomly selected track?
Title: foo_shuffle
Post by: nyarlathotep on 2004-04-10 15:40:15
Yes, one of the shuffle modes before starting track A.

When skipping backwards, it stops playing after skipping back past the first randomly selected track (track A is not played again).
Title: foo_shuffle
Post by: nIRV on 2004-04-12 03:58:05
kode I would really appreciate if you could at least answer on the requests I posted before (like say "I dont want to lose my precious time to code what you want" or "yeah ok good ideas, I'll do them one day") .. you know, just a way for me to know if I will have to edit the source by myself ...

resume of the points I noted that foo_shuffle is missing
* a way to do shuffle _and_ repeat once the playback stop
* a way to forget history when you restart foobar

nIRV
Title: foo_shuffle
Post by: Prodoc on 2004-04-12 11:20:57
...suppose he had to responde to all the feature requests for the plugins he made... ;-)
Title: foo_shuffle
Post by: nIRV on 2004-04-13 02:25:32
he doesnt have to, that's why I wrote that it would be appreciated ... nevertheless I think those two points are somewhat important and not just esthetic things (it's true that right now we cannot shuffle&repeat in fb2k)
Title: foo_shuffle
Post by: kode54 on 2004-04-13 12:36:50
Quote
Yes, one of the shuffle modes before starting track A.

When skipping backwards, it stops playing after skipping back past the first randomly selected track (track A is not played again).

This is apparently a race condition with the play_callback. I get my on_playback_new_track() call before the playlist engine gets its own call, so playlist_oper::get_now_playing() always returns -1 and manually triggered tracks will not be marked.

I have added a message window to deal with the problem, so now it works as intended to with the 1.0.22 release.
Title: foo_shuffle
Post by: nyarlathotep on 2004-04-13 12:46:57
Thank you.

(I guess you mean "1.0.23 release")
Title: foo_shuffle
Post by: kode54 on 2004-04-13 13:47:24
No, I mean that I thought I fixed that with 1.0.22, but now it really is fixed with 1.0.23. :B
Title: foo_shuffle
Post by: Mr_Rabid_Teddybear on 2004-04-25 03:53:05
I had a serious crash that seems related to foo_shuffle. I'm using XP sp1 and fb2k 0.8.1. And checking your site right now it seems you just recompiled foo_shuffle yesterday, so maybe this report is redundant now, but otherwise I was using last compile before present.
What happend was that I was playing a playlist in "shuffle" mode. (The playlist was of three days playtime and I was streaming it out with Oddcast2/Icecast2.)
It had reached end of playlist and playback had stopped. The settings was that I had "history" slider set to max and "save" function activated and the rest of the sliders was just default. I then decided to shut down fb2k.
While shutting down fb2k generated a crashlog and foobar2000.exe just remained a dead hanging process in task manager, and had to be killed manually.
Also foobar2000.cfg and database.foo got exterminated. Fortunatly I keep backup of these (once burned....), otherwise there would have been tears.
Starting and shutting down foobar after this resulted in same; foobar2000.exe a hanging dead process that had to be killed off via task manager. I tried some reinstalling and such before I found the cure; reset foo_shuffle by deleting it, restart fb2k a couple of times (for good measure), then putting it back. Now it seems to work fine. Summary: Problem seems to have been related to reaching end of playlist in shuffle playback mode with max history size and save history activated, then shutting down fb2k afterwards.

Ok, enough of this rambling. All else besides, I love your plugins, kode54, and use most of them to great satisfaction and have had very few problems. 

And now for something useful (maybe), the crashlog:
Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 77C435D1h
Access violation, operation: write, address: 00000000h
Call path:
WinMain=>app_shutdown
This is the first crash logged by this instance.
Code bytes (77C435D1h):
77C43591h:  54 24 0C 8B 4C 24 04 85 D2 74 47 33 C0 8A 44 24
77C435A1h:  08 57 8B F9 83 FA 04 72 2D F7 D9 83 E1 03 74 08
77C435B1h:  2B D1 88 07 47 49 75 FA 8B C8 C1 E0 08 03 C1 8B
77C435C1h:  C8 C1 E0 10 03 C1 8B CA 83 E2 03 C1 E9 02 74 06
77C435D1h:  F3 AB 85 D2 74 06 88 07 47 4A 75 FA 8B 44 24 08
77C435E1h:  5F C3 8B 44 24 04 C3 CC CC CC CC CC CC CC CC 8D
77C435F1h:  42 FF 5B C3 8D A4 24 00 00 00 00 8D 64 24 00 33
77C43601h:  C0 8A 44 24 08 53 8B D8 C1 E0 08 8B 54 24 08 F7
Stack (0012FDACh):
0012FD8Ch:  805080DB F3E1ECE4 818489E8 C0503000
0012FD9Ch:  812D0FA8 1E0A7000 00000000 00000000
0012FDACh:  00000317 01FC1A3A 00000000 000000FF
0012FDBCh:  FFE0085C 00000001 01FC6B94 00000007
0012FDCCh:  00000000 FFE0085C FFE0085C 00000000
0012FDDCh:  0012FDF8 01FC1981 0012FE1C 00000002
0012FDECh:  00000000 01FC60FC 0012FE64 0012FE30
0012FDFCh:  01FC1920 0012FE1C 00000002 01FC4708
0012FE0Ch:  0012FE1C 00000000 0000007C 00000058
0012FE1Ch:  01FC5670 016B14C0 00000008 00000005
0012FE2Ch:  00000002 0012FE8C 01FC41F5 0012FE64
0012FE3Ch:  00401EA6 0012FE64 00000014 0B47C038
0012FE4Ch:  00000000 FFFFFFFF 77C2AC19 77C2AC2A
0012FE5Ch:  00000008 77C28930 004394B8 0B5F8290
0012FE6Ch:  00010000 00000000 00000002 0BCC0048
0012FE7Ch:  00020000 00011433 00000002 0BDD4D90
0012FE8Ch:  0012FEA8 0040B2BA 0BDD4D90 0B47C038
0012FE9Ch:  00000000 004394C4 00000000 0012FED4
0012FEACh:  00401E03 00401E18 0BDD4D90 00000000
0012FEBCh:  0043946C 0BDD4D90 0000002A 0000002A
Registers:
EAX: FFFFFFFF, EBX: 00000000, ECX: 3FF80217, EDX: 00000000
ESI: 016E01E0, EDI: 00000000, EBP: 0012FDDC, ESP: 0012FDAC
Crash location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "memset" (+00000041h)

Loaded modules:
foobar2000                       loaded at 00400000h - 00451000h
ntdll                            loaded at 77F50000h - 77FF7000h
kernel32                         loaded at 77E60000h - 77F46000h
USER32                           loaded at 77D40000h - 77DCC000h
GDI32                            loaded at 7E090000h - 7E0D1000h
ADVAPI32                         loaded at 77DD0000h - 77E5D000h
RPCRT4                           loaded at 78000000h - 78087000h
ole32                            loaded at 771B0000h - 772D4000h
COMCTL32                         loaded at 71950000h - 71A34000h
msvcrt                           loaded at 77C10000h - 77C63000h
SHLWAPI                          loaded at 70A70000h - 70AD5000h
utf8api                          loaded at 10000000h - 1000D000h
comdlg32                         loaded at 763B0000h - 763F5000h
SHELL32                          loaded at 773D0000h - 77BC2000h
IMM32                            loaded at 76390000h - 763AC000h
LPK                              loaded at 629C0000h - 629C8000h
USP10                            loaded at 72FA0000h - 72FFA000h
foo_abx                          loaded at 003F0000h - 003FC000h
foo_ac3                          loaded at 00940000h - 00953000h
foo_albumlist                    loaded at 00960000h - 0096A000h
foo_ape                          loaded at 00970000h - 0098F000h
foo_apl                          loaded at 00990000h - 0099A000h
foo_balance                      loaded at 009A0000h - 009B1000h
foo_beammeup                     loaded at 009C0000h - 009CB000h
foo_bitcompare                   loaded at 009D0000h - 009D8000h
foo_brr                          loaded at 009E0000h - 009EA000h
foo_burninate                    loaded at 009F0000h - 009FC000h
VERSION                          loaded at 77C00000h - 77C07000h
foo_cdda                         loaded at 00A00000h - 00A0E000h
foo_centercut                    loaded at 00A10000h - 00A17000h
foo_clienc                       loaded at 00A20000h - 00A2B000h
foo_codepage_action              loaded at 00A30000h - 00A37000h
foo_console                      loaded at 00A40000h - 00A47000h
foo_convolve                     loaded at 00A50000h - 00AA3000h
foo_cue_ex                       loaded at 00AB0000h - 00ABB000h
foo_custom_sort                  loaded at 00AC0000h - 00AC8000h
foo_dbsearch                     loaded at 00AD0000h - 00AE6000h
foo_Delete                       loaded at 00AF0000h - 00B03000h
foo_diskwriter                   loaded at 00B10000h - 00B22000h
WINMM                            loaded at 76B40000h - 76B6C000h
sfvmr                            loaded at 6BC00000h - 6BC08000h
myokent                          loaded at 00BB0000h - 00BBA000h
foo_dsp_continuator              loaded at 00BC0000h - 00BC8000h
foo_dsp_crossfade                loaded at 00BD0000h - 00BD7000h
foo_dsp_crossfeed                loaded at 00BE0000h - 00BE6000h
foo_dsp_extra                    loaded at 00BF0000h - 00C05000h
foo_dsp_ExtraStereo              loaded at 00C10000h - 00C17000h
foo_dsp_headphones               loaded at 00C20000h - 00C73000h
OLEAUT32                         loaded at 77120000h - 771AB000h
NTMARTA                          loaded at 76CE0000h - 76CFF000h
WLDAP32                          loaded at 76F60000h - 76F8C000h
SAMLIB                           loaded at 71BF0000h - 71C01000h
foo_dsp_mute                     loaded at 00ED0000h - 00ED7000h
foo_dsp_nogaps                   loaded at 00EE0000h - 00EE7000h
foo_dsp_pause                    loaded at 00EF0000h - 00EF7000h
foo_dsp_pitch                    loaded at 00F00000h - 00F0A000h
foo_dsp_reverb                   loaded at 00F10000h - 00F17000h
foo_dsp_skip_silence             loaded at 00F20000h - 00F27000h
foo_dsp_soundtouch               loaded at 00F30000h - 00F3B000h
MSVCP60                          loaded at 55900000h - 55961000h
foo_dsp_Spatial3D                loaded at 00F40000h - 010D2000h
foo_dsp_surr                     loaded at 010E0000h - 010E8000h
foo_dsp_white_noise              loaded at 010F0000h - 010F7000h
foo_dsp_wider                    loaded at 01100000h - 01107000h
foo_dsp_xbass                    loaded at 01110000h - 0111E000h
foo_dynamics                     loaded at 01120000h - 01127000h
foo_explorer                     loaded at 01130000h - 01138000h
foo_faac                         loaded at 01140000h - 01173000h
foo_festalon                     loaded at 01180000h - 012BF000h
foo_flac                         loaded at 012C0000h - 012D6000h
foo_flaccer                      loaded at 012E0000h - 012F6000h
foo_freedb                       loaded at 01300000h - 01332000h
WS2_32                           loaded at 71AB0000h - 71AC4000h
WS2HELP                          loaded at 71AA0000h - 71AA8000h
foo_history                      loaded at 01340000h - 0134F000h
foo_id3v2                        loaded at 01350000h - 0137E000h
foo_infobox                      loaded at 01380000h - 01393000h
foo_infobox_simple               loaded at 013A0000h - 013A7000h
foo_info_samurize                loaded at 013B0000h - 013CD000h
LgWndHk                          loaded at 013F0000h - 013F7000h
foo_input_std                    loaded at 01400000h - 014A2000h
MSACM32                          loaded at 77BE0000h - 77BF4000h
foo_la                           loaded at 014B0000h - 014CB000h
la-core                          loaded at 014D0000h - 01543000h
OLEACC                           loaded at 74C80000h - 74CAC000h
WINSPOOL                         loaded at 73000000h - 73023000h
foo_lame                         loaded at 01690000h - 01699000h
foo_lpac                         loaded at 017A0000h - 017A7000h
lpac_codec_api                   loaded at 017B0000h - 017BA000h
lpaccodec                        loaded at 017C0000h - 017E9000h
foo_mad                          loaded at 01A10000h - 01A2B000h
foo_masstag                      loaded at 01A30000h - 01A40000h
foo_matroska                     loaded at 01A40000h - 01A7F000h
foo_midi                         loaded at 01A80000h - 01A9B000h
MFC42                            loaded at 73DD0000h - 73EC2000h
foo_minibar                      loaded at 01AA0000h - 01AAB000h
MSVCR71                          loaded at 7C340000h - 7C396000h
foo_mod                          loaded at 01AC0000h - 01AC9000h
BASS                             loaded at 01AD0000h - 01B2A000h
foo_monkey                       loaded at 01B30000h - 01B4D000h
foo_mpcenc                       loaded at 01B50000h - 01B58000h
foo_mpeg4u                       loaded at 01B60000h - 01B89000h
foo_music_title_bar              loaded at 01B90000h - 01BAC000h
foo_nez                          loaded at 01BC0000h - 01BEC000h
foo_null                         loaded at 01BF0000h - 01BF7000h
foo_ofr                          loaded at 01C00000h - 01C06000h
OptimFROG                        loaded at 01C10000h - 01C3F000h
foo_oggpreview                   loaded at 01C50000h - 01D4D000h
foo_osd                          loaded at 01D50000h - 01D5D000h
gdiplus                          loaded at 70D00000h - 70EA1000h
foo_output_asio(dll)             loaded at 01D70000h - 01DA1000h
foo_output_asio(exe)             loaded at 01DC0000h - 01DEC000h
foo_output_std                   loaded at 01E00000h - 01E09000h
foo_out_dsound_ex                loaded at 01E10000h - 01E19000h
DSOUND                           loaded at 51080000h - 510DA000h
foo_out_ks                       loaded at 01E30000h - 01E3B000h
SETUPAPI                         loaded at 76670000h - 76757000h
foo_playlistgen                  loaded at 01E40000h - 01E4A000h
foo_psf                          loaded at 01E50000h - 01EFC000h
foo_quicktag                     loaded at 01F00000h - 01F09000h
foo_read_http                    loaded at 01F10000h - 01F19000h
foo_record                       loaded at 01F20000h - 01F2E000h
foo_rgscan                       loaded at 01F30000h - 01F3B000h
foo_scheduler                    loaded at 01F40000h - 01F52000h
foo_scroll                       loaded at 01F60000h - 01F66000h
foo_search_ex                    loaded at 01F70000h - 01F78000h
foo_send_to_pl                   loaded at 01F80000h - 01F89000h
foo_setyear                      loaded at 01F90000h - 01FA2000h
foo_shn                          loaded at 01FB0000h - 01FBE000h
foo_shuffle                      loaded at 01FC0000h - 01FC9000h
foo_sid                          loaded at 01FD0000h - 02017000h
foo_spc                          loaded at 02020000h - 0202F000h
foo_speex                        loaded at 02030000h - 02048000h
foo_stfu                         loaded at 02050000h - 02057000h
foo_syfm                         loaded at 02060000h - 0206A000h
foo_text#2                       loaded at 02070000h - 0207C000h
foo_text                         loaded at 02080000h - 0208C000h
foo_tfmx                         loaded at 02090000h - 02099000h
foo_toolame                      loaded at 020A0000h - 020B3000h
foo_tradersfriend                loaded at 020C0000h - 020CC000h
foo_tta                          loaded at 020D0000h - 020F0000h
foo_tunes                        loaded at 020F0000h - 02164000h
foo_ui_columns                   loaded at 02170000h - 02193000h
foo_ui_notepad                   loaded at 021A0000h - 021B0000h
foo_ui_std                       loaded at 021B0000h - 021C7000h
foo_unpack                       loaded at 021D0000h - 02201000h
foo_unpack_cab                   loaded at 02210000h - 0221F000h
foo_unpack_gca                   loaded at 02220000h - 02238000h
foo_unpack_lha                   loaded at 02240000h - 02248000h
UNLHA32                          loaded at 02250000h - 02297000h
foo_utils                        loaded at 026B0000h - 026BD000h
foo_vis_bacon                    loaded at 026C0000h - 026D2000h
foo_vis_bubbla                   loaded at 026E0000h - 026F4000h
OPENGL32                         loaded at 5ED00000h - 5EDC6000h
GLU32                            loaded at 68B20000h - 68B3E000h
DDRAW                            loaded at 51000000h - 5104D000h
DCIMAN32                         loaded at 73BC0000h - 73BC6000h
foo_vis_manager                  loaded at 0A600000h - 0A608000h
foo_vis_samurize2                loaded at 0A610000h - 0A636000h
foo_vis_simple_spectrum          loaded at 0A750000h - 0A75A000h
foo_vis_stereo                   loaded at 0A760000h - 0A7E8000h
foo_vis_test                     loaded at 0A7F0000h - 0A7F9000h
foo_vis_vu_meter                 loaded at 0A800000h - 0A808000h
foo_vorbisenc                    loaded at 0A810000h - 0A90A000h
foo_vorbisenc_gt3                loaded at 0A910000h - 0AA09000h
foo_wavpack                      loaded at 0AA10000h - 0AA1B000h
foo_web                          loaded at 0AA20000h - 0AA39000h
foo_wma                          loaded at 0AA40000h - 0AA59000h
WMVCore                          loaded at 0AA60000h - 0AC5D000h
WMASF                            loaded at 0AC60000h - 0AC99000h
foo_xa                           loaded at 0ACA0000h - 0ACAF000h
foo_oddcast                      loaded at 0ACB0000h - 0AE5B000h
vorbis                           loaded at 0AE60000h - 0AF68000h
ogg                              loaded at 0AF70000h - 0AF79000h
BASSWMA                          loaded at 10100000h - 1011C000h
msctfime                         loaded at 0B1A0000h - 0B1CB000h
UxTheme                          loaded at 5AD70000h - 5ADA4000h
Msimtf                           loaded at 746F0000h - 74716000h
MSCTF                            loaded at 74720000h - 74764000h
Powrprof                         loaded at 74AD0000h - 74AD7000h
LgMsgHk                          loaded at 0B960000h - 0B96B000h
Amhooker                         loaded at 0B1F0000h - 0B1F9000h
mswsock                          loaded at 71A50000h - 71A8B000h
DNSAPI                           loaded at 76F20000h - 76F45000h
winrnr                           loaded at 76FB0000h - 76FB7000h
rasadhlp                         loaded at 76FC0000h - 76FC5000h
wshtcpip                         loaded at 71A90000h - 71A98000h
ksuser                           loaded at 5EF80000h - 5EF84000h
VDETECT                          loaded at 013E0000h - 013E5000h
imagehlp                         loaded at 76C90000h - 76CB2000h
DBGHELP                          loaded at 6D510000h - 6D58D000h

Stack dump analysis:
Address: 01FC1A3Ah, location: "foo_shuffle", loaded at 01FC0000h - 01FC9000h
Address: 01FC6B94h, location: "foo_shuffle", loaded at 01FC0000h - 01FC9000h
Address: 01FC1981h, location: "foo_shuffle", loaded at 01FC0000h - 01FC9000h
Address: 01FC60FCh, location: "foo_shuffle", loaded at 01FC0000h - 01FC9000h
Address: 01FC1920h, location: "foo_shuffle", loaded at 01FC0000h - 01FC9000h
Address: 01FC4708h, location: "foo_shuffle", loaded at 01FC0000h - 01FC9000h
Address: 01FC5670h, location: "foo_shuffle", loaded at 01FC0000h - 01FC9000h
Address: 01FC41F5h, location: "foo_shuffle", loaded at 01FC0000h - 01FC9000h
Address: 00401EA6h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 77C2AC19h, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "free" (+000001AEh)
Address: 77C2AC2Ah, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "free" (+000001BFh)
Address: 77C28930h, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "operator new" (+0000000Bh)
Address: 004394B8h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0040B2BAh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394C4h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00401E03h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00401E18h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0043946Ch, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0041236Ah, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394BCh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00410D9Fh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394C4h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00438885h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004388B0h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0043C278h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 77E814C7h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "GetCurrentDirectoryW" (+00000044h)
Address: 77E94809h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "SetThreadExecutionState" (+00000097h)
Address: 77E91210h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "OpenConsoleW" (+0000EDBEh)
Address: 00438751h, location: "foobar2000", loaded at 00400000h - 00451000h

Version info:
foobar2000 v0.8.1
UNICODE


(EDIT:
BTW: here (http://www.hydrogenaudio.org/forums/index.php?showtopic=21029&view=findpost&p=205841) seems to be another one with a problem that seems relevant to this thread.)
Title: foo_shuffle
Post by: kode54 on 2004-04-25 06:41:36
I cannot reproduce immediately. Can you reproduce with only a small history?


Meh, this plug-in is becoming quite troublesome. Mainly because I used such a crazy design.
Title: foo_shuffle
Post by: Raederle on 2004-04-26 19:35:41
Given its possible to make a quick playlist with all of the songs from the desired genre's from the album list, being able to restrict to specific multiple genres or artists strikes me as possible already.  However I've run into something I haven't figured out a way to do.  I listen mostly to classical music, where several works are often available on one disk.  After some fumbling around I finally settled on leaving the album names alone (splitting up each cdimage by work was proving to be a pain), and tagging titles into work and part.  For tagging and display that has worked fine, but it means that album 2 play doesn't quite work well for me, since I end up going through all three or four concertoes on one album before moving on.

Will it ever be possible to substitute another tag for %album%?  I could easily then use the album 2 style shuffle to play works, or add/subtract a usetag on the fly for the sequencing I wanted (yeaaaa ap3v2).  Currently the tagset functionality doesn't increment tracks well as far as I've been able to play with it.

And yes, even if that doesn't fly, no grumbles.  This is a very fine tool in its current state and your work is appreciated.

Raederle
Title: foo_shuffle
Post by: Mr_Rabid_Teddybear on 2004-04-27 23:52:36
Quote
I cannot reproduce immediately. Can you reproduce with only a small history?


Meh, this plug-in is becoming quite troublesome. Mainly because I used such a crazy design.

Sorry I didn't come back to you sooner, I haven't been home. Yes, I have reproduced the crash 2 times now, first with the long playlist (3 days - 791 songs) and then with a short playlist (50 minutes - 20 songs). This time I deleted foo_tunes (regarding this thread (http://www.hydrogenaudio.org/forums/index.php?showtopic=21048&hl=foo_tunes)) and added latest compile of foo_shuffle.

When disabling history saving and running playlist again, then shutting fb2k down, this behavior do not occur, only with history size max and history saving activated.

The crashlogs:

After long playlist:

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 77C435D1h
Access violation, operation: write, address: 00000000h
Call path:
WinMain=>app_shutdown
This is the first crash logged by this instance.
Code bytes (77C435D1h):
77C43591h:  54 24 0C 8B 4C 24 04 85 D2 74 47 33 C0 8A 44 24
77C435A1h:  08 57 8B F9 83 FA 04 72 2D F7 D9 83 E1 03 74 08
77C435B1h:  2B D1 88 07 47 49 75 FA 8B C8 C1 E0 08 03 C1 8B
77C435C1h:  C8 C1 E0 10 03 C1 8B CA 83 E2 03 C1 E9 02 74 06
77C435D1h:  F3 AB 85 D2 74 06 88 07 47 4A 75 FA 8B 44 24 08
77C435E1h:  5F C3 8B 44 24 04 C3 CC CC CC CC CC CC CC CC 8D
77C435F1h:  42 FF 5B C3 8D A4 24 00 00 00 00 8D 64 24 00 33
77C43601h:  C0 8A 44 24 08 53 8B D8 C1 E0 08 8B 54 24 08 F7
Stack (0012FDACh):
0012FD8Ch:  805080DB EFAB7CE4 81862BC8 C0503000
0012FD9Ch:  81119D30 0BBE2000 C002D46C 81119D30
0012FDACh:  00000317 01FE196D 00000000 000000FF
0012FDBCh:  FFE0085C 00000001 01FE6B5C 00000007
0012FDCCh:  00000000 FFE0085C FFE0085C 00000000
0012FDDCh:  0012FDF8 01FE18B4 0012FE1C 00000002
0012FDECh:  00000000 01FE60A4 0012FE64 0012FE30
0012FDFCh:  01FE1853 0012FE1C 00000002 01FE46B5
0012FE0Ch:  0012FE1C 00000000 0000007C 0000005A
0012FE1Ch:  01FE5650 0BD81C70 00000008 00000005
0012FE2Ch:  00000002 0012FE8C 01FE41D5 0012FE64
0012FE3Ch:  00401EA6 0012FE64 00000014 016C7028
0012FE4Ch:  00000000 FFFFFFFF 77C2AC19 77C2AC2A
0012FE5Ch:  00000008 77C28930 004394B8 0B45E290
0012FE6Ch:  00010000 00000000 00000002 0B509FE8
0012FE7Ch:  00020000 000118DC 00000002 016B09D8
0012FE8Ch:  0012FEA8 0040B2BA 016B09D8 016C7028
0012FE9Ch:  00000000 004394C4 00000000 0012FED4
0012FEACh:  00401E03 00401E18 016B09D8 00000000
0012FEBCh:  0043946C 016B09D8 0000002A 0000002A
Registers:
EAX: FFFFFFFF, EBX: 00000000, ECX: 3FF80217, EDX: 00000000
ESI: 016DF818, EDI: 00000000, EBP: 0012FDDC, ESP: 0012FDAC
Crash location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "memset" (+00000041h)

Loaded modules:
foobar2000                       loaded at 00400000h - 00451000h
ntdll                            loaded at 77F50000h - 77FF7000h
kernel32                         loaded at 77E60000h - 77F46000h
USER32                           loaded at 77D40000h - 77DCC000h
GDI32                            loaded at 7E090000h - 7E0D1000h
ADVAPI32                         loaded at 77DD0000h - 77E5D000h
RPCRT4                           loaded at 78000000h - 78087000h
ole32                            loaded at 771B0000h - 772D4000h
COMCTL32                         loaded at 71950000h - 71A34000h
msvcrt                           loaded at 77C10000h - 77C63000h
SHLWAPI                          loaded at 70A70000h - 70AD5000h
utf8api                          loaded at 10000000h - 1000D000h
comdlg32                         loaded at 763B0000h - 763F5000h
SHELL32                          loaded at 773D0000h - 77BC2000h
IMM32                            loaded at 76390000h - 763AC000h
LPK                              loaded at 629C0000h - 629C8000h
USP10                            loaded at 72FA0000h - 72FFA000h
foo_abx                          loaded at 003F0000h - 003FC000h
foo_ac3                          loaded at 00940000h - 00953000h
foo_albumlist                    loaded at 00960000h - 0096A000h
foo_ape                          loaded at 00970000h - 0098F000h
foo_apl                          loaded at 00990000h - 0099A000h
foo_balance                      loaded at 009A0000h - 009B1000h
foo_beammeup                     loaded at 009C0000h - 009CB000h
foo_bitcompare                   loaded at 009D0000h - 009D8000h
foo_brr                          loaded at 009E0000h - 009EA000h
foo_burninate                    loaded at 009F0000h - 009FC000h
VERSION                          loaded at 77C00000h - 77C07000h
foo_cdda                         loaded at 00A00000h - 00A0E000h
foo_centercut                    loaded at 00A10000h - 00A17000h
foo_clienc                       loaded at 00A20000h - 00A2B000h
foo_codepage_action              loaded at 00A30000h - 00A37000h
foo_console                      loaded at 00A40000h - 00A47000h
foo_convolve                     loaded at 00A50000h - 00AA3000h
foo_cue_ex                       loaded at 00AB0000h - 00ABB000h
foo_custom_sort                  loaded at 00AC0000h - 00AC8000h
foo_dbsearch                     loaded at 00AD0000h - 00AE6000h
foo_Delete                       loaded at 00AF0000h - 00B03000h
foo_diskwriter                   loaded at 00B10000h - 00B22000h
WINMM                            loaded at 76B40000h - 76B6C000h
sfvmr                            loaded at 6BC00000h - 6BC08000h
myokent                          loaded at 00BB0000h - 00BBA000h
foo_dsp_continuator              loaded at 00BC0000h - 00BC8000h
foo_dsp_crossfade                loaded at 00BD0000h - 00BD7000h
foo_dsp_crossfeed                loaded at 00BE0000h - 00BE6000h
foo_dsp_extra                    loaded at 00BF0000h - 00C05000h
foo_dsp_ExtraStereo              loaded at 00C10000h - 00C17000h
foo_dsp_headphones               loaded at 00C20000h - 00C73000h
OLEAUT32                         loaded at 77120000h - 771AB000h
NTMARTA                          loaded at 76CE0000h - 76CFF000h
WLDAP32                          loaded at 76F60000h - 76F8C000h
SAMLIB                           loaded at 71BF0000h - 71C01000h
Apphelp                          loaded at 75F40000h - 75F5F000h
foo_dsp_mute                     loaded at 00ED0000h - 00ED7000h
foo_dsp_nogaps                   loaded at 00EE0000h - 00EE7000h
foo_dsp_pause                    loaded at 00EF0000h - 00EF7000h
foo_dsp_pitch                    loaded at 00F00000h - 00F0A000h
foo_dsp_reverb                   loaded at 00F10000h - 00F17000h
foo_dsp_skip_silence             loaded at 00F20000h - 00F27000h
foo_dsp_soundtouch               loaded at 00F30000h - 00F3B000h
MSVCP60                          loaded at 55900000h - 55961000h
foo_dsp_Spatial3D                loaded at 00F40000h - 010D2000h
foo_dsp_surr                     loaded at 010E0000h - 010E8000h
foo_dsp_white_noise              loaded at 010F0000h - 010F7000h
foo_dsp_wider                    loaded at 01100000h - 01107000h
foo_dsp_xbass                    loaded at 01110000h - 0111E000h
foo_dynamics                     loaded at 01120000h - 01127000h
foo_explorer                     loaded at 01130000h - 01138000h
foo_faac                         loaded at 01140000h - 01173000h
foo_festalon                     loaded at 01180000h - 012BF000h
foo_flac                         loaded at 012C0000h - 012D6000h
foo_flaccer                      loaded at 012E0000h - 012F6000h
foo_freedb                       loaded at 01300000h - 01332000h
WS2_32                           loaded at 71AB0000h - 71AC4000h
WS2HELP                          loaded at 71AA0000h - 71AA8000h
foo_history                      loaded at 01340000h - 0134F000h
foo_id3v2                        loaded at 01350000h - 0137E000h
foo_infobox                      loaded at 01380000h - 01393000h
foo_infobox_simple               loaded at 013A0000h - 013A7000h
foo_info_samurize                loaded at 013B0000h - 013CD000h
LgWndHk                          loaded at 013F0000h - 013F7000h
foo_input_std                    loaded at 01400000h - 014A2000h
MSACM32                          loaded at 77BE0000h - 77BF4000h
foo_la                           loaded at 014B0000h - 014CB000h
la-core                          loaded at 014D0000h - 01543000h
OLEACC                           loaded at 74C80000h - 74CAC000h
WINSPOOL                         loaded at 73000000h - 73023000h
foo_lame                         loaded at 01690000h - 01699000h
foo_lpac                         loaded at 017A0000h - 017A7000h
lpac_codec_api                   loaded at 017B0000h - 017BA000h
lpaccodec                        loaded at 017C0000h - 017E9000h
foo_mad                          loaded at 01A10000h - 01A2B000h
foo_masstag                      loaded at 01A30000h - 01A40000h
foo_matroska                     loaded at 01A40000h - 01A7F000h
foo_midi                         loaded at 01A80000h - 01A9B000h
MFC42                            loaded at 73DD0000h - 73EC2000h
foo_minibar                      loaded at 01AA0000h - 01AAB000h
MSVCR71                          loaded at 7C340000h - 7C396000h
foo_mod                          loaded at 01AC0000h - 01AC9000h
BASS                             loaded at 01AD0000h - 01B2A000h
foo_monkey                       loaded at 01B30000h - 01B4D000h
foo_mpcenc                       loaded at 01B50000h - 01B58000h
foo_mpeg4u                       loaded at 01B60000h - 01B89000h
foo_music_title_bar              loaded at 01B90000h - 01BAC000h
foo_nez                          loaded at 01BC0000h - 01BEB000h
foo_null                         loaded at 01BF0000h - 01BF7000h
foo_ofr                          loaded at 01C00000h - 01C06000h
OptimFROG                        loaded at 01C10000h - 01C3F000h
foo_oggpreview                   loaded at 01C50000h - 01D4D000h
foo_osd                          loaded at 01D50000h - 01D5E000h
gdiplus                          loaded at 70D00000h - 70EA1000h
foo_output_asio(dll)             loaded at 01D70000h - 01DA1000h
foo_output_asio(exe)             loaded at 01DC0000h - 01DEC000h
foo_output_std                   loaded at 01E00000h - 01E09000h
foo_out_dsound_ex                loaded at 01E10000h - 01E19000h
DSOUND                           loaded at 51080000h - 510DA000h
foo_out_ks                       loaded at 01E30000h - 01E3B000h
SETUPAPI                         loaded at 76670000h - 76757000h
foo_playcount                    loaded at 01E40000h - 01E49000h
foo_playlistgen                  loaded at 01E50000h - 01E5A000h
foo_playlistgen_ex               loaded at 01E60000h - 01E6E000h
foo_psf                          loaded at 01E70000h - 01F1C000h
foo_quicktag                     loaded at 01F20000h - 01F29000h
foo_read_http                    loaded at 01F30000h - 01F39000h
foo_record                       loaded at 01F40000h - 01F4E000h
foo_rgscan                       loaded at 01F50000h - 01F5B000h
foo_scheduler                    loaded at 01F60000h - 01F72000h
foo_scroll                       loaded at 01F80000h - 01F86000h
foo_search_ex                    loaded at 01F90000h - 01F98000h
foo_send_to_pl                   loaded at 01FA0000h - 01FA9000h
foo_setyear                      loaded at 01FB0000h - 01FC2000h
foo_shn                          loaded at 01FD0000h - 01FDE000h
foo_shuffle                      loaded at 01FE0000h - 01FE9000h
foo_sid                          loaded at 01FF0000h - 02037000h
foo_spc                          loaded at 02040000h - 0204F000h
foo_speex                        loaded at 02050000h - 02068000h
foo_stfu                         loaded at 02070000h - 02077000h
foo_syfm                         loaded at 02080000h - 0208A000h
foo_text#2                       loaded at 02090000h - 0209C000h
foo_text                         loaded at 020A0000h - 020AC000h
foo_tfmx                         loaded at 020B0000h - 020B9000h
foo_toolame                      loaded at 020C0000h - 020D3000h
foo_tradersfriend                loaded at 020E0000h - 020EC000h
foo_tta                          loaded at 020F0000h - 02110000h
foo_ui_columns                   loaded at 02110000h - 02133000h
foo_ui_std                       loaded at 02140000h - 02157000h
foo_unpack                       loaded at 02160000h - 02191000h
foo_unpack_cab                   loaded at 021A0000h - 021AF000h
foo_unpack_gca                   loaded at 021B0000h - 021C8000h
foo_unpack_lha                   loaded at 021D0000h - 021D8000h
UNLHA32                          loaded at 021E0000h - 02227000h
foo_utils                        loaded at 02640000h - 0264D000h
foo_vis_bacon                    loaded at 02650000h - 02662000h
foo_vis_bubbla                   loaded at 02670000h - 02684000h
OPENGL32                         loaded at 5ED00000h - 5EDC6000h
GLU32                            loaded at 68B20000h - 68B3E000h
DDRAW                            loaded at 51000000h - 5104D000h
DCIMAN32                         loaded at 73BC0000h - 73BC6000h
foo_vis_manager                  loaded at 0A590000h - 0A598000h
foo_vis_samurize2                loaded at 0A5A0000h - 0A5C6000h
foo_vis_simple_spectrum          loaded at 0A6E0000h - 0A6EA000h
foo_vis_stereo                   loaded at 0A6F0000h - 0A778000h
foo_vis_test                     loaded at 0A780000h - 0A789000h
foo_vis_vu_meter                 loaded at 0A790000h - 0A798000h
foo_vorbisenc                    loaded at 0A7A0000h - 0A89A000h
foo_vorbisenc_gt3                loaded at 0A8A0000h - 0A999000h
foo_wavpack                      loaded at 0A9A0000h - 0A9AB000h
foo_web                          loaded at 0A9B0000h - 0A9C9000h
foo_wma                          loaded at 0A9D0000h - 0A9E9000h
WMVCore                          loaded at 0A9F0000h - 0ABED000h
WMASF                            loaded at 0ABF0000h - 0AC29000h
foo_xa                           loaded at 0AC30000h - 0AC3F000h
foo_oddcast                      loaded at 0AC40000h - 0ADEB000h
vorbis                           loaded at 0ADF0000h - 0AEF8000h
ogg                              loaded at 0AF00000h - 0AF09000h
BASSWMA                          loaded at 10100000h - 1011C000h
msctfime                         loaded at 0B130000h - 0B15B000h
UxTheme                          loaded at 5AD70000h - 5ADA4000h
Msimtf                           loaded at 746F0000h - 74716000h
MSCTF                            loaded at 74720000h - 74764000h
Powrprof                         loaded at 74AD0000h - 74AD7000h
LgMsgHk                          loaded at 0B2F0000h - 0B2FB000h
Amhooker                         loaded at 0B180000h - 0B189000h
ksuser                           loaded at 5EF80000h - 5EF84000h
mswsock                          loaded at 71A50000h - 71A8B000h
DNSAPI                           loaded at 76F20000h - 76F45000h
winrnr                           loaded at 76FB0000h - 76FB7000h
rasadhlp                         loaded at 76FC0000h - 76FC5000h
wshtcpip                         loaded at 71A90000h - 71A98000h
netapi32                         loaded at 71C20000h - 71C6E000h
CLBCATQ                          loaded at 7C890000h - 7C911000h
COMRes                           loaded at 77050000h - 77115000h
VDETECT                          loaded at 0BAA0000h - 0BAA5000h
imagehlp                         loaded at 76C90000h - 76CB2000h
DBGHELP                          loaded at 6D510000h - 6D58D000h

Stack dump analysis:
Address: 01FE196Dh, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE6B5Ch, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE18B4h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE60A4h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE1853h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE46B5h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE5650h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE41D5h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 00401EA6h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 77C2AC19h, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "free" (+000001AEh)
Address: 77C2AC2Ah, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "free" (+000001BFh)
Address: 77C28930h, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "operator new" (+0000000Bh)
Address: 004394B8h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0040B2BAh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394C4h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00401E03h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00401E18h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0043946Ch, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0041236Ah, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394BCh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00410D9Fh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394C4h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00438885h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004388B0h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0043C278h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 77E814C7h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "GetCurrentDirectoryW" (+00000044h)
Address: 77E94809h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "SetThreadExecutionState" (+00000097h)
Address: 77E91210h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "OpenConsoleW" (+0000EDBEh)
Address: 00438751h, location: "foobar2000", loaded at 00400000h - 00451000h

Version info:
foobar2000 v0.8.1
UNICODE


After short playlist:

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 77C435D1h
Access violation, operation: write, address: 00000000h
Call path:
WinMain=>app_shutdown
This is the first crash logged by this instance.
Code bytes (77C435D1h):
77C43591h:  54 24 0C 8B 4C 24 04 85 D2 74 47 33 C0 8A 44 24
77C435A1h:  08 57 8B F9 83 FA 04 72 2D F7 D9 83 E1 03 74 08
77C435B1h:  2B D1 88 07 47 49 75 FA 8B C8 C1 E0 08 03 C1 8B
77C435C1h:  C8 C1 E0 10 03 C1 8B CA 83 E2 03 C1 E9 02 74 06
77C435D1h:  F3 AB 85 D2 74 06 88 07 47 4A 75 FA 8B 44 24 08
77C435E1h:  5F C3 8B 44 24 04 C3 CC CC CC CC CC CC CC CC 8D
77C435F1h:  42 FF 5B C3 8D A4 24 00 00 00 00 8D 64 24 00 33
77C43601h:  C0 8A 44 24 08 53 8B D8 C1 E0 08 8B 54 24 08 F7
Stack (0012FDACh):
0012FD8Ch:  805080DB F38D7CE4 813BADA8 C0503000
0012FD9Ch:  8121D950 1690E000 C002D4E0 8121D950
0012FDACh:  00000014 01FE196D 00000000 000000FF
0012FDBCh:  FFDFFC4C 00000006 01FE6B5C 00000007
0012FDCCh:  00000000 FFDFFC4C FFDFFC4C 00000000
0012FDDCh:  0012FDF8 01FE18B4 0012FE1C 00000002
0012FDECh:  00000000 01FE60A4 0012FE64 0012FE30
0012FDFCh:  01FE1853 0012FE1C 00000002 01FE46B5
0012FE0Ch:  0012FE1C 00000000 0000007C 0000005A
0012FE1Ch:  01FE5650 0B4C2028 00000010 0000000E
0012FE2Ch:  00000002 0012FE8C 01FE41D5 0012FE64
0012FE3Ch:  00401EA6 0012FE64 00000014 0B478FA8
0012FE4Ch:  00000000 FFFFFFFF 77C2AC19 77C2AC2A
0012FE5Ch:  00000008 77C28930 004394B8 0B4F4FD0
0012FE6Ch:  00010000 00000000 00000002 0B5267D0
0012FE7Ch:  00020000 000118BC 00000002 0B4E8258
0012FE8Ch:  0012FEA8 0040B2BA 0B4E8258 0B478FA8
0012FE9Ch:  00000000 004394C4 00000000 0012FED4
0012FEACh:  00401E03 00401E18 0B4E8258 00000000
0012FEBCh:  0043946C 0B4E8258 0000002A 0000002A
Registers:
EAX: FFFFFFFF, EBX: 00000000, ECX: 3FF7FF13, EDX: 00000000
ESI: 016DFB10, EDI: 00000000, EBP: 0012FDDC, ESP: 0012FDAC
Crash location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "memset" (+00000041h)

Loaded modules:
foobar2000                       loaded at 00400000h - 00451000h
ntdll                            loaded at 77F50000h - 77FF7000h
kernel32                         loaded at 77E60000h - 77F46000h
USER32                           loaded at 77D40000h - 77DCC000h
GDI32                            loaded at 7E090000h - 7E0D1000h
ADVAPI32                         loaded at 77DD0000h - 77E5D000h
RPCRT4                           loaded at 78000000h - 78087000h
ole32                            loaded at 771B0000h - 772D4000h
COMCTL32                         loaded at 71950000h - 71A34000h
msvcrt                           loaded at 77C10000h - 77C63000h
SHLWAPI                          loaded at 70A70000h - 70AD5000h
utf8api                          loaded at 10000000h - 1000D000h
comdlg32                         loaded at 763B0000h - 763F5000h
SHELL32                          loaded at 773D0000h - 77BC2000h
IMM32                            loaded at 76390000h - 763AC000h
LPK                              loaded at 629C0000h - 629C8000h
USP10                            loaded at 72FA0000h - 72FFA000h
foo_abx                          loaded at 003F0000h - 003FC000h
foo_ac3                          loaded at 00940000h - 00953000h
foo_albumlist                    loaded at 00960000h - 0096A000h
foo_ape                          loaded at 00970000h - 0098F000h
foo_apl                          loaded at 00990000h - 0099A000h
foo_balance                      loaded at 009A0000h - 009B1000h
foo_beammeup                     loaded at 009C0000h - 009CB000h
foo_bitcompare                   loaded at 009D0000h - 009D8000h
foo_brr                          loaded at 009E0000h - 009EA000h
foo_burninate                    loaded at 009F0000h - 009FC000h
VERSION                          loaded at 77C00000h - 77C07000h
foo_cdda                         loaded at 00A00000h - 00A0E000h
foo_centercut                    loaded at 00A10000h - 00A17000h
foo_clienc                       loaded at 00A20000h - 00A2B000h
foo_codepage_action              loaded at 00A30000h - 00A37000h
foo_console                      loaded at 00A40000h - 00A47000h
foo_convolve                     loaded at 00A50000h - 00AA3000h
foo_cue_ex                       loaded at 00AB0000h - 00ABB000h
foo_custom_sort                  loaded at 00AC0000h - 00AC8000h
foo_dbsearch                     loaded at 00AD0000h - 00AE6000h
foo_Delete                       loaded at 00AF0000h - 00B03000h
foo_diskwriter                   loaded at 00B10000h - 00B22000h
WINMM                            loaded at 76B40000h - 76B6C000h
sfvmr                            loaded at 6BC00000h - 6BC08000h
myokent                          loaded at 00BB0000h - 00BBA000h
foo_dsp_continuator              loaded at 00BC0000h - 00BC8000h
foo_dsp_crossfade                loaded at 00BD0000h - 00BD7000h
foo_dsp_crossfeed                loaded at 00BE0000h - 00BE6000h
foo_dsp_extra                    loaded at 00BF0000h - 00C05000h
foo_dsp_ExtraStereo              loaded at 00C10000h - 00C17000h
foo_dsp_headphones               loaded at 00C20000h - 00C73000h
OLEAUT32                         loaded at 77120000h - 771AB000h
NTMARTA                          loaded at 76CE0000h - 76CFF000h
WLDAP32                          loaded at 76F60000h - 76F8C000h
SAMLIB                           loaded at 71BF0000h - 71C01000h
foo_dsp_mute                     loaded at 00ED0000h - 00ED7000h
foo_dsp_nogaps                   loaded at 00EE0000h - 00EE7000h
foo_dsp_pause                    loaded at 00EF0000h - 00EF7000h
foo_dsp_pitch                    loaded at 00F00000h - 00F0A000h
foo_dsp_reverb                   loaded at 00F10000h - 00F17000h
foo_dsp_skip_silence             loaded at 00F20000h - 00F27000h
foo_dsp_soundtouch               loaded at 00F30000h - 00F3B000h
MSVCP60                          loaded at 55900000h - 55961000h
foo_dsp_Spatial3D                loaded at 00F40000h - 010D2000h
foo_dsp_surr                     loaded at 010E0000h - 010E8000h
foo_dsp_white_noise              loaded at 010F0000h - 010F7000h
foo_dsp_wider                    loaded at 01100000h - 01107000h
foo_dsp_xbass                    loaded at 01110000h - 0111E000h
foo_dynamics                     loaded at 01120000h - 01127000h
foo_explorer                     loaded at 01130000h - 01138000h
foo_faac                         loaded at 01140000h - 01173000h
foo_festalon                     loaded at 01180000h - 012BF000h
foo_flac                         loaded at 012C0000h - 012D6000h
foo_flaccer                      loaded at 012E0000h - 012F6000h
foo_freedb                       loaded at 01300000h - 01332000h
WS2_32                           loaded at 71AB0000h - 71AC4000h
WS2HELP                          loaded at 71AA0000h - 71AA8000h
foo_history                      loaded at 01340000h - 0134F000h
foo_id3v2                        loaded at 01350000h - 0137E000h
foo_infobox                      loaded at 01380000h - 01393000h
foo_infobox_simple               loaded at 013A0000h - 013A7000h
foo_info_samurize                loaded at 013B0000h - 013CD000h
VDETECT                          loaded at 013E0000h - 013E5000h
LgWndHk                          loaded at 013F0000h - 013F7000h
foo_input_std                    loaded at 01400000h - 014A2000h
MSACM32                          loaded at 77BE0000h - 77BF4000h
foo_la                           loaded at 014B0000h - 014CB000h
la-core                          loaded at 014D0000h - 01543000h
OLEACC                           loaded at 74C80000h - 74CAC000h
WINSPOOL                         loaded at 73000000h - 73023000h
foo_lame                         loaded at 01690000h - 01699000h
foo_lpac                         loaded at 017A0000h - 017A7000h
lpac_codec_api                   loaded at 017B0000h - 017BA000h
lpaccodec                        loaded at 017C0000h - 017E9000h
foo_mad                          loaded at 01A10000h - 01A2B000h
foo_masstag                      loaded at 01A30000h - 01A40000h
foo_matroska                     loaded at 01A40000h - 01A7F000h
foo_midi                         loaded at 01A80000h - 01A9B000h
MFC42                            loaded at 73DD0000h - 73EC2000h
foo_minibar                      loaded at 01AA0000h - 01AAB000h
MSVCR71                          loaded at 7C340000h - 7C396000h
foo_mod                          loaded at 01AC0000h - 01AC9000h
BASS                             loaded at 01AD0000h - 01B2A000h
foo_monkey                       loaded at 01B30000h - 01B4D000h
foo_mpcenc                       loaded at 01B50000h - 01B58000h
foo_mpeg4u                       loaded at 01B60000h - 01B89000h
foo_music_title_bar              loaded at 01B90000h - 01BAC000h
foo_nez                          loaded at 01BC0000h - 01BEB000h
foo_null                         loaded at 01BF0000h - 01BF7000h
foo_ofr                          loaded at 01C00000h - 01C06000h
OptimFROG                        loaded at 01C10000h - 01C3F000h
foo_oggpreview                   loaded at 01C50000h - 01D4D000h
foo_osd                          loaded at 01D50000h - 01D5E000h
gdiplus                          loaded at 70D00000h - 70EA1000h
foo_output_asio(dll)             loaded at 01D70000h - 01DA1000h
foo_output_asio(exe)             loaded at 01DC0000h - 01DEC000h
foo_output_std                   loaded at 01E00000h - 01E09000h
foo_out_dsound_ex                loaded at 01E10000h - 01E19000h
DSOUND                           loaded at 51080000h - 510DA000h
foo_out_ks                       loaded at 01E30000h - 01E3B000h
SETUPAPI                         loaded at 76670000h - 76757000h
foo_playcount                    loaded at 01E40000h - 01E49000h
foo_playlistgen                  loaded at 01E50000h - 01E5A000h
foo_playlistgen_ex               loaded at 01E60000h - 01E6E000h
foo_psf                          loaded at 01E70000h - 01F1C000h
foo_quicktag                     loaded at 01F20000h - 01F29000h
foo_read_http                    loaded at 01F30000h - 01F39000h
foo_record                       loaded at 01F40000h - 01F4E000h
foo_rgscan                       loaded at 01F50000h - 01F5B000h
foo_scheduler                    loaded at 01F60000h - 01F72000h
foo_scroll                       loaded at 01F80000h - 01F86000h
foo_search_ex                    loaded at 01F90000h - 01F98000h
foo_send_to_pl                   loaded at 01FA0000h - 01FA9000h
foo_setyear                      loaded at 01FB0000h - 01FC2000h
foo_shn                          loaded at 01FD0000h - 01FDE000h
foo_shuffle                      loaded at 01FE0000h - 01FE9000h
foo_sid                          loaded at 01FF0000h - 02037000h
foo_spc                          loaded at 02040000h - 0204F000h
foo_speex                        loaded at 02050000h - 02068000h
foo_stfu                         loaded at 02070000h - 02077000h
foo_syfm                         loaded at 02080000h - 0208A000h
foo_text#2                       loaded at 02090000h - 0209C000h
foo_text                         loaded at 020A0000h - 020AC000h
foo_tfmx                         loaded at 020B0000h - 020B9000h
foo_toolame                      loaded at 020C0000h - 020D3000h
foo_tradersfriend                loaded at 020E0000h - 020EC000h
foo_tta                          loaded at 020F0000h - 02110000h
foo_ui_columns                   loaded at 02110000h - 02133000h
foo_ui_std                       loaded at 02140000h - 02157000h
foo_unpack                       loaded at 02160000h - 02191000h
foo_unpack_cab                   loaded at 021A0000h - 021AF000h
foo_unpack_gca                   loaded at 021B0000h - 021C8000h
foo_unpack_lha                   loaded at 021D0000h - 021D8000h
UNLHA32                          loaded at 021E0000h - 02227000h
foo_utils                        loaded at 02640000h - 0264D000h
foo_vis_bacon                    loaded at 02650000h - 02662000h
foo_vis_bubbla                   loaded at 02670000h - 02684000h
OPENGL32                         loaded at 5ED00000h - 5EDC6000h
GLU32                            loaded at 68B20000h - 68B3E000h
DDRAW                            loaded at 51000000h - 5104D000h
DCIMAN32                         loaded at 73BC0000h - 73BC6000h
foo_vis_manager                  loaded at 0A590000h - 0A598000h
foo_vis_samurize2                loaded at 0A5A0000h - 0A5C6000h
foo_vis_simple_spectrum          loaded at 0A6E0000h - 0A6EA000h
foo_vis_stereo                   loaded at 0A6F0000h - 0A778000h
foo_vis_test                     loaded at 0A780000h - 0A789000h
foo_vis_vu_meter                 loaded at 0A790000h - 0A798000h
foo_vorbisenc                    loaded at 0A7A0000h - 0A89A000h
foo_vorbisenc_gt3                loaded at 0A8A0000h - 0A999000h
foo_wavpack                      loaded at 0A9A0000h - 0A9AB000h
foo_web                          loaded at 0A9B0000h - 0A9C9000h
foo_wma                          loaded at 0A9D0000h - 0A9E9000h
WMVCore                          loaded at 0A9F0000h - 0ABED000h
WMASF                            loaded at 0ABF0000h - 0AC29000h
foo_xa                           loaded at 0AC30000h - 0AC3F000h
foo_oddcast                      loaded at 0AC40000h - 0ADEB000h
vorbis                           loaded at 0ADF0000h - 0AEF8000h
ogg                              loaded at 0AF00000h - 0AF09000h
BASSWMA                          loaded at 10100000h - 1011C000h
msctfime                         loaded at 0B130000h - 0B15B000h
UxTheme                          loaded at 5AD70000h - 5ADA4000h
Msimtf                           loaded at 746F0000h - 74716000h
MSCTF                            loaded at 74720000h - 74764000h
Powrprof                         loaded at 74AD0000h - 74AD7000h
LgMsgHk                          loaded at 0B2F0000h - 0B2FB000h
Amhooker                         loaded at 0B180000h - 0B189000h
mswsock                          loaded at 71A50000h - 71A8B000h
DNSAPI                           loaded at 76F20000h - 76F45000h
winrnr                           loaded at 76FB0000h - 76FB7000h
rasadhlp                         loaded at 76FC0000h - 76FC5000h
wshtcpip                         loaded at 71A90000h - 71A98000h
ksuser                           loaded at 5EF80000h - 5EF84000h
imagehlp                         loaded at 76C90000h - 76CB2000h
DBGHELP                          loaded at 6D510000h - 6D58D000h

Stack dump analysis:
Address: 01FE196Dh, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE6B5Ch, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE18B4h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE60A4h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE1853h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE46B5h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE5650h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 01FE41D5h, location: "foo_shuffle", loaded at 01FE0000h - 01FE9000h
Address: 00401EA6h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 77C2AC19h, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "free" (+000001AEh)
Address: 77C2AC2Ah, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "free" (+000001BFh)
Address: 77C28930h, location: "msvcrt", loaded at 77C10000h - 77C63000h
Symbol: "operator new" (+0000000Bh)
Address: 004394B8h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0040B2BAh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394C4h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00401E03h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00401E18h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0043946Ch, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0041236Ah, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394BCh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00410D9Fh, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004394C4h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00438885h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 004388B0h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 0043C278h, location: "foobar2000", loaded at 00400000h - 00451000h
Address: 77E814C7h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "GetCurrentDirectoryW" (+00000044h)
Address: 77E94809h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "SetThreadExecutionState" (+00000097h)
Address: 77E91210h, location: "kernel32", loaded at 77E60000h - 77F46000h
Symbol: "OpenConsoleW" (+0000EDBEh)
Address: 00438751h, location: "foobar2000", loaded at 00400000h - 00451000h

Version info:
foobar2000 v0.8.1
UNICODE
Title: foo_shuffle
Post by: MadFox on 2004-05-07 00:58:23
Thanks for this great plugin, I have one problem with version 1.0.23 though, shuffle album 2 doesnt work properly anymore, it gets to about halfway through the album and starts at the first track again. Works fine in 1.0.22.
Title: foo_shuffle
Post by: kode54 on 2004-05-07 08:43:35
Try switching to another playlist after starting the album. (Gee, the only change I made in 1.0.23 was to fix logging of manually started tracks. I guess if this turns out to be the problem, you can either have it log manually started tracks, or have history actually function properly.)
Title: foo_shuffle
Post by: Mr_Rabid_Teddybear on 2004-05-08 04:10:41
Don't know... just put history size to approx. 98-99 %  -  history saving activated. No more problems. Yes: No problems whatsoever after reducing history size 1%... Works for me...
Title: foo_shuffle
Post by: MadFox on 2004-05-09 21:16:21
This seems to sort it, very strange, thanks rabid teddybear
Title: foo_shuffle
Post by: Prodoc on 2004-05-13 21:04:05
Lol, I found a funny bug in the shuffle plugin.
I've got two albums called "Greatest Hits" on from "Clanned" and one from "Lenny Kravitz". Because of the same album names it will alternate each track of each album one after the other in "Shuffle album 2" mode.
Title: foo_shuffle
Post by: MC Escher on 2004-06-30 12:04:18
Sorry for digging this thread up, but as this is the official thread...
Would it be possible to add a "shuffle artist" option? Off course I could simulate it by making a new playlist with just that one artist, but through the foo_shuffle plugin it would be very neat.
Title: foo_shuffle
Post by: ludox on 2004-06-30 12:48:51
You can use the "shuffle tag set" with the rule: "+artist" or "+artist | -album".
Title: foo_shuffle
Post by: spived on 2004-06-30 17:28:29
Great plug-in, I have a question:

I set "shuffle" or "shuffle album"
I set History Size to _max_ and Reduce to _min_
Jump has the default settings.

I have N tracks, all tracks are played, but it cycles all the time, it doesn't stop.

Cause when I set "shuffle album 2", all tracks are played and then stops, I like that. But I want to use "shuffle album", so it plays all tracks of the album in no order and then jump to the next album, but I want to stop in the last album.

Am I doing wrong? Can I configure to stop when all tracks are played?

Thanks in advance!
Rodolfo from Mexico
Title: foo_shuffle
Post by: MC Escher on 2004-06-30 18:58:05
Quote
You can use the "shuffle tag set" with the rule: "+artist" or "+artist | -album".

Ah that's nice!
Title: foo_shuffle
Post by: Luckz on 2004-06-30 22:50:25
I'd love to be able to change custom shuffle without going through the options menu 
How about the ability to 'build' your own shuffle presets? There'd basically be a shuffle wizard, consisting of lots of checkboxes and input fields (jump min/max, repeat, shuffle, if shuffle, shuffle what? etc), which would then add your new preset to the play mode drop-down list.
Title: foo_shuffle
Post by: teetee on 2004-07-03 22:06:22
Quote
Great plug-in, I have a question:

I set "shuffle" or "shuffle album"
I set History Size to _max_ and Reduce to _min_
Jump has the default settings.

I have N tracks, all tracks are played, but it cycles all the time, it doesn't stop.

Cause when I set "shuffle album 2", all tracks are played and then stops, I like that. But I want to use "shuffle album", so it plays all tracks of the album in no order and then jump to the next album, but I want to stop in the last album.

Am I doing wrong? Can I configure to stop when all tracks are played?

Thanks in advance!
Rodolfo from Mexico

I suggest you try setting Reduce to Max

Then it won't reduce and should stop when you've played all tracks. I could be wrong but it is worth trying
Title: foo_shuffle
Post by: spase on 2004-08-25 16:54:44
I'm not sure if this would be a possible option for this plugin, but would it be possible to create a command that while in shuffle album 2 mode (or any other mode for that matter) randomly goes to the beginning of a new cd?

Right now you have to go through all songs on a cd to have it go to a new cd's first track.
Title: foo_shuffle
Post by: Zoominee on 2004-08-26 13:18:28
Quote
I'm not sure if this would be a possible option for this plugin, but would it be possible to create a command that while in shuffle album 2 mode (or any other mode for that matter) randomly goes to the beginning of a new cd?

Right now you have to go through all songs on a cd to have it go to a new cd's first track.
[a href="index.php?act=findpost&pid=236935"][{POST_SNAPBACK}][/a]

I don't know how this works, but if you install the RM-X plugin you can use the "go to random track" function (which ignores the album 2 mode), or you can use the "next track" function (which goes through all the songs, as you describe above). Maybe there are corresponding commands of "Random" and "next" in  foobar itself, and you don't need to install the RM-X to do this.
Title: foo_shuffle
Post by: Master_Onion on 2004-10-17 07:08:00
I don't know if I'm blind or something but I can't find any link where I could download this plugin. :I I used to have it but I had to reinstall Windows and everything so it was deleted...
Title: foo_shuffle
Post by: kode54 on 2004-10-17 07:47:58
Poof (http://www.saunalahti.fi/cse/kode54/).
Title: foo_shuffle
Post by: Mr_Rabid_Teddybear on 2004-10-24 20:31:37
I have gotten this idea in my head that I will use foo_quicktag and make quicktag options (with keybindings) to set a tagfield MOOD with values 0 through 9 with the value 0 representing the most laidback mood (Harold Budd?) and value 9 representing the most intense (Merzbow?) and then use "Shuffle tag set" if I want to shuffle on files with a particular intensity level.
My Q. here being: How do I go about to format the "Tag set" option in Shuffle control if I want to e.g. shuffle on all files in playlist that have a MOOD tag with the value of 4?


EDIT: Typo.
Title: foo_shuffle
Post by: upNorth on 2004-10-24 20:46:33
Quote
I have gotten this idea in my head that I will use foo_quicktag and make quicktag options (with keybindings) to set a tagfield MOOD with values 0 through 9 with the value 0 representing the most laidback mood (Harold Budd?) and value 9 representing the most intense (Mertzbow?) and then use "Shuffle tag set" if I want to shuffle on files with a particular intensity level.
My Q. here being: How do I go about to format the "Tag set" option in Shuffle control if I want to e.g. shuffle on all files in playlist that have a MOOD tag with the value of 4?
[a href="index.php?act=findpost&pid=249770"][{POST_SNAPBACK}][/a]

I'm no expert, but this tag set:
Code: [Select]
+mood
would keep playing tracks with the same mood, as the track that was playing when "shuffle tag set" was activated. To change to another mood, you would have to manually start playing a track with the new desired mood value.

I don't think there is an option to do it any other way with this component. Assuming I'm correct, it would IMHO be a better idea to use the extended playlist generator for this sort of thing. Then you could generate playlists with e.g.: only one mood, with a range of moods, or all tracks with a mood tag.
Title: foo_shuffle
Post by: Cerebus on 2004-10-28 16:50:13
Quote
I'm not sure if this would be a possible option for this plugin, but would it be possible to create a command that while in shuffle album 2 mode (or any other mode for that matter) randomly goes to the beginning of a new cd?

Right now you have to go through all songs on a cd to have it go to a new cd's first track.
[a href="index.php?act=findpost&pid=236935"][{POST_SNAPBACK}][/a]

I'd also be real interested in this feature.  Anyone got any ideas?
Title: foo_shuffle
Post by: badrad on 2004-11-18 01:30:16
Hey, I just found this component, its awesome! Thanks so much, its everything I want it to be. I cant imagine not having it now...
Title: foo_shuffle
Post by: PoisonDan on 2004-11-18 15:20:58
A request for "shuffle album 2":

When determining which tracks belong to one album, the plugin should make sure the artist is identical, except when "album artist" is defined.

Explanation:

Right now, the plugin only uses the album name for determining which tracks belong to one album. This is somewhat annoying when you have several albums with the same name but a different artist, for example "The Best Of" or "Greatest Hits".

For example:
I have "The Best of" by Blur and "The Best Of" by Nick Cave.

How "shuffle 2" plays them right now:
Track 1 of the Blur album
Track 1 of the Nick Cave album
Track 2 of the Blur album
Track 2 of the Nick Cave album
etc.

How "shuffle 2" should play them:
Track 1 of the Blur album
Track 2 of the Blur album
Track 3 of the Blur album
etc.
<another album>

or

Track 1 of the Nick Cave album
Track 2 of the Nick Cave album
Track 3 of the Nick Cave album
etc.
<another album>

This problem can be solved by defining an album as having the same album tag and the same artist tag.

Of course, this solution doesn't work with various artists albums (since it will treat each track as a different album), but I think this can be solved by ignoring the artist tag when the "album artist" tag is set.

To summarize: if ALBUM ARTIST is set, album key = ALBUM, else album key = ARTIST + ALBUM.

This method may still have issues that I haven't thought of yet, and I guess it's possible not everybody has their tags set up this way, so maybe you can make this "extended" method optional?
Title: foo_shuffle
Post by: Ezanza on 2004-11-18 20:56:03
EDIT: Adminstrator can delete this post, solved the problem I had myself.
Title: foo_shuffle
Post by: chowe on 2004-11-21 10:15:13
Hey all
I'm having a bit of difficulty using the shuffle tag name funtion. I want it to play songs that have not yet been played on a certain day, using the %play_date% tag. Even with the - at the front it still sometimes goes to tracks that have been played already. I've tested it with + at the front to see if it will jump to songs of the same day, and that doesnt seem to work either... if it helps i have my tags in dd/mm/yy form. Also, will pressing next on the playback controls be the same as waiting for the track to change by itself?

Thanks
Ed
Title: foo_shuffle
Post by: kode54 on 2004-11-21 12:05:16
Quote
A request for "shuffle album 2":

When determining which tracks belong to one album, the plugin should make sure the artist is identical, except when "album artist" is defined.

...

To summarize: if ALBUM ARTIST is set, album key = ALBUM, else album key = ARTIST + ALBUM.[a href="index.php?act=findpost&pid=254771"][{POST_SNAPBACK}][/a]

This sounds useful, but...

Quote
This method may still have issues that I haven't thought of yet, and I guess it's possible not everybody has their tags set up this way, so maybe you can make this "extended" method optional?[a href="index.php?act=findpost&pid=254771"][{POST_SNAPBACK}][/a]

Yes, there would be issues, so it would be best to make it optional. For one, I can think of several game soundtracks where random tracks will have different artist credits.
Title: foo_shuffle
Post by: anza on 2004-11-21 14:08:22
I'd like a way to somehow tell the plugin something like "play tracks with rating higher than 3". Would that be possible to implement?
Title: foo_shuffle
Post by: marcomk on 2004-11-21 18:19:57
Probably the best solution is to generate a playlist (top rated) which contains all songs with rating higher than 3. Haven't tried yet but I think it's possible.

The problem is that such playlist would't be dynamic. I think I read some discussion about in the Playlist generator topic.
Title: foo_shuffle
Post by: anza on 2004-11-21 18:39:37
Yes I know that and that's what I currently do. What I meant was that it would be cool to make the rule set more flexible.
Title: foo_shuffle
Post by: tberman333 on 2004-11-23 00:39:24
Does anyone know where to download this plugin?  The http://www.cqasys.com/projects/kode54/foo_shuffle.zip (http://www.cqasys.com/projects/kode54/foo_shuffle.zip) link does not seem to work.

Thanks.
Title: foo_shuffle
Post by: hunted on 2004-11-23 01:47:07
Quote
Does anyone know where to download this plugin?  The http://www.cqasys.com/projects/kode54/foo_shuffle.zip (http://www.cqasys.com/projects/kode54/foo_shuffle.zip) link does not seem to work.

Thanks.
[{POST_SNAPBACK}][/a] (http://index.php?act=findpost&pid=255564")

[a href="http://www.saunalahti.fi/cse/kode54/]http://www.saunalahti.fi/cse/kode54/[/url] is his temporary site location
Title: foo_shuffle
Post by: tberman333 on 2004-11-23 02:39:47
I saw this question asked before, but never saw an answer for it...  I have a "Greatest Hits" album by about 5 different artists.  When I use Shuffle Album 2 it plays all the track 1's then all the track 2's, etc.  Is there anyway to set this to album within artist?

Thanks
Title: foo_shuffle
Post by: PoisonDan on 2004-11-23 09:32:22
Quote
Quote
A request for "shuffle album 2":

When determining which tracks belong to one album, the plugin should make sure the artist is identical, except when "album artist" is defined.

...

To summarize: if ALBUM ARTIST is set, album key = ALBUM, else album key = ARTIST + ALBUM.[a href="index.php?act=findpost&pid=254771"][{POST_SNAPBACK}][/a]

This sounds useful, but...

Quote
This method may still have issues that I haven't thought of yet, and I guess it's possible not everybody has their tags set up this way, so maybe you can make this "extended" method optional?[a href="index.php?act=findpost&pid=254771"][{POST_SNAPBACK}][/a]

Yes, there would be issues, so it would be best to make it optional. For one, I can think of several game soundtracks where random tracks will have different artist credits.
[a href="index.php?act=findpost&pid=255287"][{POST_SNAPBACK}][/a]

I don't really play any game soundtracks with foobar2000 myself, but I don't see the problem here. Wouldn't this simply be a "various artists" album? So ALBUM ARTIST should be set to "Various Artists", and shuffle album 2 would only use the album title to define the album. I've never seen two different VA albums with the same name.

Can you give me a practical example of where this would fail?
Title: foo_shuffle
Post by: tberman333 on 2004-11-23 22:03:23
Quote
Quote
Quote
A request for "shuffle album 2":

When determining which tracks belong to one album, the plugin should make sure the artist is identical, except when "album artist" is defined.

...

To summarize: if ALBUM ARTIST is set, album key = ALBUM, else album key = ARTIST + ALBUM.[a href="index.php?act=findpost&pid=254771"][{POST_SNAPBACK}][/a]

This sounds useful, but...

Quote
This method may still have issues that I haven't thought of yet, and I guess it's possible not everybody has their tags set up this way, so maybe you can make this "extended" method optional?[a href="index.php?act=findpost&pid=254771"][{POST_SNAPBACK}][/a]

Yes, there would be issues, so it would be best to make it optional. For one, I can think of several game soundtracks where random tracks will have different artist credits.
[a href="index.php?act=findpost&pid=255287"][{POST_SNAPBACK}][/a]

I don't really play any game soundtracks with foobar2000 myself, but I don't see the problem here. Wouldn't this simply be a "various artists" album? So ALBUM ARTIST should be set to "Various Artists", and shuffle album 2 would only use the album title to define the album. I've never seen two different VA albums with the same name.

Can you give me a practical example of where this would fail?
[a href="index.php?act=findpost&pid=255624"][{POST_SNAPBACK}][/a]



Another option could be to be able to define albums by the directory setup (or assume that each folder is a album).  For example I have all of my music stored in folders by type/artist/album.  If there was an option to shuffle by directory that would be perfect.  As an example, check out the Album List plugin for Winamp (http://sourceforge.net/projects/albumlist/) this does a little more than just shuffle, but the shuffle option in it works very well...  Just a thought. 

Thanks for the great plugin!
Title: foo_shuffle
Post by: Cerebus on 2004-11-24 14:54:55
Quote
I saw this question asked before, but never saw an answer for it...  I have a "Greatest Hits" album by about 5 different artists.  When I use Shuffle Album 2 it plays all the track 1's then all the track 2's, etc.  Is there anyway to set this to album within artist?

Thanks
[a href="index.php?act=findpost&pid=255571"][{POST_SNAPBACK}][/a]


I've just run into this same problem, but with a different instance.  I'm shuffling by album, and I have two discs with the same Album title (Eldorado, one by Electric Light Orchestra and the other by Patrick O'Hearn).  Playback alternates between each album as described by tberman333 (all track ones, then track twos, etc.).

Any known workaround?

Thx
Title: foo_shuffle
Post by: upNorth on 2004-11-24 18:26:13
Maybe adding an "album grouping pattern" entry in config, like the one the replaygain scanner uses, would be a good solution to this album problem?
Title: foo_shuffle
Post by: Blippe on 2004-12-25 19:02:11
I have this odd problem with doubledisc various artists albums...
I got a few albums tagged like so:

Disc: either name (ie: twilight to starlight) or number.
No disc info in the album tag!

When using shuffle album tag 2, I would like the songs to go through all the discs on one album, one disc at a time, which happens on albums (1: one artists albums with discnumbers, 2: one artist albums with discnames and 3: various artists album with discnumbers) however, it never works with various artists albums with a name DISC-tag.

The playlist in itself is ordered just the way i want them to play. why is this?
Title: foo_shuffle
Post by: cbunn on 2005-01-02 03:58:42
Quote
I'd like a way to somehow tell the plugin something like "play tracks with rating higher than 3". Would that be possible to implement?
[a href="index.php?act=findpost&pid=255308"][{POST_SNAPBACK}][/a]


I'd also like to see something like this.  I remember being briefly tempted by iTunes because it has a feature called "Party Mix" that does just this.

It could even be something for a Tag Set, as has been mentioned before.  But as of right now, the shuffle by tag set would only allow for using the same rating or a different rating.  What would be nice would be to give it a list of the ratings which must be present to be played (e.g. 3-5).
Title: foo_shuffle
Post by: erikt on 2005-01-07 16:14:55
I apologize if this is the wrong place to post this...

First, I'm a big fan of foo_shuffle, but I'm using Xlobby with Foobar, and Xlobby
implements its own Random mode.  I'd like to take advantage of foo_shuffle
within Xlobby.  This requires some modification to the Xlobby foobar component,
something I might try if the author doesn't mind too much.

What I need to know is, if I'm using foo_shuffle, is there a way for another
component to determine what the next track will be?  The "Next Track" feature
seems to be a stand-by in all Xlobby skins, and I don't want to lose this.  If
this is not currently possible, is there any chance it could be added?

Any help is most appreciated.
erikt
Title: foo_shuffle
Post by: PoisonDan on 2005-01-10 21:42:46
Well, I got tired of waiting for kode54 or somebody else to modify foo_shuffle so it works properly with the "best of/greatest hits" albums in shuffle album 2 mode, so I did it myself. 

You can dowload my modified foo_shuffle here (http://users.telenet.be/dannysuls/Code/foo_shuffle.dll).

A couple of important points:
1. It was built with Visual Studio.NET 2003, so it's possible you need to download some additional DLLs to make this work (msvcr71.dll, msvcp71.dll, whatever, ...)  You should be able to get them here (http://www.dll-files.com/).
2. This is the first time I've ever done any development for foobar2000. So, even though my modifications are quite simple, it's still possible that I made some mistakes that will blow up something else. Please backup your original foo_shuffle (and report any problems)!
If you want to check my changes, you can download my modified shuffle.cpp here (http://users.skynet.be/fa828592/foobar2000/shuffle.zip) and use your favorite diff/merge tool to compare it to kode54's original file (link (http://www.saunalahti.fi/cse/kode54/foo_shuffle_source.zip)).
3. The test for determining whether two songs belong to the same album is not configurable. This is simply a hardcoded implementation of the rule I mentioned earlier in this thread:
Quote
if ALBUM ARTIST is set, album key = ALBUM, else album key = ARTIST + ALBUM

It would probably be better if it were configurable (e.g. with the album grouping pattern upNorth mentioned). Maybe that's something for a future version (but I'd also like to implement a "next album" command when I find time).

Edit: It goes without saying that if you don't use shuffle album 2 or are not affected by this "best of/greatest hits" issue, you should of course stick with kode54's original version to be safe.
Title: foo_shuffle
Post by: tberman333 on 2005-01-17 03:33:27
PoisonDan - I tried to install your updated version and am still having prolems with albums with the same name (Best of, Greates Hits and others).  Is there anything special that needs to be done to make this work right (I have the dll's mentioned installed)?
Title: foo_shuffle
Post by: PoisonDan on 2005-01-17 10:28:33
Quote
PoisonDan - I tried to install your updated version and am still having prolems with albums with the same name (Best of, Greates Hits and others).  Is there anything special that needs to be done to make this work right (I have the dll's mentioned installed)?
[a href="index.php?act=findpost&pid=265936"][{POST_SNAPBACK}][/a]

So you replaced your foo_shuffle.dll with my version?

Is the "ALBUM ARTIST" tag filled in for those albums? If it is, with what value?

Keep in mind that my version uses the "old" behaviour with albums that have the "ALBUM ARTIST" tag filled in.
Title: foo_shuffle
Post by: tberman333 on 2005-01-18 02:46:32
Quote
Quote
PoisonDan - I tried to install your updated version and am still having prolems with albums with the same name (Best of, Greates Hits and others).  Is there anything special that needs to be done to make this work right (I have the dll's mentioned installed)?
[a href="index.php?act=findpost&pid=265936"][{POST_SNAPBACK}][/a]

So you replaced your foo_shuffle.dll with my version?

Is the "ALBUM ARTIST" tag filled in for those albums? If it is, with what value?

Keep in mind that my version uses the "old" behaviour with albums that have the "ALBUM ARTIST" tag filled in.
[a href="index.php?act=findpost&pid=265983"][{POST_SNAPBACK}][/a]



Ahhh... I don't have a Tag called "Album Artist"  An example of the way one of the tracks is tagged is:

TITLE = Dream On
TRACKNUMBER = 1
ARTIST = Aerosmith
GENRE = Rock/Pop
ALBUM = Greatest Hits

After that song plays it will skip to:

TITLE = Your Song
TRACKNUMBER = 1
ARTIST = Elton John
GENRE = Rock/Pop
ALBUM = Greatest Hits

I wish I new how to code, but is there anyway you can make it shuffle based on directory?  So it plays all the track in the path "Albums/Aerosmith/Greatest Hits" then when it plays the last track in that folder it plays all the tracks in "Albums/Led Zepplin/Houses of the Holy" etc.?

If not and you can fix the above that would be great... This is the one feature I have in WinAmp from a plug-in that I can't find with foobar!

Thanks for making the effort with this pluggin!
Title: foo_shuffle
Post by: deer on 2005-01-18 16:52:09
Quote
I wish I new how to code, but is there anyway you can make it shuffle based on directory?  So it plays all the track in the path "Albums/Aerosmith/Greatest Hits" then when it plays the last track in that folder it plays all the tracks in "Albums/Led Zepplin/Houses of the Holy" etc.?


open liked for you folders and play with repeat order :-/
Title: foo_shuffle
Post by: tberman333 on 2005-01-18 20:11:21
Quote
Quote
I wish I new how to code, but is there anyway you can make it shuffle based on directory?  So it plays all the track in the path "Albums/Aerosmith/Greatest Hits" then when it plays the last track in that folder it plays all the tracks in "Albums/Led Zepplin/Houses of the Holy" etc.?


open liked for you folders and play with repeat order :-/
[a href="index.php?act=findpost&pid=266316"][{POST_SNAPBACK}][/a]


I don't understand what you mean? 
Title: foo_shuffle
Post by: deer on 2005-01-19 01:21:35
Quote
Quote

open liked for you folders and play with repeat order :-/
[a href="index.php?act=findpost&pid=266316"][{POST_SNAPBACK}][/a]

I don't understand what you mean? 
[a href="index.php?act=findpost&pid=266346"][{POST_SNAPBACK}][/a]


I mean: you add to playlist song(albums) what you want, and plpay then in repeat order. what's the difference? play few albums(by turns) in shuffle or repeat order.

PS: sorry for my English
Title: foo_shuffle
Post by: PoisonDan on 2005-01-19 08:35:08
Quote
Ahhh... I don't have a Tag called "Album Artist"  An example of the way one of the tracks is tagged is:

TITLE = Dream On
TRACKNUMBER = 1
ARTIST = Aerosmith
GENRE = Rock/Pop
ALBUM = Greatest Hits

After that song plays it will skip to:

TITLE = Your Song
TRACKNUMBER = 1
ARTIST = Elton John
GENRE = Rock/Pop
ALBUM = Greatest Hits
[a href="index.php?act=findpost&pid=266192"][{POST_SNAPBACK}][/a]

Well, that's the way the tags should be set up. Maybe you misunderstood my previous post: when you use "Album Artist", foo_shuffle uses the old algorithm from kode54, and when you don't have this tag, it will use my modification.

So it's a good thing that you don't have "Album Artist" set. In fact, your tagging setup looks identical to mine. So right now I can't explain why it doesn't work for you.

I'll have to think about it a bit... I'll probably PM you soon...
Title: foo_shuffle
Post by: tberman333 on 2005-01-19 21:52:35
Quote
Quote
Ahhh... I don't have a Tag called "Album Artist"  An example of the way one of the tracks is tagged is:

TITLE = Dream On
TRACKNUMBER = 1
ARTIST = Aerosmith
GENRE = Rock/Pop
ALBUM = Greatest Hits

After that song plays it will skip to:

TITLE = Your Song
TRACKNUMBER = 1
ARTIST = Elton John
GENRE = Rock/Pop
ALBUM = Greatest Hits
[a href="index.php?act=findpost&pid=266192"][{POST_SNAPBACK}][/a]

Well, that's the way the tags should be set up. Maybe you misunderstood my previous post: when you use "Album Artist", foo_shuffle uses the old algorithm from kode54, and when you don't have this tag, it will use my modification.

So it's a good thing that you don't have "Album Artist" set. In fact, your tagging setup looks identical to mine. So right now I can't explain why it doesn't work for you.

I'll have to think about it a bit... I'll probably PM you soon...
[a href="index.php?act=findpost&pid=266495"][{POST_SNAPBACK}][/a]



That is fine... I think I am just going to change my tags so no albums have the same name... So I will make the album name "Aerosmith's Greatest Hits" and "Elton John's Greatest Hits".  This should solve my problem.

Thanks for your help though!
Title: foo_shuffle
Post by: tberman333 on 2005-01-20 15:16:35
If anyone else has the problems I was having... I nuked my database and brought everything back in... once I did that the updated pluggin worked.
Title: foo_shuffle
Post by: Ollie on 2005-01-27 15:31:44
Love the update, thanks for doing this. One suggestion tho, would it be possible to select or deselect shuffle album 2 from playing say disc 1 then disc 2.

I personally prefer to listen to only 1 disc at a time, especially when it comes to the 4+ disc collections. Usually i have to use the shuffle tag set, but the problem with that is, how do i get it to play the albums in order like shuffle album 2 does?
Title: foo_shuffle
Post by: Leroy Bodacious on 2005-04-07 22:07:50
Quote
I suppose I could do this. Of course, shuffle is an order mode, not an action. I could make it toggle between Shuffle and Default, but now that there are more shuffle order modes....

I could reduce all shuffle modes down to a single order item and add a behavior selection to preferences, but this will complicate matters with 3rd party software accessing and changing the order. [...]
[a href="index.php?act=findpost&pid=145170"][{POST_SNAPBACK}][/a]

I can see that there isn't much development on this plugin anymore, but I'll post nonetheless. Would it be very difficult to add a function to toggle through the shuffle modes? As I see it shuffle is a core feature of a music player. I like to have global hotkeys for the core functions, and I can't devote more than one key to shuffle.

I haven't done any plugin development myself, though I do know C and Java well. Could anyone more knowledgeable get me started on adding this feature (ie documents, some hints, anything that might help).

Does the plugin explicitly add items to the Actions list in the Keyboard Shortcuts preference, or does the Actions list just pick up every menu item elsewhere in the program? I assume the former. It seems like if I knew how to add an item to the Actions list and tie it to a function in the plugin it would be simple to add a function to foo_shuffle.dll that switches the mode. Is this how this stuff works or am I completely off? Where can I read up?
Title: foo_shuffle
Post by: Leroy Bodacious on 2005-04-07 22:17:02
Well I found the Plugin Development Tutorial, <a href="http://www.hydrogenaudio.org/forums/lofiversion/index.php/t18138.html">here</a>. It looks like I should be able to figure this out. Any suggestions would still be appreciated.
Title: foo_shuffle
Post by: Zoominee on 2005-05-02 21:48:36
Question to kode54 about foo_shuffle:

I'm a very fond user of this plugin, and I have "Shuffle Album 2" enabled as playback order almost all the time.

However, I noticed that foo_shuffle (version 1.0.29) seems to play those albums more frequently that have more tracks on them. I can imagine an easy explanation for this - probably foo_shuffle just jumps to a random track on the playlist, and then starts playing the corresponding album from its first track to the last.

kode54, can you confirm that this is how it works?

i would like to see this feature changed so that albums with fewer tracks (or single tracks from an album) are not disadvantaged. I suggest to change the algorithm that finds the next album to play as follows: after having played the last track of one album, find a random next track from the playlist, and jump to that album. then find out which track to play first from that album (so far it is all as we have it currently), and ONLY play that album if the initial random track happens to be the one that would be played first - otherwise repeat the "jump to random track" step.

does anyone support my wish? would it be feasible to implement? thank you for listening!
Title: foo_shuffle
Post by: Mr_Rabid_Teddybear on 2005-05-02 22:13:56
Kode54 has stopped developing foo_shuffle. Here's the message attached to that plugin:

Quote
Warning:

This component is known to be problematic, in that it
crashes at random when files are added to or removed
from the playlist. Use at your own risk.

Since I no longer feel like maintaining this component,
I have been providing the source code so that any
capable developer can add features, or solve my own
shortcomings. Please feel free to fix the issues, but
don't expect me to welcome idiot features or half-assed
ideas with open arms and host them on my site. Meh.

Native shuffle will be implemented in the upcoming Foobar2000 0.9 BTW...
Title: foo_shuffle
Post by: GURT on 2005-06-03 22:27:04
is there a way i could make foo_shuffle play 2 random songs in a row by the same artist?

like i want to hear 2 random songs by random artist #1
then 2 random songs by random artist #2
etc.
Title: foo_shuffle
Post by: iOsiris on 2005-12-10 17:07:04
Question about foo_shuffle.  For the tag set option, I'm wondering if this means it is possible to make it so that it only plays songs that:
1: Hasn't been rated
2: Has a rating higher than ?

If so, how exactly would I be able to implement this?

Thanks
Title: foo_shuffle
Post by: fabiospark on 2005-12-11 10:36:46
Have a look at Foo_skip
Title: foo_shuffle
Post by: kheops on 2006-02-18 14:57:37
bump
i'm using foo_playcount.dll as well
is there a way to configure foo_shuffle to play songs which haven't already be played ?
something with %__play_counter% but no luck for me so far
thanks a lot
Title: foo_shuffle
Post by: mundschuss on 2007-06-26 20:19:25
is ths plugin still aviable (speiclay for foobar 0.9x?)

if, then plz reupload it =)

thanks

seeya
Title: foo_shuffle
Post by: willardjuice on 2007-06-26 21:00:27
is ths plugin still aviable (speiclay for foobar 0.9x?)

if, then plz reupload it =)

thanks

seeya



What's wrong with foobar's built in shuffle?
Title: foo_shuffle
Post by: rouge on 2007-06-26 21:37:53
Let the shuffle vs. random wars begin. Again.
Title: foo_shuffle
Post by: mundschuss on 2007-06-27 13:54:57

is ths plugin still aviable (speiclay for foobar 0.9x?)

if, then plz reupload it =)

thanks

seeya



What's wrong with foobar's built in shuffle?


it doesnt work well =)

But for what i need it: I wanna have a plugin, that randoms the wohle library, even if you have a small playlist, it should shuffle your entire library, without selcting the whole library in a playlist =)

and maybe you can do something like shuffle (never played), shuffle (played already before) etc.


seeya
Title: foo_shuffle
Post by: willardjuice on 2007-06-27 17:27:32
Quote
But for what i need it: I wanna have a plugin, that randoms the wohle library, even if you have a small playlist, it should shuffle your entire library, without selcting the whole library in a playlist


I don't get the point of this.
Title: foo_shuffle
Post by: mundschuss on 2007-06-29 09:01:32
sry, im bot good in english =(

so,m i try to explain it:

I have a foobar config where i have on the right side a foobar play Artist-Tree. Becuase it doenst look well when i have on the top the %all% button, i deleted the button, so i just have the artist.
And thats the problem. I cant select everything that i have in my library, just one artist (when i dont wanna change something in my config). so i wanted to have something like a button that shuffles/randoms the whole libary, without selecting the wohle library (i can only select one artist)

hope you understodd me =)


seeya