bakeneko! (now extra haunted)


a haunted drummer companion


the main goal of this script is to help non-developers get comfortable with editing code! the script is relatively short, hackable, and (hopefully) understandable. it uses simple lua patterns and clear variable names. (minus one :ghost: to keep things interesting.)

musically, bakeneko has six tracks. each track contains a simple sequence that causes samples to play. bakeneko uses lattice and therefore the norns system clock, so you can sync it with other gear.

open up bakeneko.lua in maiden and you can change all sorts of attributes. after editing, save, and re-run the script. here are some global attributes:

start_playing_on_boot = true, -- start playing as soon as you launch the script?
default_bpm = 120, -- change with e2 while running
default_level = 100, -- how loud is the whole thing
sample_directory = "/home/we/dust/audio/common/808",  -- change to whatever directory you want

and each track attribute can either be set to “random” a particular value:

track_1_on = true, -- toggle the sample on and off
track_1_level = 100, -- max level of this sample
track_1_density = 50, -- percentage representing how dense the notes are if randomized pattern is used
track_1_period  = 1/16, -- periods can be anything (i think)
track_1_haunted_fraction  = 1/16, -- ghost
track_1_length = 16, -- how many periods before looping back to 1?
track_1_sample = "808-BD.wav", -- specifcy a sample name
track_1_pattern = "x---x---x---x---", -- draw a pattern with "x" and "-"

track_2_on = "random", -- ...or spin the wheel with "randoms"
track_2_level = "random",
track_2_density = "random",
track_2_period = "random",
track_2_haunted_fraction = "random",
track_2_length = "random",
track_2_sample = "random",
track_2_pattern = "random",

“Extra Haunted,” You Say?

yes, track_n_haunted_fraction what could it do? hmmm… how to find out?


finally, you can get a taste of “live coding” with the matron tab in http://norns.local/maiden. while bakeneko is playing:

tracks[1].on = false -- turn off track one
tracks[2].level = 25 -- sets track two's level to 25%
bpm = 100 -- change the bpm
tracks[4].current_step = 1 -- set track four's current step back to 1
toggle() -- start / stop


  • norns
  • samples


available in maiden or directly.


restart norns after installation!

as of july 2021 bakeneko! uses the experimental goldeneye sample engine! (new super collider engines always require a norns restart.)


This is awesome !!! thanks


its very rewarding to be able to “code” a drum beat like this! rich complexity and also generous simplicity at the same time - excellent work as always!


props to @license for the x-x-xx-x--- thingy. that came from song. i saw it and was like “that is the most norns-assed thing i’ve ever seen”


lmao :heart: biggest compliment I’ve received all week


Props for the demon cat reference. Spectacle Theater did some horror streams last halloween and I learned what a Bakeneko is from this movie. Highly recommend.

1 Like

nice. i got it from cyberpunk 2077 lol.

1 Like

caveat - im a newbe. but yeah with each roll I get lovely shuffling kroutrock beats. couldn’t see any videos of this being demoed? was wondering if im missing something with each roll i get a new beat but each track appears to be playing the same sample, is that what its suppose to ?

or maybe i’m only hearing a couple of tracks at once, t1 set to level 100 the rest random. t1 is also set to 4x4 , 808 Kick but dont seem to hear that track

hmm, what does the config chunk of your code look like? did you change any of this? bakeneko/bakeneko.lua at main · northern-information/bakeneko · GitHub

its was same as that to begin with, but then did a test and set each track to 6 steps incrementing which triggered 1 at a time, they all trigger the same random sample , but track 1 is not set to random

also removed the app and reinstalled from maiden but still the same, but i’m enjoying pretending to be a coder

did another test set every track to a specific name “808 CP” etc and it seems that what ever sample is specified in t2 is whats triggered by the other tracks

that is super weird. i’ll poke around and try to reproduce

I’m only hearing a single sample playing at a time per given roll, I can hear different ones if I re-roll, but there’s no multi-sample sequence, just a single drum sound.

I didn’t edit any code, this is from installing without any tweaks.

what do you have set as your sample directory? are there samples there?

The default from the norns installation, the 808, 909 folders, etc, I haven’t tampered with any file structures. The script is accessing the samples, re-roll pulls a different 808 sample each time, it just sequences it individually.

I’m using a Norns Shield, most current update.

edit: ok, I got the script open, my mistake! Still only one track sounding though.

also confirming that only 1 sample plays on all tracks each roll. I’ve set each track to have a different sample and confirm that it’s being set in console but it only plays track_2_sample, it appears.

messing around with this as a base for something else so I’ll hopefully have a fix (as my free time allows).

@Fuzzpope & @speakerdamage i was able to reproduce but just debugged for a bit and have no clue what’s going it. it’s haunted!. i’ll get a fix in place in the next few days…

1 Like

@Fuzzpope @speakerdamage fixeddddd.


bakeneko! is now extra haunted. :ghost:


a new haunted_fraction probably does things related to swing maybe.

bakeneko! has also been refactored to use lattice and the experimental goldeneye sample engine from the mad mind of dr. @infinitedigits.


Yay, thank you!! I’ll try it out this evening after work.

1 Like

I’m getting error:DUPLICATE ENGINES on startup because I have both goldeneye and bakaneko installed.



If I remove the one from bakeneko it will not just automatically find the one inside goldeneye right?

these engines shouldn’t collide. are you on the latest versions of each? there was a brief period where this happened to me too: