On 23/10/26 at 17:36, Greg Wooledge wrote:
I've added the "if [ -z "${assigned[rand]}" ]; then" statement because $rand
had many occurrences of the same value so I tried with the "assigned[$rand]"
array to avoid that, looping in the circumstance "$rand" had a value already
assigned.

It's*fine* if rand gets the same value more than once in this loop.
It just means that particular slot in the playlist will be swapped
more than once.  It doesn't mean a song will be repeated.

In my understanding I supposed that some clip was left in its original position (skipped) but now I realize that it is not possible because "$i" changes for each iteration.


I suspect you don't understand what the original code is doing.  I added
the comments for a reason -- they tell you what each section does.
I didn't explain every line, because that's not how code comments should
be used.

I had my coding in my mind. That it encompassed an unique $rand value necessary as array index to shuffle the playlist[], as I did in my previous coding. In other words I did a sort of confusion mixing my previously coding concepts and apply them to your code.


If you need help understanding the original code (e.g. an explanation
of every single line, one by one), feel free to ask.

Are you stuck on the word "shuffle"?  It's normally used with a deck of
playing cards.  If you have a deck of cards, and you shuffle it, then
the same cards are still in the deck, but they're in a different, random,
order.  You don't magically get two of the same card, unless your deck
started out with duplicates.

No, I'm OK with the "shuffle" meaning.


That's what this loop is doing.  It takes your array of filenames and
shuffles it.  The filenames are randomly re-ordered.

I apologize for the noise, but since I was unsure, I decided to write you an email, I'll restore the code to its original state.

Kind regards,
--
Franco Martelli

Reply via email to