Norns: scripting



You might also take a look at nano instead of vim. It’s not as cryptic.

man nano from your command line

There’s probably a way to watch the maiden output on the command line, but I don’t know the incantations for that one.


vim is my goto editor, so I’m using the same approach. here are a few random vim thoughts.

I could go on forever. the best advice I can give is to learn as you go. whenever something feels inefficient, that’s probably a good sign that you can learn a vim command to make it easier.


the time invested in becoming proficient in a good editor (vim, emacs (although obviously as a vim user I’m duty bound to make jokes about emacs users - it’s contractual in the vim eula) and there are now a few good desktop ones that people swear by) is well worth it.


Don’t forget :syntax on (in vim)


oh yes! there are a lot of good things you can and should add to your .vimrc file in the home directory. here are a few that I find useful(you may want to change tabs from 4 to 2 since it seems to be the lua norm).

colorscheme darkblue
syntax on
set hlsearch " hilite search "
set ic " ignore case "
set nu " line numbers "

filetype plugin indent on
set tabstop=4 " width of a TAB(\t) is set to 4 "
set softtabstop=4 " TAB(\t) inserts 4 spaces when in insert/edit mode "
set shiftwidth=4 " indents have a width of 4 "
set smarttab
set autoindent

" return to last edit position when opening files (you want this!) "
autocmd BufReadPost *
     \ if line("'\"") > 0 && line("'\"") <= line("$") |
     \   exe "normal! g`\"" |
     \ endif


once you’re ssh’d in:

cd norns
./ > /dev/nulll &

running matron without websocket redirection means you can type REPL directly into the terminal (helpful!) but there is no readline (ezra originally made a readline terminal-based maiden prior to the web maiden, but we removed it from the repo… maybe we can revive it)

workflow for script development:

open another terminal, run vim editing scripts in dust. to see changes, save file and use system menu on hardware to simply re-launch (SELECT) the script.


What’s the best approach if I want to load a bunch of short samples to be triggered by grid? (like a grid of one-shots)

Looks like ack allows for 8 samples. To get like 32 or 64 samples, would I need to make a version of ack that supports that many samples, or are those like “voices” in a hardware sampler and I could potentially have many different samples loaded for each voice?


You could have more buffers than voices and provide a command to point a given voice at a an arbitrary buffer - this is simple and oefficient in SC but you gotta worry about buffer boundaries I guess.

Alternatively you could load your multiple samples into one large buffer and skip around in it


any special scripting necessary to get param midi learn working with a particular script? or any stuff that breaks it? a few folks have reported that they can’t map any of the params except volume in cranes :frowning:


parameter mapping is currently limited to Control param types.

working on a big update for all param types, along with range scaling and rotary encoder support

(also fyi new standalone softcut is amazinggg)


so so so stoked!

rad to know re: Control params – speeds are all options, so mystery solved, thank you!


Yeah, thanks so much. Looking forward to the update. Not hurry. Got plenty to keep me busy.