I'm sitting in a room

Yoann's icon

Hi,
I have some friends will do a performance based on "I'm sitting in a room" from Alvin Lucier
https://www.youtube.com/watch?v=2jU9mJbJsQ8
The idea is:
1_ I record a loop (mic input, drums, voice, body movements...)
2_ I play back the loop (just playback of what was just recorded)
3_ I play the loop again and add another layer to it (previously recorded buffer +~ mic input)
4_ I play this recording back
5_ I play the loop again and add another layer to it (previously recorded buffer +~ mic input)
and so on...

They were first doing it with a loop station, but the quality was not really satisfying, so they ask me if I could make them a max patch.
It didn't sound very difficult so I said yes, although I'm really not a msp person, I'm more exclusively jitter/visual stuff...
Well, at the end it turns out to be a nightmare...

This is what I have so far.

Could someone help or give me some advice ?

Thanks

Yoann

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

Ps: We have to solve the problem for next monday...

Yoann's icon

Ah...
Important point, how it work:
Start the patch in presentation
click the reset button (maybe twice, just to be sure...)
press space bar to start the recording of the first loop
press space again to stop the recording and start playing back the recording (the buffer is cropped to this duration)
at the end of the loop playback (+/- : it's done live, looking at a timer, without the computer screen...) press space to start the next loop recording.
und so weiter...etc...

Well.... I'm not sure if it's understandable....

anyway, any help would be much appreciated ;)

thanks

Y

tada's icon

Hi YOANN
The patch doesn t work as expected and it s a liitle bit messy.
The patch was triggered (record) sometimes from the reset button
There is a [k 32] object which is [key]-->[sel 32]?

But you must define
-the duration is fixed or not?
-each new recorded loop is triggered in the end of the previous loop or by hand?

Maybe is more appropriate to start from the beginning

Yoann's icon

Yes, It's a bit messy... Sorry.
K32=key+sel32

The length is define by the first recording loop.
The beginning and end of the recordings are triggered by hand.

The sequence of events is:
1 press space to start the first recording
2 press space to end the recording and start playing back the loop (without recording)
3 press space to start the next recording (including the first loop)
And back to 2

Thank you for having a look.

Yoann

Ps: the loop length will be around 5min and the patch/performance will run for 5h.

tada's icon

ok Yoann

It is much more clear now
I will try to respond to you in a few hours when i have a free time.
(unless someone else does)

Giorgos

tada's icon

ok so here it is!
this is my version from scratch..

press space-bar and

1) start record
2) start playback (x sec the length of the buffer)
3...n) start another recording..the playback of the new recording will start after x sec according the first estimated time

3..n : means that you repeat the same step

why is that? because if you have determine the length of the recording from the first two steps there is no need
for stop (according to what i have understand) there is only start a new record and
the playback of the new recording will start automatically after x sec according the first estimated time

But if you want to control exactly the time when a new recording starts the playback, just let me know and i see what i can do

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

Hope this helps!

Yoann's icon

Tada,
Many thanks for your time and help.
I must say I don't really understand the need for 2 buffers.
In the mean time I talked with the person who asked me to do this patch, we simplified the idea and I have now something that works (thanks to Keith, a friend who also helped me on that)
I will eventually have to do the "real" thing, which is: starting and stopping the recording has to be done manually/live because it also correspond to a gesture during this performance.
Well... for now I have something that will do the job for next week's performance and no extra time to think further about it...

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

Thanks again

tada's icon

Hello Yoann
Glad to hear you find a solution.
The two buffers are necessary because can not write in the same buffer in which you play the data.
(unless you are sure that the two indexes never meet)
so i transfer the data from the "recording buffer" [buffer~ sound_th]
to "playing buffer" [buffer~ sound_th-Ν] every time the recording ends.
Good luck with the performance and if you upload any video content in the future
just give a link..i would definetly love to see it!