Instantly "multiply" buffer content
So im banging my head against this for days... for my live looping setup I want to have the function that users of Mobius would know as "instant multiply". Meaning you can copy the content of a buffer and paste it onto its own end to double its length without any interruption of the sound.
So after searching around I've found an example using Uzi~ > Peek~ > Poke, for merging two buffers, and modified it into this>
That seemed to work great at first, but when I started to get some more cpu drain It introduced big gaps in the out coming sample, and would sometimes interrupt the sound.
So I kept on looking for solutions and after a while a post pointed me to the jit.buffer~ and the tutorial #14 on matrix positioning. After a bunch of hours I managed to figure out how to position the buffer content correctly with a matrix, but then trying with a slightly longer sample I noticed that anything over 3 seconds seem to exceed the jit.matrix max size.
(here's where I got to with that.. )
So what should I try next? Or anyone has a fix to the above approaches? Uzi would be fine if it would be a bit (small bit) delay for the process, as long as it does it properly in all cases. The faster the better though,, but it has to be able to deal with longer clips up to at least 30 seconds to be usable for my purposes.
Here is the uzi solution in a bigger patch.
Any help would be greatly appreciated!
try to modify buf.Op or try el.buffet~ from eric lyon
You mean modify the java code? From what i can see buf.Op cant stitch two buffers together, just merge them. If i could insert silence at the start of a buffer then merging would be fine, but didnt find a way to do that yet. Do you have any advice on where to learn how to modify the code? Right now i cant even figure out what files to open.
Im trying to install the eric lyon stuff to get el.buffet~ , but cant figure out how to compile them yet, or find my way to the right information on how to do it. Do they work in max 8 and 64-bit?
Learning how to do it in Gen~ also seems to be an option. And since i can merge with the buf.Op, i can add silence to the end of a buffer by merging with a longer one, so then i just need a way to move the sound in a buffer forward, meaning offsetting the index of every sample by a certain amount. Feels like there should be a fast way to do that that im just missing.
Reading this right now hoping to find a solution in there.. https://cycling74.com/tutorials/gen~-for-beginners-part-4-working-with-buffers-%C2%ABand-data%C2%BB
Are you in mac or windows ?
compiled el.buffet 64 bit is mac only.
at this link :
http://www.fredrikolofsson.com/pages/code-max.html
under misc
you will find instructions how to add buffer copy function with offset and duration.
It just inserts a function in existing buf java class.
If its't too much of a headache for you to do that, I can upload moded buf folder
and example patch.
buf folder is in Mac version here:
Max.app/Contents/Resources/packages/max-mxj/java-classes/classes/buf
on windows start from resources folder next to Max.exe
THANK YOU SO MUCH! That did it! Following the instructions from fredrikolofsson went smooth, and it works perfect!
Im on a mac, so if you happen to have a compiled set of the el. package to share that would be really nice! Dont need it so urgent now, but looked like a lot of nice stuff in there!
There is complete compiled set of 64 bit mac version, but also with problems.
check this forum:
https://cycling74.com/forums/buf-op-on-a-long-buffer
The external sent at the end is working ok for copying.
use it instead of one from package
It is extremely fast and does not interrupt dsp chain
I did compile own variation of it, using samples as time base,
cause ms conversion is problematical sometimes,
rounding can sometimes skip a sample ...
But i renamed it, renamed also functions, and did not finish all
functions I wanted.
Is in my to do list
------------
this is package download link: http://disis.music.vt.edu/eric/main/lyonpotpourri/
or direct :
http://disis.music.vt.edu/eric/main/wp-content/uploads/2016/06/LyonPotpourri-3.0-Package-06132016.zip
Another thing - even in latest package there is no mention of el.buffet~ overdub function
which was added some years ago as a result of a forum thread.
It comes very handy, for merging or for undo functions,
if one overdubs a portion phase inverted.
here is some info about it