splnkr
project name: splnkr
project url: https://github.com/jaseknighter/splnkr
author: jaseknighter
description: an amplitude and frequency tracking effects processor/sampler/sequencer
discussion url: https://llllllll.co/t/51191
tags: sequencer audio_fx sampler jf crow grid

splnkr

an amplitude and frequency tracking effects processor/sampler/sequencer for monome norns with a set of 16 grid-controlled bandpass filters.

IMPORTANT WARNING: animating the bandpass filters with the grid interface can result in loud percussive sounds. use caution!

requirements

installation from maiden

;install https://github.com/jaseknighter/splnkr

(restart after installing)

norns ui: key/encoder controls

page 1: initial view

page 1: sample selector/cutter (after sample is loaded)

page 2: live sample selector/cutter

page 3: envelopes

envelope modulation

page 4: sequencer

norns ui: pages

on all pages the first encoder (e1) switches between the script’s 3 pages.

note: if a 16-column grid is not connected, the script’s 3rd (sequencer) screen is disabled.

page 1: recorded sample selector/cutter

the sample selector/cutter page controls a simple sample player/cutter with 1-3 voices.

key terms:

sample controls available on all page 1 screens:

screen 1: select/scrub sample/voice

with no sample loaded:

the script first loads with instructions to press k2 to select a sample. once a sample has been selected, e2 navigates to other page 1 screens.

with sample loaded:

the banded graphic that appears once a sample has been loaded depicts amplitude (volume) changes in the sample. darker bands represent softer sounds and lighter bands represent louder sounds.

screen 1 controls:

screen 2: play mode

there are five play modes that can be set individually (e3) for each of the 3 playheads:

on this screen, k1 + e3 sets the play modes for all six playheads at once.

screen 2 controls:

screen 3: adjust cut ends

the cutter(s) ends may be controlled on this screen.

screen 3 controls:

screen 4: move cutter

the location of the cutter(s) may be controlled on this screen.

screen 4 controls:

screen 5: adjust rate

the rate of each playhead may be controlled on this screen.

screen 5 controls:

screen 6: adjust level

the audio level of each playhead may be controlled on this screen.

screen 6 controls:

screen 7: autogenerate cutters

cutters may be added and removed from this screen.

if cutters are added with e3, each cutter is set at a point of the sample where a large change in levels has been detected (e.g. at the start/end of a sound).

if cutters are added with k1 + e3, each cutter is evenly spaced.

screen 7 controls:

page 2: live sampling selector/cutter

the live sampling selector/cutter page controls a simple sample player/cutter with 1-3 voices.

key terms:

sample controls available on all page 1 screens:

screen 1: select/scrub sample/voice

the banded graphic that appears once a sample has been loaded depicts amplitude (volume) changes in the sample. darker bands represent softer sounds and lighter bands represent louder sounds.

screen 1 controls:

screen 2: play mode

there are five play modes that can be set individually (e3) for each of the 3 playheads:

on this screen, k1 + e3 sets the play modes for all six playheads at once.

screen 2 controls:

screen 3: adjust cut ends

the cutter(s) ends may be controlled on this screen.

screen 3 controls:

screen 4: move cutter

the location of the cutter(s) may be controlled on this screen.

screen 4 controls:

screen 5: adjust rate

the rate of each playhead may be controlled on this screen.

screen 5 controls:

screen 6: buffer length

the rate of each playhead may be controlled on this screen.

screen 6 controls:

screen 7: adjust levels: preservation/recording/input

three controls may be modified on this screen:

screen 7 controls:

screen 8: adjust level

the audio level of each playhead may be controlled on this screen.

screen 8 controls:

screen 9: autogenerate cutters

cutters may be added and removed from this screen.

if cutters are added with e3, each cutter is set at a point of the sample where a large change in levels has been detected (e.g. at the start/end of a sound).

if cutters are added with k1 + e3, each cutter is evenly spaced.

screen 9 controls:

page 3: envelopes

the two shapes displayed on page 3 represent envelopes which may be applied to external devices (i.e. crow, jf, midi, w/). the first envelope is also be used to shape the granular envelope if enabled (see effects below for details).

an extension of Mark Eats’ envgraph class, the two envelopes may be set with a variable number of control points or nodes.

there are 5 types of controls for each of the two envelopes:

env level: the maximum amplitude of the envelope
env length: the length of the envelope
node time: when the node is processed by the envelope
node level: the amplitude of the envelope at the node time
node angle: the shape of the ramp from the prior node time to the current node time

with a few exceptions, the last of the three control types (node time, node level, and node angle) are adjustable for each of envelopes nodes.

fine grain controls: all of the envelope controls allow for fine grain control using k1+e3.

envelope modulation

pressing k1+k2 on the env screen brings up the env modulation menu. once enabled, the menu can be navigated using e2 and e3. each envelope has eight modulation parameters:

page 4: sequencer

selecting the third page (sqncr) using norns encoder e1 brings up the sequencer view. this page is only available if a grid with 16 or more columns is attached to the norns.

by default, the sequencer has 9 steps. each sequence step has 5 sub-steps by default. values are assigned to the sequencer’s sub-steps. each time the sequencer completes a cycle, the values assigned to the next sub-step are activated.

EXAMPLE

if step 1 of the sequencer has a sample rate of 1 assigned to sub-step 1 and a sample rate of 2 assigned to sub-step 2:

the sequencer is built around the Lattice and Sequins libraries.

sequencer grid controls

grid navigation with norns ui

some navigation of the grid is also possible via the norns ui:

clearing sequence data
copy/paste sequence data

copy paste is available in a number of areas:

sequencer norns ui

page 3 of the norns ui shows the sequencer’s state.

the screenshot above shows the norns ui when a sequence step is being setup, prior to a sub-sequence step value being set.

LEGEND

the screenshot above shows the values set for a given output/mode/param for a single sequin (sequence step) for a selected sequence set.

LEGEND

filterbank

parameters for the 16 channel bandpass filterbank may be controlled via the params menu or using the grid.

there are three parameters for each of the filterbanks’ 16 channels:

filterbank grid controls

LEGEND

mode selectors (1) filter mode selector (row 8, col 15): switches the grid to the bandpass filter control mode. (2) sequencer mode selector (row 8, col 16): switches the grid to the sequencer control mode. (note: using encoder e1 to select the norns sequencer view (page 3) will automatically switch the grid to the sequencer mode.)

filterbank view selectors (3) level view selector (4) reciprocal quality (rq) view selector: (5) center frequency (cf) view selector

(A) parameter value selectors the top 7 buttons in each row of the grid are used to set the value of the parameters of the filterbank’s 16 bandpass filters. if none of the top 7 buttons are lit in a grid column, the selected parameter (level, rq, or cf) of the bandpass filter at the selected slot is at its lowest value. if all 7 buttons lit in a column, the active parameter filter at the selected slot is at its highest value.

animation controls (6) horizontal animation: pressing this button (column 5, row 8) sweeps the values of each channel to the left cycling the values around to the far right channel after the values pass by the far left channel. if lit, pressing the button again turns off the animation. (7) vertical animation: pressing this button (column 6, row 8) sweeps the values of each channel to the upwards, cycling back to the channel’s min value when the max value is reached. if lit, pressing the button again turns off the animation.

parameter overlay (8) selecting button (column 8, row 8) overlays the values of all three filter parameters over one another, making it easier to see how they interact, especially with animation turned on.

misc parameters

the controls covered in the section below are found in the PARAMETERS>EDIT menu. with a few exceptions, these are not controllable with the grid sequencer.

data management

the current state of screens 1 & 2 and the grid sequencer may be saved, loaded, and deleted from the data management sub-menu.

record player

records the loaded audio sample. how the sample gets recorded depends on the play mode setting:

important note: if play mode is set to all cuts, all rate settings must either be positive or negative.

scales, notes, and tempo

set scale mode, root note, meter, and divisions

audio routing

unlike most other norn’s scripts, the splnkr script changes how audio is internally routed. this was done so that softcut audio can be processed by SuperCollider which isn’t the case with the default routing configuration. three routing options are provided in the params menu:

when the splnkr script is unloaded (e.g. when loading a different script or restarting norns), the script will reset the routing to the norns default settings.

amp/freq detection

the splnkr script’s SuperCollider engine includes frequency and amplitude detection which can be set in the params menu to trigger midi notes and crow notes/envelopes/gates/triggers. a number of options are provided to filter the frequency and amplitude (level) ranges sent to midi and crow. the notes sent to midi and crow can also be quantized to the values set in in SCALES, NOTES, AND TEMPO section of the params menu.

interesting feedback occurs when the source of audio that is routed to the SuperCollider engine from the norns audio in jacks (see audio routing above), is also being controlled with the splnkr script’s amp/freq detection capabilities.

inputs/outputs

settings for midi, crow, jf, and w/ are avaiable in the params menu.

credit and appreciation