I have achieved 'beat-chopping' on the Digitakt, with a little external assistance

Sorry if this has been mentioned here before. Since getting the Digitakt I’ve been obsessed with finding workarounds for all of the most commonly requested features. One workaround has eluded me until today. I wanted to use a performance beatslicing feature, similar to the Octatrack, which ‘chokes’ the slice that is playing as soon as the next one is hit. With the help of an Axoloti (but would probably work just as well with Max or PD, or a versatile-enough MIDI toolkit), I’ve done it.

Note: This is for the performance of chops, not for slicing the sample itself. You still have to set the start point of each chop. Also, it requires a latency of around 65 milliseconds if that’s a dealbreaker for you. Isn’t for me :slight_smile: .

This is what it consists of on the Digitakt:

  • Either using both MIDI out and in, or using USB MIDI
  • As many of the MIDI tracks as you want individual chops (can be used for other things when you’ve recorded your chop)
  • One longer sample that you want to use

What your MIDI toolkit (Axoloti, PD, Max, etc.) needs to do:

  • take the values of MIDI note messages from DT MIDI channels and translate them to CC 19 going out of the toolkit back into the desired channel of the DT. The note value is the start point depth. I was using channel 5 on the DT and receiving on channel 11 on the Axoloti.
  • Important! Use an object which switches the bipolar note value to unipolar before sending back to DT as CC.
  • use the trigger of the DT MIDI note messages to trigger both the CC and the note messages, but send a constant value as your note going back into the DT, so you’re not pitching your chops, unless you want to.
  • Important! The second inevitable drawback to using external hardware, you have to delay the trigger of the note value, so that the CC messages reaches the DT before the note value does. Otherwise, you’ll have to hit your MIDI key twice for it to reach the desired chop. You’ll see in the provided image that I used a “delayed pulse” object/module to achieve this.

If you can live with a latency of ~65 ms, we’re choppin’ baby. Happy to answer any questions about this.

This trick probably works just as well with pre-sliced individual samples, and your note-to-CC conversion controlling the sample slot instead of the start time.

1 Like

Sadly, I’m not so certain for the future of the official Axoloti, or the alternative Zrna Akso, but for the enthusiastic DIY’er, it looks as though someone has ported the Axoloti firmware to the STM32F4 discovery board here: GitHub - sebiik/axo-on-discovery-board: Axoloti on STM32F4 discovery board

And if you manage to make one using this, let me know because I suck at coding, but want to try and help where I can to make the Axoloti available to everybody.

Nice work!
It’s sad that Axoloti may not last. Don’t know what happened there but they have been out of stock for as long as I can remember.
Nice that someone ported it to a discovery board so the project can live on. A port to a Teensy or a Raspberry Pi could keep this alive even longer I think.

I did a similar thing on Bome Midi Translator Pro, I’ve also seen people trying it with other methods like Max4Live.
This is the first Axoloti version though.

The big dealbreaker is that 65ms delay, there’s no way to compensate for that in a live situation. And compensating for 65ms in a DAW would create massive buffers for every other track resulting in bad performance.
I’m also pretty sure that 65ms is not the maximum delay. I measured up to 200ms which is completely unworkable.

The delay has nothing to do with the note reaching the Digitakt before the CC though. The problem lies within the Digitakt itself and the way it handles sample memory or, more specifically, midi messages pertaining to sample memory.
The delay depends on how far apart in memory the different “slices” are and possibly also on how much memory is in use.