LopoChainer - easy sample chains for OS X


As a pet project, I made an app to make it quick/easy to create sample chains for the Rytm.


  • Pads samples so they align to sample slot boundaries.
  • supports a variety of input and output sample rates, will convert as required.
  • a hopefully easy to use & understand drag & drop UI


  • Only supports wavs
  • I am not in Apple’s developer program so cannot sign the app.

The app is free and available here: https://www.dropbox.com/s/rrqfj1y5o29yj9z/LopoChainer.zip?dl=0

Please try it out and let me know how you go.




This is the kind of task where I prefer to use a command-line script but for the non-geeks this app sure looks good and feels easy to use. The drag and drop is cool and I like the simple and clean GUI.

As a suggestion, allow to define the maximum length of a slice (super useful for one-shots, see there: https://github.com/desfrenes/elektron-tools/blob/master/elektron.py#L68 ) then truncate (or better yet: truncate and fade) what is after.

Also, it consumes way too much current for what it does right now (debug version ?)

Anyway, good Job !

Thanks dude, yeah that is a good idea about the max length. I am interested to hear how people want to make chains. Working out the minimum amount of padding while still keeping aligned to slots is kindof an interesting problem to nerd out over as well.

It probably draws a bit of power cause it’s core is built on OpenGL. It doesn’t use any native components (except the save/load dialogs) so it should be easy to make a windows version, I’m just not set up for windows dev atm.

Thanks for checking it out.

1 Like

I am interested to hear how people want to make chains

Working out the minimum amount of padding while still keeping aligned to slots is kindof an interesting problem to nerd out over as well.

While my script will add padding so that the chain is aligned to the nearest factor of 120, I found that chains are only really usable when there is exactly 120 slices (because it’s easier to jump to a particular slice with the encoder).

1 Like

I don’t understand what this means and what sample chains are… is it chopping up a sample so that the slices can be triggered with p-locks?

No it’s kinda the opposite, joining lots of samples so they are in one wav file, then using p-locks to play the different samples within the wav.

There’s 120 slots you can choose from on the rytm, it’s a bit tedious to manually make the start/ends line up to the slot boundaries. If you don’t though, when you trigger a sample you might hear the start of the next one in the chain, or not be able to get the start of the sample you want. The app will just work it out for however many samples you want to use in the chain.

@carlmikaelbjork has a good overview of what they are and how you might want to use them.


What is the advantage of doing this? So you can use more than 128 samples in one project?

Yeah, I also find it convenient keeping related samples together, like if i have melodic samples in a particular key or notes from a chord and can keep them all together. I like to plock different notes in scenes as well. No reason why you cant do it with individual samples, just a different way of working.

Another thing you can do is use the lfo set to sample start with the random waveform, can control the note/hit length using the amp envelope, a bit of a lazy way to adding variety to patterns.

1 Like

Hi not talking about just Rytm with MD MKI just have 32 sample slots and with this you can expand and organize the slots with chains of just hats or whatever you want. really useful

1 Like

The code i’ve written should work for any number of slots, I only have a rytm though so can’t test anything else. If anyones game to give it a shot let me know.

This works great! Thank you for your hard work :slight_smile:

1 Like

@dizzy thanks for making this!
Trying it out and wondering, is there a way to make it evenly divide samples? For example, If I have 20 snare samples of different lengths, should this make it so that each sample starts at 6, 12, 18 etc…
EDIT: ahh I found octachainer - but this is still great for a simple way to combine files into one larger one. Still curious if I’m just doing something wrong with Lopo, as it’s stated above that it’s supposed to line up samples with the RYTM’s 120 start points…

I did 120 sample as an experiment when I found this and it divided them perfectly. As far as I could tell it takes the longest sample and makes all of them that length.

Hopefully the developer will chime in because I haven’t used it much.

That’s true if you’re using 120 samples. If you have less it will work out the minimum amount of spacing required to align each to an endpoint.

@kalin at the moment its not possible to do what you are asking. I actually have to code in there that would do it, theres a few choices around how it can align the sample boundaries but for user simplicities sake I just picked one that would keep the files as small as possible.

When it aligns each sample to the nearest possible endpoint, it minimizes the total amount of extra padding required for the whole chain. It’s a bit gnarly under the hood because changing the amount of spacing on one sample might change the alignment of all the other samples but I found a neat way to do it.

Another options is to use a fixed number of slots per sample, which is what you are saying. It’s less efficient space wise but means you can modulate start point with an lfo and always get the full sample played.

Honestly I had no idea what people would prefer so I just picked one.

I wrote this during some down time at work and wasnt even sure if people would ever use it. It can also support an arbitrary number of sample slots which means it can be used for chains for dt/ot too, I didn’t put that code in the UI as well because I had no way to test it at the time.

Really appreciate everyone checking it out and giving some feedback. I’d like to revisit it, maybe later in Jan as I have a bit of time atm. If there’s anything else you’d like to see it do please let me know.


Ok better late than never :sweat_smile:

I’ve made a new version with a bunch of new ways to allocate slots:

  • Slots: Each sample will be sized to align on a slot boundary.
  • Equal Slots: Each sample will have the same length in slots. Leftover slots will silent.
  • Equal Slots (Copy): Each sample will have the same length in slots. If possible, copies of samples will be added to the end. Any leftover slots will be silent.
  • One Per Slot (Silence): Each sample will have a length of 1 slot. Unused slots will be silent
  • One Per Slot (Copy): Each sample will have a length of 1 slot. Unused slots will be copies of the samples.

All the info is here LopoChain v2 - Sample Chains for OSX