Hi everyone,
I'm struggling at making my own loop station solution inside pd. I'm
trying to mimic SooperLooper, that is:
loop to avoid glitches.
I have code a patch, but it is very messy (1 abstraction for master, x
abstractions for slaves). I am using xrecord & xgroove (for
crossing-fading start / end). The patch is kind of working but I am
getting glitches when starting and stopping the recording (I think it
was okay when using a bigger jack buffer - (I am now at 64...)).
Thanks!
The way to deal with this in real-time is to fade in for a short period at the start, and fade out at the end. In order for that to respond in real time, I've found a good way is to delay the audio stream by a tiny value (e.g. 5ms) then fade the audio at 5ms - 1 audio block (about 1.46ms). That way, when you hit "stop" on the sample playback object (e.g. tabread4~ or xgroove~) the audio stops, but the 5ms delay means that the fadeout starting at that moment will happen before the audio you hear stops (because it is delayed by 5ms).
I hope that makes sense. Patch enclosed! Ed Ninja Jamm - a revolutionary new music remix app from Ninja Tune and Seeper, for iPhone and iPad http://www.ninjajamm.com/
Gemnotes-0.2: Live music notation for Pure Data, now with dynamics! http://sharktracks.co.uk/
On Wednesday, 26 March 2014, 21:52, "puredata@11h11.com" puredata@11h11.com wrote:
Hi everyone,
I'm struggling at making my own loop station solution inside pd. I'm trying to mimic SooperLooper, that is:
- multiple sync options
- multiple quantize options
- something i am not sure SooperLooper do: cross-fading begin/end of
loop to avoid glitches.
I have code a patch, but it is very messy (1 abstraction for master, x abstractions for slaves). I am using xrecord & xgroove (for crossing-fading start / end). The patch is kind of working but I am getting glitches when starting and stopping the recording (I think it was okay when using a bigger jack buffer - (I am now at 64...)).
Thanks!
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Not sure exactly what is making the click / glitch in my patches. I
think the fact that I bring down the jack buffer to 64 didn't help...
but I cannot be sure.
I am still looking the archive / search engine to find a loop station
in pd, but so far I found only basic implementation (no sync, no
quantize, no cross-fade).
I am sharing my workinprogress, but it's based on xgroove~ / xrecord~
(didn't find other solution for cross-fading between beginning &
ending of a table).
It would be nice to have a solid loop station in PD.
à+
On Thu, 2014-03-27 at 05:09 -0400, puredata@11h11.com wrote:
Not sure exactly what is making the click / glitch in my patches. I
think the fact that I bring down the jack buffer to 64 didn't help...
but I cannot be sure.I am still looking the archive / search engine to find a loop station
in pd, but so far I found only basic implementation (no sync, no
quantize, no cross-fade).
I don't know the loop station. Can you elaborate a bit how quantize and sync work on? I think I understand how quantization works with MIDI, but with audio?
Roman
NOt quite what you're after but Katja's SliceJockey is my favourite looping code for Pd http://www.katjaas.nl/slicejockey/slicejockey.html Certainly worth checking how she's done it.
Yeah sooperlooper, I used to make use of that before Pd. It's good stuff.
Jb
On 27 March 2014 07:14, Roman Haefeli reduzent@gmail.com wrote:
On Thu, 2014-03-27 at 05:09 -0400, puredata@11h11.com wrote:
Not sure exactly what is making the click / glitch in my patches. I think the fact that I bring down the jack buffer to 64 didn't help... but I cannot be sure.
I am still looking the archive / search engine to find a loop station in pd, but so far I found only basic implementation (no sync, no quantize, no cross-fade).
I don't know the loop station. Can you elaborate a bit how quantize and sync work on? I think I understand how quantization works with MIDI, but with audio?
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
hello roman,
there are several ways to sync audio loops, in most methods we try to read audio samples in a way that they are in sync by changing read speed or chunk size, or stretching it with fft, or by making slices with bonk~'s attack detection.
The last methods allows to quantize sound by forcing a slice to be played on a timecode which is given by the size of the loop divided into sixteenthes, something like this, each slice could eventually be stretched to fit the timecode.
Le 27/03/2014 08:14, Roman Haefeli a écrit :
On Thu, 2014-03-27 at 05:09 -0400, puredata@11h11.com wrote:
Not sure exactly what is making the click / glitch in my patches. I think the fact that I bring down the jack buffer to 64 didn't help... but I cannot be sure.
I am still looking the archive / search engine to find a loop station in pd, but so far I found only basic implementation (no sync, no quantize, no cross-fade).
I don't know the loop station. Can you elaborate a bit how quantize and sync work on? I think I understand how quantization works with MIDI, but with audio?
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Thu, Mar 27, 2014 at 2:18 PM, puredata@11h11.com wrote:
I'm struggling at making my own loop station solution inside pd. I'm trying to mimic SooperLooper
I guess you want to stick with pure pd if you are avoiding the SooperLooper app, but a half-way point might be to use the old SooperLooper ladspa plugin, whose source includes pd patches to get up and running.
Yes I would like to have a solution within PD. The Meh patch is very
very nice, but I am not sure how cross-fading and quantization is
implemented (will try to contact the author).
Will take a look at ipoke~.
Will put my patch on github, maybe someone will want to join me in
making a loop station in pd...
Roman about quantization for audio, right now my patch doesn't time
stretch, only making sure that the loops are in perfect sync even if
you stop the looping too early or too late. Sooperlooper documentation
on syncing: http://essej.net/sooperlooper/doc_sync.html
à+
if anyone wants to work on this: https://github.com/patricksebastien/loopStationPD fork & pull request