4 track performance-oriented sample sequencer for norns


Grid (optional, but recommended)
Ack engine


A four track sample sequencer, with each track featuring 4 slots containing decimal values between 0 and 255. A decimal is converted to its binary representation to form part of the track’s sequence. 1 sends a trigger and 0 denotes a break.

Tracks can be muted, with per-track level probability and divisions. Sequences can be rotated along its binary string. Vials has grid control to extend the performability, where you can loop on decimals, update sequence values in either binary or decimals, alongside some other controls such as manual triggers, mutes, loops, on the fly sequence loading/saving and fx sends/randomisation/kill switches. The aim has been to expose as much control as possible to the norns and grid interface to allow for a highly performative sequencer.


v1.1.1 - last updated 3 May 2020

[GitHub - nattog/vials: 4 track binary sequencer for norns]


Looking forward trying this! Does halfsecond have to be installed separately? If so, how and where does it get installed? Thanks!

It is installed if you have Awake already - if not go grab it here :

1 Like

finally wired up a FaderFox PC12 to Vials and it added so much rhythmic noiz to tonight’s installment of: Late Night Noiz for Late Night Fiends


Woah, really nice! Thanks for sharing it! Sounds like a great combo with the faderfox

1 Like

hi ya @nattog!

first off…THANKS for listening to some of my noiz!

so…picking up from the norns HELP thread.

for some reason VIALS does not like faders CC#34 and #35 coming from my 16n.
it learns and responds to all of the other faders and when i use the FaderFox PC12 knobs it happily responds to all of those.

any clues to what might be the issue?

thanks for any help!!!

Hey! Alright lets figure this out.

Some questions:

  • Is Vials the only script on your Norns that does not receive 16n’s cc#34 and #35?
  • Is it always that it does not learn these values or just after a certain sequence of events, e.g. powering on your Norns, loading Vials, then assigning MIDI?
  • So we’re on the same page, can you make sure that you’re running the latest version of Vials - if not just git pull or download and replace the entire folder on your Norns (depending on your install method) . If you updated recently, anytime after July then you can ignore this.

If you can give me definite steps to reproduce that would be helpful - I just tested this morning with my own 16n, didn’t have any problems using those CC#s

1 Like

Update with global clock and some other changes coming in the next few days


Script is updated with Norns clock and param groups. I’ve added in my library Passthrough and included Halfsecond within the repo so that there are no longer any external dependencies. Update in maiden or links above.

I’m going to be working on some much bigger changes over the next few weeks, leading to a 2.0 release but wanted to get this update out first.


oooh neato!

i really look forward to what you will be adding!
this is still one of my highly used scripts!

1 Like

hey ya @nattog!

so i was broadcasting tonight and i updated to your recent version of VIALS and noticed a few weird things going on.

first off…clock works as solid as it ever has!
(thank you for that)

i can’t seem to get to the DIV and PROB adjustments by holding K2.
i tested on a second norns that wasn’t updated just to make sure i was accessing them correctly.

pushing “S” just makes the GRID blink and doesn’t access the load/save page.

1 Like

Thanks for checking in and letting me know about these. I already have a fix locally for the load save page - gonna be out this afternoon, but i will see to it and the other bug asap!

1 Like

@SPIKE pushed a fix - LOAD/SAVE should be working as expected, and same for DIV + PROB adjustments now. Update via Maiden or zip above :slight_smile:

1 Like

really enjoying this script!

I’m very intrigued by this script but I can’t seem to get it to run by holding ENC 1 or pressing the S key on the grid, seemingly every other key does what it’s supposed to.

Anyone else have this issue? ENC 1 doesn’t change the BPM value either, it’s works for all normal things not related to this script.

Hey there!

Do you get any errors in maiden? I will try running it and see if anything is immediately obvious to me…

however, I wrote this script a while ago, and I haven’t used or looked at it in at least 18 months. It was my first explorative project with lua and frankly the codebase is messy and convoluted, and i’m not surprised if there are bugs. So I consider this script to not be in active development anymore as I’d prefer to focus on new projects.

1 Like


Here’s the code output from Matron, it seems to be throwing a couple errors at the very end. Thanks for taking a look, I realize this script is quite out of date so no worries if you don’t intend to come back to it.

Matron Print

script clear

script load: /home/we/dust/code/vials/vials.lua

including /home/we/dust/code/vials/lib/vials_utils.lua
including /home/we/dust/code/vials/lib/hs.lua
including /home/we/dust/code/vials/lib/passthrough.lua

script run

loading engine: Ack

reading PMAP /home/we/dust/data/vials/vials.pmap /home/we/dust/data/vials/vials.pmap not read.
Engine.register_commands; count: 34
___ engine commands ___
bitDepth if
delayFeedback f
delayLevel f
delaySend if
delayTime f
disableLoop i
dist if
enableLoop i
filterCutoff if
filterEnvAttack if
filterEnvMod if
filterEnvRelease if
filterMode ii
filterRes if
includeInMuteGroup ii
kill i
loadSample is
loopPoint if
mainLevel f
multiKill iiiiiiii
multiTrig iiiiiiii
pan if
reverbDamp f
reverbLevel f
reverbRoom f
reverbSend if
sampleEnd if
sampleRate if
sampleStart if
speed if
trig i
volume if
volumeEnvAttack if
volumeEnvRelease if
___ polls ___

script init

starting halfsecond
datafile found
metro_stop(): pthread_cancel() failed; error:
specified thread does not exist
metro_stop(): pthread_cancel() failed; error:
specified thread does not exist

So I loaded up Vials again - what a trip to revisit this!
I suspect that your Clock input is set to MIDI or something - which would mean that you can’t change the BPM, and it (i hope!) is expecting a clock start message to run. Could this be it? If i set the clock to internal it runs

1 Like

Oof… I feel silly, you were totally right! Working as expected now, thank you!

no worries - i had the exact same when i ran the script as i also use midi clocking a lot

1 Like