Skip to content

Instantly share code, notes, and snippets.

@trentgill
trentgill / flashcrash.lua
Last active June 8, 2021 01:27
flash crash quantizer script
--- flash crash
-- quantizer & w/syn output
function init()
input[1].mode('scale',{0,1,2,3,4,5,6,7,8,9,10,11})
ii.wsyn.ar_mode(1)
ii.wsyn.fm_ratio(1)
output[2].action = pulse()
end
@trentgill
trentgill / crow3_syntax.lua
Last active June 24, 2021 14:48
crow v3 syntax
--- crow syntax reference
-- many libs have multiple access styles
-- i think we need to be more explicit about the idiomatic choices
-- all examples / bowery / tutorials should use *the* way
--- input
_ = input[n].volts --> returns current voltage
input[n].query() --> sends voltage to the stream handler
input[n].mode('mode' [, args]) -- function style
@trentgill
trentgill / norns_crow_namespace.lua
Created April 29, 2021 22:47
support more native-style crow syntax on norns
--- norns library for crow namespace support
-- enables full syntax support for calling crow functions, and setting crow values
-- does *not* support directly querying values or function responses from crow
--- helper fns for quoting (aka stringifying) lua constructs
quotekey = function(ix)
-- stringify table keys with [] style
local fstr = (type(ix)=='number') and '[%g]' or '[%q]'
@trentgill
trentgill / crowy.lua
Created February 4, 2021 00:19
demonstrating crow.loadscript
--- crowy: this script runs on crow
function init()
print '~crowy~'
metro[1].event = function(v) print("tick: "..v) end
metro[1]:start()
end
@trentgill
trentgill / sequinsdemo.lua
Last active March 21, 2021 01:34
demonstrating usage of the forthcoming 'sequins' lua library for ordering values
--- sequins.
-- a demonstration
engine.name = 'PolyPerc'
local MusicUtil = require "musicutil"
-- TODO operate by reference so the scale can change without recreating the sequin
dim = {3,6,9,15,18,21,-6}
bass = {-6,-12,-15}
lyd = {12,14,16,18,19,9,11,24}
--- clocky -- a demo of norns' clock library on crow
-- NB: requires experimental crow beta
-- available from https://github.com/monome/crow/pull/352
myarp = {}
myarp2 = {}
mylfo = {}
--myskal = {0,2,4,7,9,12,14,16,19,24}
#define NUM_OSCS 6
void ii_vox( uint8_t* d )
{
if( !jt_state.smode ){ return; } // ignore if *not* in syn mode
int8_t voice = (int8_t)d[0] -1;
if( voice >= NUM_OSCS ){ return; } // voice out of range
int16_t note = (d[1] << 8) + d[2];
--- An exploration of Just Friends' Geode
j = ii.jf -- alias used throughout
function init()
j.mode(1)
input[1]{ mode = 'change'
, direction = 'rising'
}
--- An exploration of Just Friends' Geode
j = ii.jf -- alias used throughout
function init()
j.mode(1)
input[1]{ mode = 'change'
, direction = 'rising'
}
--- Exploring crow's input modes
function init()
input[1].mode( 'volume', 0.001 )
output[4].slew = 3
end
new_base = false
input[1].volume = function( level )