Patch for traversal of a file based on cue points?

Jul 21, 2013 at 4:19am

Patch for traversal of a file based on cue points?

Hello,

Does anyone know of a patch or relevant Max objects for the following?

I want to be able to set a list of cue points in an audio file and have them played in order, hopefully with some click protection as well.

For loopy music the list might look like this -

1,2,3,3,3,3,4,4,5,4,6,6,6,7,8,9,10,11…

The point with this is to be able to play and loop material that doesn’t obey strict tempo.

RTFMs welcome, and any help appreciated :)

Andrew

#256620
Jul 21, 2013 at 4:31am

Hi
Do you know the [chucker] object? The helpfile has an example of this type of buffer/playback munging, if I read your post correctly.

Brendan

#256621
Jul 21, 2013 at 4:43am

I don’t, will check that out – thanks.

#256623
Jul 21, 2013 at 5:01am

I think perhaps a patch based around play~ and buffer~ is what I need. Particularly the ‘start’ message for play~.

#256626
Jul 21, 2013 at 6:04am

Hi
If you could explain in more detail exactly what you mean by loopy 1 2 3 3 3 , I can put something together for you; I use play a lot.

#256632
Jul 21, 2013 at 9:59am

Wow, thanks!

I suppose you set a marker which forms a dictionary/hash:

[schema = key, start_time (min.sec.ms), duration]

1 => [00.01.00, 00.03.22]
2 => [00.14.03, 00.02.69]
3 => [00.43.31, 00.01.12]
…etc.

and then you send the start_time and duration values to play~.

Ideally, you would be able to discover the start_time and duration from a gui element, like a wave-editor-style display.

Asking around, I’ve heard Cubase has this facility – creating an arbitrary set of cue point and then playing through. But it’s interesting that play~ has all the functionality you would want for this, such as crossfading the sections.

Not sure if this makes any sense? :)

Andrew

#256652
Jul 21, 2013 at 1:13pm

Hi
to arbitrarily jump around a buffer using [play~] I would rely on phasor in the signal domain, instead of control messages like “start”. I could be misguided of course. The patch below allows you to use the waveform GUI to vary loop size and location (and pitch/direction, which I can never resist). If it contains any unfamiliar methods just shout at me for an explanation :)

Brendan

edit: added one object to stop it breaking
<code>

– Pasted Max Patch, click to expand. –

</code>

#256662
Jul 21, 2013 at 1:18pm


I forgot to ask how you wish to store and edit m/s/ms values; someone recently asked a related question about the [groove~] object; there’s [coll]; or Sam Tarakajian (of recent Mira fame/notoriety) has a tutorial video about the [dict] object under the pseudonym dude873, which may or may not apply here.

Brendan

#256663
Jul 21, 2013 at 1:20pm

Between hacking my patch above, and the [chucker] helpfile, you should get closer to what you need.

Brendan

#256664
Jul 21, 2013 at 9:08pm

I’d probably use either sfplay~ (with a set of cues established by ‘preload’ messages to sfplay~ or to sflist~) or buffer~ (with ‘start’ messages to play~, the parameters of which are stored in a coll).
<code>

– Pasted Max Patch, click to expand. –

</code>

#256687
Jul 22, 2013 at 2:16pm

Thanks a lot for the patches. I’ll try them and report back.

#256807
Jul 22, 2013 at 3:00pm

Brendan: sorry I couldn’t get yours to make any sound, but I’ll definitely look at it more closely to learn from it – thanks :)

Christopher: yours sounds very smooth, exactly what I’m looking for. I’ll try to learn from this.

#256810

You must be logged in to reply to this topic.