Awake

awake

time changes.

two looped sequences. the first sounds notes, the second transposes the notes of the first. loop lengths can change. sequences can be morphed and randomized. configurable scales and root notes.

the polyperc engine is included— a simple polyphonic filtered decaying square wave. parameters are all controllable. a vari-speed delay with feedback is on the end.

awake is a super-minimal reduction of kria.

Requirements

  • norns (NOTE: 2.0 only, coming later this week!)
  • grid (optional)
  • MIDI sync (optional)

Documentation

E1 changes the mode. K1+? means hold K1 then push ?.

STEP

* E2 navigates position, E3 changes position.
* K2 toggles the sequence to edit. K1+K2 clears all steps.
* K3 morphs the current sequence. K1+K3 randomizes.

LOOP

* E2/E3 set loop length.
* K2 resets to play to zero. K3 jumps to random position.

SOUND

* E2/E3 adjust selected parameter. K2/K3 move selector.

OPTION

* E2 adjusts BPM. K1+E2 change division.
* E3 changes root note. K1+E3 selects scale.

Download

v2.0.0 - awake

github.com/tehn/awake

39 Likes

Is there a way to save the current session or at least not to reset it but leave it as it is to come back?

you can save the parameters (to the default slot) but currently i haven’t implemented step/loop/etc saving. i’ll work on it!

2 Likes

I had not tried MIDI learn yet, so I gave that a test tonight with awake.

A couple of issues:

  • setting a midi control knob on cutoff only gives me a range between 50hz and 171.55hz. If I change it higher with the encoder, the midi knob will always go back to that low range.

  • if I try to learn for bpm, (learn) comes up, but after sending a midi CC nothing shows in the right column to confirm which CC got mapped. It does not seem that the mapping “sticks”. Same goes for everything in the top group of params.

  • also some errors with beatclock changing from internal to external (see below)

stack traceback
lua: 
/home/we/norns/lua/lib/beatclock.lua:115: attempt to call a nil value (field 'on_select_external')
stack traceback:
	/home/we/norns/lua/lib/beatclock.lua:115: in function 'beatclock.clock_source_change'
	/home/we/norns/lua/lib/beatclock.lua:126: in field 'action'
	/home/we/norns/lua/core/params/option.lua:48: in function 'core/params/option.bang'
	/home/we/norns/lua/core/params/option.lua:35: in function 'core/params/option.set'
	/home/we/norns/lua/core/params/option.lua:40: in function 'core/params/option.delta'
	/home/we/norns/lua/core/paramset.lua:166: in function 'core/paramset.delta'
	/home/we/norns/lua/core/menu.lua:552: in function 'fileselect.enc_restore'
	/home/we/norns/lua/core/menu.lua:137: in function 'core/encoders.callback'
	/home/we/norns/lua/core/encoders.lua:57: in function 'core/encoders.process'
lua: 
/home/we/norns/lua/lib/beatclock.lua:115: attempt to call a nil value (field 'on_select_external')
stack traceback:
	/home/we/norns/lua/lib/beatclock.lua:115: in function 'beatclock.clock_source_change'
	/home/we/norns/lua/lib/beatclock.lua:126: in field 'action'
	/home/we/norns/lua/core/params/option.lua:48: in function 'core/params/option.bang'
	/home/we/norns/lua/core/params/option.lua:35: in function 'core/params/option.set'
	/home/we/norns/lua/core/params/option.lua:40: in function 'core/params/option.delta'
	/home/we/norns/lua/core/paramset.lua:166: in function 'core/paramset.delta'
	/home/we/norns/lua/core/menu.lua:552: in function 'fileselect.enc_restore'
	/home/we/norns/lua/core/menu.lua:137: in function 'core/encoders.callback'
	/home/we/norns/lua/core/encoders.lua:57: in function 'core/encoders.process'
lua: 
/home/we/norns/lua/lib/beatclock.lua:115: attempt to call a nil value (field 'on_select_external')
stack traceback:
	/home/we/norns/lua/lib/beatclock.lua:115: in function 'beatclock.clock_source_change'
	/home/we/norns/lua/lib/beatclock.lua:126: in field 'action'
	/home/we/norns/lua/core/params/option.lua:48: in function 'core/params/option.bang'
	/home/we/norns/lua/core/params/option.lua:35: in function 'core/params/option.set'
	/home/we/norns/lua/core/params/option.lua:40: in function 'core/params/option.delta'
	/home/we/norns/lua/core/paramset.lua:166: in function 'core/paramset.delta'
	/home/we/norns/lua/core/menu.lua:552: in function 'fileselect.enc_restore'
	/home/we/norns/lua/core/menu.lua:137: in function 'core/encoders.callback'
	/home/we/norns/lua/core/encoders.lua:57: in function 'core/encoders.process'
1 Like

thanks, I’ll check it out. though I recall mapping filter frequency with great success a couple days ago.

beatclock is a bit undertested, thanks for the reminder

Enjoying the param rework in Halfsecond, @tehn. Noticed it while playing with Meadowphysics. Very playable delay. :sunglasses:

1 Like

I can’t seem to get midi in to work with awake, works fine with loom. any ideas?

getting lua: /home/we/norns/lua/lib/beatclock.lua:115: attempt to call a nil value (field 'on_select_external') in the matron console

I am not sure I am understanding how MIDI is implemented in Awake:

Is it just sync?
If so: is it for Norns to sync to external device or the other way around?
Does Awake send MIDI value of the notes played?
If so, how do I set this up?

Selecting a CV-Pal in MIDI devices produces no effects for me.

Thank you?

I connected it directly to my prophet rev2 via usb, set the appropriate midi device number and it worked with no problems. Have you checked that cvpal is identified in system/devices/midi? Have you specified in Awake’s Params the correct number? Probably yes, but it’s the first thing I’d check.

4 Likes

those are the magic words.
thanks!

4 Likes

I love this elegant little script.
The synth is lovely.
Simple is great.

I don’t want to mess simple up but I have a couple of param ideas that I think could make the sound even lovelier.

HPF and LPF on the delay feedback
Some kind of flutter on the delay for random chorus/detune
Probability 1 and Probability 2 for notes occurring.

That’s all!

1 Like

I’m looking into this and this might be a question for @tehn

line 156: clk.on_select_external = reset_pattern

what’s supposed to be happening there? There’s no reset_pattern function or variable that I can find anywhere.

thanks for spotting this. i made an issue and will get to it: https://github.com/tehn/awake/issues/1

3 Likes

Hi. Should the parameters, like step length and note length, be able to learn from my 16n? Right now they’re not. (For contrast, Moln was able to learn from my 16n). I’m on 2.0.1. Thanks!

1 Like

right now parameter mapping only works for the “control” param type whereas the step/note lengths are “numbers”.

we’re working on an overhaul of the param menu which will include adding various mapping functionality.

so in short, no it won’t work until the update. but you could write a custom mapping function in the script itself quite easily (the studies will impart enough knowledge to do this)

3 Likes

Thanks. Yeah, I was wondering about Awake because the 16n works with MLR, Moln, and others. Thanks for 2.0 and beyond.

wow, messing with Awake for fifteen minutes taught me so much about Kria.

5 Likes

…do tell…:thinking:

1 Like

Did the delay get removed in the recent updates? Seems not to be working after I pushed the latest git pull over to my Norns.

be sure your CUT level is turned up in the MIX page

1 Like