argen

@mlogger & @SPIKE: great hearing those demos.


@SPIKE

thanks for reporting the mistake in the instructions :+1:

i only have a shield, so can’t reproduce the sleep behavior unfortunately.

for the sample params, i’m afraid i just use timber blindly as a lib & if bugs exists in the length reporting it might be inside it.

3 Likes

Hey, am I just thick or are you only able to map all four rings to one outgoing midi channel? I was just trying to sequence my m8 from this script and it wasn’t giving me the option to assign more than one channel of midi.

This is a great script, already tonnes of fun. Thank you so much! And very much appreciate more love for the arc!

thanks for reporting, should be just fixed.

also:

  • feature: (basic) grid support to edit current ring pattern!
  • fix: led not firing on some high speeds
  • fix: density decrease was too fast
  • usability: don’t make screen blink by default (tweakable in params)
7 Likes

You rock, homie.

Works like a charm now.

1 Like

I got an init error when trying to load the script. Here’s what I saw in maiden.

# script init
### SCRIPT ERROR: init
/home/we/dust/code/argen/argen.lua:431: attempt to call a nil value (method 'new_sprocket')
stack traceback:
	/home/we/norns/lua/core/norns.lua:146: in method 'new_sprocket'
	/home/we/dust/code/argen/argen.lua:431: in global 'init'
	/home/we/norns/lua/core/script.lua:131: in function 'core/script.init'
	[C]: in function 'xpcall'
	/home/we/norns/lua/core/norns.lua:147: in field 'try'
	/home/we/norns/lua/core/engine.lua:91: in function </home/we/norns/lua/core/engine.lua:89>

commenting out the lines below allowed me to get the script up and running, but I’m sure that’s probably not the best solution, so I wanted to flag it here to see if there was a better approach.

  -- local sprocket = s_lattice:new_sprocket{
  --   action = arc_quantized_trigger,
  --   division = 1/32,
  --   enabled = true
  -- }

sounds like your unit doesn’t have norns: update 221214 applied! if you’re on 220306 or later, a quick SYSTEM > UPDATE should right things – otherwise, additional steps here: norns: new image 220306

1 Like

new release, including:

  • pattern save in PSETs (thanks to @sixolet & @zbs for the pointers)
  • hot-plug detection of arc / grid
  • START / PAUSE / STOP / RESET (via grid)
  • MIDI transport (START / STOP / CONTINUE), configurable both in & out (untested)
  • fix: trigger display not firing when at high speed

this feels pretty solid & complete as it is.

i’ll certainly add in the future more advanced features using grid:

  • more shortcuts (notably a button to control all 4 ring patterns at once when doing changes)
  • sub-pattern copy/paste

and maybe also:

  • more than 4 pattern at once?
  • random sample selection (coupled w/ a big & free sample pack, such as blips)
16 Likes

WOOOO!!!
can’t wait to run this update!

THANKS!!!
:partying_face:

update on the UPDATE…

FRACKEN AWESOME!!!

apologies for flooding the thread with more vid-noiz…but…i really put the MIDI transport control through the ringer and it never fracked up!
THANK YOU THANK YOU!

tonight’s session was nothing but argen, Mbase11 and a NoysToise NTSH.
i really dug into the LFOs in argen to create shifts in pitch, stereo placement and dynamics.
its so organic and such a fluid experience with creating rhythmic permutations of noiz…

@eigen
would it be possible to create MUTES and RESETS of an ARC on the grid?

also…here’s a view of all that noiz in action on Instagram…

5 Likes

Thank you! That did the trick!

1 Like

Argen is endless fun and the results with it have all been really nice so far. Thank you very much for bringing this to Norns! :grin:

5 Likes

Hey, really enjoying this still. Thanks for all that’s gone into it. I wonder, how feasible is it to add another 4 tracks. Like an alt voice for each ring somehow?

not tested enough, but should just work if you edit those lines.

on-screen display might be a bit meh, and there might be some performance hiccups.

i plan on working on more live performance features before bumping the number of voice. notably i want:

  • a “snapshot” i can quickly go back to so that one could f* up everything for a bar and then go back to normal (inspo for this: Trentemøller & Birgir from GusGus)
  • something akin to mlr’ recallable patterns
6 Likes

Thank you, I’ll give it a crack. Snapshot would be so useful btw.

1 Like

Hey @eigen is the “randomize samples from configured folders” feature mentioned here is what is implemented in the EDIT > Randomize option or something in the script code that needs adjusting? I find something new to explore every time I play with Argen. Thank you! :raised_hands:

1 Like

yeah, esp. when the Randomize Mode is set to either:

  • ptrn+kit: pick a random drum kit & 4 random samples from it
  • ptrn+sample: pick 4 random samples from all drum kits

right now only drum kits matching one of those patterns gets selected. i need to have this user-configurable in something like ~/we/dust/data/argen/fav_kits.

right now you could test it by downloading some of the CC blip drum kits and placing each of the extracted folders under ~/we/dust/audio/blips/.

sorry for the lackluster documentation on this script so far. i have another wip script i’m kinda obsessed w/ that is taking all my attention rn.

3 Likes

No worries on the docs. Pretty intuitive from a new user standpoint for sure. Thanks for clarifying the Randomize modes. I’ll give the blip kits a go and let you know.

UPDATE:

Works great and sounds fantastic!

2 Likes

alright new small release w/ customizable favorite kits for random sample selection.

active only when Randomize Mode is set to either:

  • ptrn+kit: pick a random drum kit from favorites & 4 random samples from it
  • ptrn+sample: pick 4 random samples from all favorite drum kits

on next launch, the file will get created under /home/we/dust/data/argen/kits.lua.


one can manually edit it to add / remove entries.

for example, for adding dek sample packs, assuming you placed them under folder audio/glia/ (e.g. for wassadek, /home/we/dust/audio/glia/wassadek).

return { "common/606", "common/808", "common/909", "blips/*",
"glia/*" -- <- new entry
 }
6 Likes

Thanks for another great update! Unfortunately it throws an error: init after install:

Summary
# script init

loaded kit from /home/we/dust/data/oilcan/default-1.oilkit

loaded kit from /home/we/dust/data/oilcan/default-1.oilkit

loaded kit from /home/we/dust/data/oilcan/default-1.oilkit

loaded kit from /home/we/dust/data/oilcan/default-1.oilkit

### SCRIPT ERROR: init

/home/we/dust/code/argen/lib/sample.lua:139: attempt to call a nil value (global 'tab_save')

stack traceback:

/home/we/norns/lua/core/norns.lua:146: in global 'tab_save'

/home/we/dust/code/argen/lib/sample.lua:139: in field 'init_playback_folders'

/home/we/dust/code/argen/argen.lua:375: in upvalue 'old_init'

/home/we/dust/code/nbout/lib/mod.lua:89: in global 'init'

/home/we/norns/lua/core/script.lua:133: in function 'core/script.init'

[C]: in function 'xpcall'

/home/we/norns/lua/core/norns.lua:147: in field 'try'

/home/we/norns/lua/core/engine.lua:91: in function </home/we/norns/lua/core/engine.lua:89>

I backed up my last argen version before trying the updated version and it works as expected with pattern+kit and pattern+sample modes but I do see some errors being thrown in matron:

Summary
# script init
loaded kit from /home/we/dust/data/oilcan/default-1.oilkit
loaded kit from /home/we/dust/data/oilcan/default-1.oilkit
loaded kit from /home/we/dust/data/oilcan/default-1.oilkit
loaded kit from /home/we/dust/data/oilcan/default-1.oilkit
Loading sample kit: /home/we/dust/audio/blips/Blips 015 - Uono
Loading sample kit: /home/we/dust/audio/blips/Blips 008 - Vent
lua: 
/home/we/dust/code/timber/lib/timber_engine.lua:291: attempt to compare nil with number
stack traceback:
	/home/we/dust/code/timber/lib/timber_engine.lua:291: in upvalue 'sample_loaded'
	/home/we/dust/code/timber/lib/timber_engine.lua:611: in function 'core/osc.event'
	/home/we/norns/lua/core/osc.lua:104: in function </home/we/norns/lua/core/osc.lua:102>
lua: 
/home/we/dust/code/timber/lib/timber_engine.lua:291: attempt to compare nil with number
stack traceback:
	/home/we/dust/code/timber/lib/timber_engine.lua:291: in upvalue 'sample_loaded'
	/home/we/dust/code/timber/lib/timber_engine.lua:611: in function 'core/osc.event'
	/home/we/norns/lua/core/osc.lua:104: in function </home/we/norns/lua/core/osc.lua:102>
Loading sample kit: /home/we/dust/audio/blips/Blips 009 - Faint
Loading sample kit: /home/we/dust/audio/blips/Blips 018 - ~nqst
Loading sample kit: /home/we/dust/audio/blips/Blips 018 - ~nqst
Loading sample kit: /home/we/dust/audio/blips/Blips 016 - V-Blox

Not sure if there is a correlation or not, but I wanted to share just in case. Thanks!

1 Like

thanks for reporting.

i fixed #1 (was a function i forgot to commit).

i wasn’t able to reproduce #2 but i suspect it may be the case of the code attempting to load files which aren’t music files (mp3, wav…). i added some mechanism to only load files w/ a recognized extension (may solve the issue).

1 Like

thank you! I tried to figure out the cause for #2 as well and thought it was .txt files in the blips folders or the wassadek file naming convention so I renamed them and removed all txt files and the issue still persists. hmmmn.

Summary

lua: 
/home/we/dust/code/timber/lib/timber_engine.lua:291: attempt to compare nil with number
stack traceback:
	/home/we/dust/code/timber/lib/timber_engine.lua:291: in upvalue 'sample_loaded'
	/home/we/dust/code/timber/lib/timber_engine.lua:611: in function 'core/osc.event'
	/home/we/norns/lua/core/osc.lua:104: in function </home/we/norns/lua/core/osc.lua:102>

These are two file examples that return the error

Blips 008 - Vent > fx_back_noise.wav (17 secs)

Glia > wassadek > wassadek - 019.wav (2 secs)

Not sure if this gets us any close to finding the cause but sharing my findings. Thanks!

1 Like