[sharing] Gen.Sampler

do.while's icon

Hi !
My first steps into the darkness .

Just wanted to share a Gen sample playback journey inspired by Roald Baudoux playback solution found here https://cycling74.com/forums/sharing-der-niebelungen-looper-with-gen/ . Which was very enlightening . Thank you Roald ! It get me started !

Thanks to Peter McCulloch , for the presence on the forum . Many of your discoveries and elaborations are essential , i could gain and learn a lot with it , as most of the time your are penetrating the fields that im truly interested in.

As well from others over the years .
Thank you all for the input that is always inspiring .

////////////////////////////////////////////////////////////////////////////////////////////////

Sampler itself is a simplest sample playback engine , that has ability to loop sample region and crossfade within for more smooth and pleasant sonic results . Also provides looping forward and backward .

No additional sample interpolation is implemented .

Changing loop settings in realtime is not without artifacts , such avoidance would require much more CPU cycles . So i decided to make as much effort as i could to decease the amount of them instead of getting rid of them entirely .
Overall efficiency is a compromise of that fact anyway ,so i decided not to add any redundant computations at this stage as the main goal was to make crossfade looping satisfying in terms of sound AND performance .

There is a crossfading where equal power fade is computed , i did not find more efficient way than this .

And to be fair ,im not happy with the performance of that circuit somehow . Its my first Gen patch anyway . Ive been forced to provide a few temporal clocks for index traversal while looping in crossfade, as well a phase for the cross part . i Could not find better solution for such things ,as to avoid artifacts this is only what i could do .

I would be happy if some of you would be able to spot any weakness and maybe help to improve it as i really would love to use it on daily basis .

And i hope some of you will find it useful as myself . This is also the reason why im posting it .

Max Patch
Copy patch and select New From Clipboard in Max.
vichug's icon

thanks for this, it does nice sound! but the loop attribute doesn't work, i think. or did i not understand how it's supposed to happen ?

do.while's icon

Hello Vichug !

im sorry , i should describe it :/
in order to use loop ,please drag loop selection on your UI waveform .

patch updated witch description ! . also "sample drop" section will setup flonum range correctly in relation to newly dropped sample .

Thanks !

vichug's icon

Hey! well i tried to drag loop selection afaik... will give it a retry !

alfonso santimone's icon

great do..while! if you could comment your gen code would be easier to learn !

Florent Ghys's icon

great patch! thanks for sharing

MAX.XAM's icon

Thanks for the sharing!