Easygrain

norns
#1

easygrain

a simple granulator, now with optional arc support

easygrain is a portable granulator built upon @artfwo’s Glut engine (renamed here as “EasyGlut” without modifications). This script can granulate a file using only the norns interface, making it great for exploring sounds while traveling. In this new version for norns 2.0, optional arc controls and displays have been added for faster parameter changes. Additionally, the speed and pitch ranges have been widened.

Requirements

  • norns 2.0
  • an audio file to granulate
  • a moment to think
  • arc is optional
  • restart norns after installing (new engine)

Documentation

Before starting, load a file from the PARAMS menu.

button 2 begins/stops playback
button 3 resets playback
knobs change screen parameters
hold button 1 to change parameter set

arc:
knob 1 selects active mode. left crescent is speed/size/pitch. right crescent is jitter/density/spread.

Please note that the Glut engine includes its own reverb. If you hear tons of reverb, either turn down the Glut reverb mix or turn off the system reverb. This is a waste of battery, so I will be removing it from the engine in an upcoming update.

Download

v1.0.0 - https://github.com/mhetrick/easygrain/archive/master.zip

Todo:

  • Remove reverb from EasyGrain engine.
  • Reduce number of voices in EasyGrain engine.
  • Find anything else extra that could contribute to battery usage.
28 Likes

Glut
#2

reposting to the correct thread here:

getting a few errors on with easygrain on init, but it appears to work OK otherwise

# script run
loading engine: EasyGlut
<ok>
lua: 
/home/we/norns/lua/core/paramset.lua:154: attempt to index a nil value (local 'param')
stack traceback:
	/home/we/norns/lua/core/paramset.lua:154: in function 'core/paramset.get'
	/home/we/dust/code/easygrain/easygrain.lua:68: in global 'arc_redraw'
	/home/we/dust/code/easygrain/easygrain.lua:101: in field 'event'
	/home/we/norns/lua/core/metro.lua:165: in function </home/we/norns/lua/core/metro.lua:162>
lua: 
/home/we/norns/lua/core/paramset.lua:154: attempt to index a nil value (local 'param')
stack traceback:
	/home/we/norns/lua/core/paramset.lua:154: in function 'core/paramset.get'
	/home/we/dust/code/easygrain/easygrain.lua:68: in global 'arc_redraw'
	/home/we/dust/code/easygrain/easygrain.lua:101: in field 'event'
	/home/we/norns/lua/core/metro.lua:165: in function </home/we/norns/lua/core/metro.lua:162>
Engine.register_commands; count: 14
0 Likes

#3

Good catch. I’m probably starting the arc’s redraw callback before the params are initialized. I’ll clean that up when I’m removing the reverb from the engine.

2 Likes