B-B-B-B-Beat: Ableton Beat Repeater

B-B-B-B-Beat

v0.9.2

A repeater inspired by Ableton’s Beat Repeat for Norns, with some added glitchy inspiration from MASF Possessed/MWFX Judder.

This script uses live audio or samples for all of its repeating magic! Read more about the different modes in the guide.

B-B-B-B-Beat UI

Demo

I’ll post a brief demo showing B-B-B-B-Beat in action, soon.

Requirements

Norns or Fates or device. For Fates owners, BPM value can be persistently controlled using the 4th encoder, for Norns owners it’s E2 the first page P0

Install/Update

B-B-B-B-Beat can be installed via Maiden’s project manager.

Params

Params be controled with Midi CC via MAP within params menu. For a detailed overview of the params and general functionality of this script refer to the guide.

Page Controller Description Values
All E1 Change page
All K2 Resync to beat 1
0 E2 or E4 BPM 20 - 300
1 E2 Interval length 1/256 - 4
1 E2 Grid length 1/256 - 4
2 E2 Offset amount 0/16 - 15/16
2 E3 % repeat occurrence (chance) 0 - 100%
2 K3 toggle chance (temp. set 0%) 0%
3 E2 amount of Grid variance 0 - 10
3 E3 % glitch occurrence 0 - 100%
3 K3 toggle glitch effect (temp. set 100%) 100%
4 E2 change mode live or sample live or sample
4 K3 load new sample Any valid audio file

Development

SSH into your Norns/Fates, then enter the following commands in terminal.

$ cd dust/code
$ git clone https://github.com/frederickk/b-b-b-b-beat.git

If you want to get the latest version run these commands:

$ cd dust/code/b-b-b-b-beat
$ git fetch origin
$ git checkout primary
$ git merge origin/primary

Changelog

  • v0.9.x
    • Added sample loading
    • Toggle live/sample mode in UI
    • Tweaked glitch effect
    • Fixed ‘core’ appearing in Norns list
    • Created GUIDE.md
    • Change K3 function to toggle params
  • v0.8.x
    • Separated clock and redraw coroutines (Norns: clock)
    • Fixed passthrough bug when chance below 100% :crossed_fingers:
  • v0.7.x
    • Added offset param
    • Updated UI; more detail
    • Removed SC engine, restart no longer required on install
    • Addressed repeat (tempo/softcut) bugs
    • Updated README.md with more detail
  • v0.6.x
    • Refactored codebase
  • v0.5.x
    • Fixed Glitch engine
    • Added param to toggle glitch noise (hiss)
    • Added param to toggle UI glitch
    • Added param to toggle stutter
    • Added to Maiden
  • v0.4.x
    • Fixed params bug; params:add_option
    • Fixed “Chance” param; default 100%
    • Added Midi passthrough
    • Enabled param reading/writing
  • v0.3.x Initial release
41 Likes

Dumb (obvious?) question: Audio Input or Samples?

2 Likes

d’oh! very good question! live audio.

I’ll update the above.

2 Likes

Can this take the internal tape loop as input?

Woah!
Is it syncable to external MIDI clock ?
Many thanks!

1 Like

Currently, it takes live audio only. Let me iron out some bugs and I’ll add “tape loop as input” on the feature roadmap.

@KthulhTriokus I can’t test whether setting the clock with midi works (I have limited gear at the moment) but I can confirm that Ableton link works.

5 Likes

Got an odd big earlier when I when to clock settings. It wouldn’t allow me to scroll over it. Kept forcing me to bottom of the page. I’m going to reinstall and check my end again.

Yeah, there’s something going on with settings. @okyeron had something similar with the Softcut menu. I’m going to dig into the issue tonight. Thanks everyone for reporting these things!

1 Like

I tracked down the menu bug and fixed it.

If anyone else runs into the same bug:
/home/we/norns/lua/core/screen.lua:215: bad argument #1 to 'screen_text_extents' (string expected, got table) read on

Summary

The bug was caused by the way I was setting options for params:add_option. My options object wasn’t just a simple array e.g. foo = {1, 2, 3, 4}, but rather a complex object such as foo = {bar: {1, 2}, baz: {3, 4}} and Norns did not like it. So always use simple arrays for options!

I pushed this params bug fix as well as some additional tidying, noted above in the Changelog. I’ll work on tape input and on-going bug squashing.

4 Likes

Thanks for the script! I just tried it!

4 Likes

The menu goes crazy when i’m increasing the glitch amount. It jitters around.
I’m on FATES latest firmware.
I test it further tomorrow. But hey, nice work !!!

It’s supposed to (seriously). It’s glitching, ha! If that’s annoying to more folks I can remove it, or in the meantime you can edit the script and replace the glitch_shift_px() function with the following:

local function glitch_shift_px()
  return 1
end
4 Likes

I think it’s pretty cool !

2 Likes

I love it, it looks so realistic! :sweat_smile:

1 Like

I’ve had a chance to make some significant updates and getting even closer to 1.0.0 release. You can get the latest build from Maiden look for commit hash (f54cae6), be sure to refresh the community list!

Overall I’ve squashed some bugs (I hope!) related to audio passthrough and improved performance/accuracy (separating clock and redraw coroutines). Also the UI is looking much better.

I’m looking into implementing loading samples from tape but I’m honestly not sure where to start, any tips would be welcome! Please report any bugs you all find. Onward!

2 Likes

happy to help with any sample loading q’s that the softcut studies don’t cover! lmk where there’s grey :slight_smile:

1 Like

:+1: thanks! now that I have time I’ll dig into the studies with more rigor.

1 Like

Installed this (via maiden) for the first time this morning and it doesn’t seem to do anything? Lots of graphic smearing when turning the knobs. I also noticed that it added beat, beat core/grid, and beat /core ui to the select menu?

Edit/update: the graphics do randomly clear and audio sporadically passes/repeats, but it also does this:

Turning off the “glitch ui” setting fixes it, sometimes.

The glitchy UI is actually intended and occurs more frequently and “violently” as the Glitch param gets closer to 100. The Glitch UI param disables this effect. Perhaps in future revisions, I’ll disable this effect by default.

As for the functionality, the Beat Repeater plugin from Ableton is notoriously confusing, so I am working on a guide and accompanying demo to demistify things.

All that said, I’m sure there are still bugs, a longer video with sound would be helpful for me to better understand the issues you’re having (and or clarify what is happening).

4 Likes