Shuffle and crossfade in playlist~ ?

Weston Jones's icon

Hello,

Is there a way to shuffle and crossfade the tracks in a playlist~ object?

Thanks!

Mr. Banshee's icon

Here is a randomized shuffle, not sure if it's possible to do crossfade in playlist

Max Patch
Copy patch and select New From Clipboard in Max.

Source Audio's icon

to randomise something, one needs a range which works as first.
means randomise should not produce number higher than number of tracks.
Then to crossfade, you need 2 players, one to play, fade out and stop,
next to start and fade in.

Weston Jones's icon

Thanks both of you! I found the below crossfade patch on the forums (from https://cycling74.com/forums/crossfade-into-next-track-in-sflist) that crossfades two tracks. But it doesn't use the playlist~ object so not perfect for me, but maybe helps someone else.

Max Patch
Copy patch and select New From Clipboard in Max.

Banshee, in your example patch, is there a way to trigger the bang to the random object when the playback of a track ends? The 4th outlet of playlist~ is "playback notifications" and prints a "done 1 + {the path to the audio file}" when the track ends. Is there a way to use that information to trigger a bang to send back to the random object?

Thanks again!

Mr. Banshee's icon

The playlist object is fairly new object and it's a simplified version of sfplay~ or groove~. If the crossfade patch you found on the forum essentially does what you want, i would suggest just building off that until you have the amount of players you want. What you sacrifice using the playlist object is the detailed outputs from the aforementioned objects. So the crossfade patch you found needs the length of the clip's output to trigger the delay to cause the crossfade to begin. To my knowledge, i do not think that is possible to do this with playlist at this point in time (maybe it's something Cycling74 will add in the future).

The example patch i sent to you i literally just threw it together to show you how i would approach the randomization. In this case, the Random object needs a metro to determine the speed of the random trigger. It was a trick i learned from watching Cycling74's patching examples videos on youtube https://www.youtube.com/watch?v=nvidApDYy_Q if you haven't watched them, i would suggest diving in as i found them very helpful.

Here is another take on it, with manual inputs that perhaps you will find more useful. Hope this helps get you closer to your vision.

Max Patch
Copy patch and select New From Clipboard in Max.



Source Audio's icon

choosing to work with playlist will give you more work than if you used
populated umenu.
as first because playlist can be changed on the fly, draging files onto it,
and you need to learn how to extract infos from playlist
like number of used tracks, which one is currently playing etc.
The patch you posted will not help you much.
It is no problem at all to bang random object when one player ends the playback.
But back to the plan

you need 2 identical playlists
1- issue number of tracks to set range for random object
(use urn instead of random to avoid repetitions)
2- create a gate which on every playback change sends fade out and stop
to curently playing playlist~, and start and fade to oposite playlist~.
If you use line~ object to fade you can use the bang it creates when destnation is reached
to stop playback when fade out is done.
That is a simple part.
Next a bit more complicated is to monitor the status of both playlists and if
no track is playing, no need to switch and no need to either fade out or in.
that would be a challenge
here is something to get you going

Max Patch
Copy patch and select New From Clipboard in Max.

I don't like playlist at all...
Sometimes it behaves strange, does not report things etc
If status does not get updated, one could use signal outlet to
determine if any of 2 is playing or not

michael heitmanek's icon

Thanks for the info and patches

It was just the info I was looking for.

Nino Marević's icon

Hi! I'm relatively new to Max/MSP and I'm working on a project that consists of 7 samples, each about 30–40 seconds long. I'm looking for a way to trigger them all with a single click so that they play in a different order each time (without repetition), using crossfades to create the impression of one continuous composition.

Does anyone have a suggestion on the easiest way to achieve this?

Falk Grieffenhagen's icon

Hi Nino,

Welcome to the max forum

It’s better to ask this question in a new thread since it’s not really a follow-up to the previous

For questions like this you should always deliver a patch so we can see where you got stuck. Asking for complete patches in this way will more likely cause this sort of teacher type answers like this one.

Try to decide your big task in sub tasks like

  1. how to corssfade

  2. how to play without repeating the order

  3. How to trigger…

    search the forum for the those sub tasks…you will surely get help if it’s clear that you tried to solve yourself

    discribe your problem as precisely as possible usually this gives half of the answer

    cheers falk

Nino Marević's icon

Hi Falk!
Apologies — this was the closest solution I had come across, so I continued the thread here. I’ll create a new question/topic, and just to clarify, I started from the patch that Mr. Banshee shared here.
Thanks for the guidance!