Awake

hi did you ever get this sorted? Ive run into the same issue and I too have never coded. Thanks!

I deleted we via maiden then reinstalled, that did the trick.

1 Like

since the most recent Norns update it seems im getting an error init upon loading the kr rings script. It does actually load but I do not have any control over the script. Does this need to be updated or?

Yes, you should update both awake-rings, and we from the Maiden package manager.

And if you’re still having issues after doing that, try a sleep and restart, and then DM me the error that appears in Maiden.

I had to redownload the we folder to get the most recent version of the karplus engine. That should do it.

Cross-posting for anyone who may be interested in using Passersby with Awake

4 Likes

I just recently remembered that I can use an ornament and crime running hemispheres as a usb midi to cv interface (and vice versa). I have really been enjoying using Awake to sequence a single modular voice. Last night I realized that I was only using 2 of the 4 cv outs to do this, and was wondering if there is a way to get 2 voice polyphony by trading midi channels per step. I’m happy to give it a go but don’t know where to start.

I guess my first question is how crow & JF ii handle this? Is it on the norns side or the crow side of things? I don’t have either, so I’m not clear on it (a crow is in my future). Is it a sort of round Robin, each new note is sent to a new voice? Does it cascade as decay settings get longer? Does that mean it happens on the JF side?

A run through the studies is probably a good place for me to start after some coffee…

I don’t know much about the technical implementation, but yes it appears to be a round robin handled on the crow/JF side. All the norns script does is send crow a command to play a JF note.

For trading midi channels per step you would do this in the norns script though. You’ll need to add an additional midi channel parameter (since currently awake expects only 1 channel), and then keep track of the “active” midi channel in a global variable. Then any time you send a midi note on you could send it to the “active” channel and flip it between channel 1 and 2, for example.

1 Like

What @crim described above is probably all you’ll need for Awake, but if you want a “least recently used” voice stealing algorithm, Norns comes with a really useful little library called voice: https://github.com/monome/norns/blob/master/lua/lib/voice.lua

… I’m having a strangely hard time finding an example of it in use, but the principle is something like this:

local Voice = require 'voice'

local voices = Voice.new(2) -- 2 voices of polyphony
local midi_out = midi.connect()

local function start_note(note, vel)
  -- allocate a voice, "stealing" an existing one if necessary
  local voice_slot = voices:get()
  -- use the voice ID (1 or 2) as the MIDI channel
  local midi_channel = voice_slot.id
  -- send MIDI note
  midi_out:note_on(note, vel, midi_channel)
  -- tell this slot to send the correct note off when the voice is released or stolen
  local release_callback = function()
    midi_out:note_off(note, 0, midi_channel)
  end
  slot.on_steal = release_callback
  slot.on_release = release_callback
end

then you can use that start_note() function to send MIDI notes each step and they’ll alternate between channels 1 + 2, but if you call voices.slots[1]:release() between steps, a note off will be sent on MIDI channel 1, and the next step’s note will always go out on channel 1, while voice/channel 2 drones. Maybe not that interesting for steady 16th note sequences, but it’s really useful for grid or keyboard interfaces, and it’s a good way to make sure you’re sending note off messages.

2 Likes

had no idea this existed! thanks for pointing it out

1 Like

any chance in a future update ta have clock input from crow?

we’re working on a “global clock” module (for the entire norns system) which will have a configurable source including crow. so yes!

but in the meantime, adding a crow-clock of awake would be a pretty straightforward modification after reading through the norns and crow studies.

15 Likes

:raised_hands: @tehn amazing! that is good to know!
I don’t mind waiting, it’s not a problem :slight_smile: I’m doing the teletype studies and I can’t handle more studies right now :sweat_smile:

i hope “global clock” will have all the MIDI clock needs!
:stuck_out_tongue:

1 Like

Which CV jack does the clock out occur when using crow?

output 1, here you go :slight_smile:

3 Likes

Anyone else trying to use crow outs 1 and 2 but also wanting to send clock?

is it possible to get clock out going out of output 3 instead of 1 for those of us that don’t have just friends yet? :slight_smile:

Yes I’ve definitely had the same thought of wanting crow outs plus a clock out.

1 Like

I think I’ve done this.

It was as simple as changing a single variable I’ll look at the script when I’m not at work.

2 Likes

I changed mine to output 4. Its super easy if you want to try yourself?
In maiden load up the awake script and check line 196

if params:get(“crow_clock”) == 2 then crow.output[1]:execute() end

Change crow.output[1] to what ever one you want so it should read

if params:get(“crow_clock”) == 2 then crow.output[4]:execute() end

Then hit play script to try it out. If its all is good then save it.
Thats what I did seemed to work fine and I’m a complete noob.

Good luck!

4 Likes