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.

3 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.

16 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!

5 Likes

quick question
in the passerby version, what crow in1 and in2 do?
is there a way to clock awake from crow?

other (maybe stupid) question:
if i set output to be crow JF + cv, the cv out send the same data as JF right?

I have not yet delved into script writing so this would be about as good a way to start as any. Will give it a go!

3 Likes

I’ve only just started to have a go. Editing scripts is a great way to see how things work and to get your feet wet in the world of code!

2 Likes

awake and just friends is just heartbreakingly beautiful. Such an inspiration.

3 Likes

Apologies for trying to find the same solution on a few sketches. I dont have midi slave working.
The fix @okyeron posted above about calling out line 151 seems like its not there anymore.
Dont know if it helps but im using a sevillasoft midi host to send midi to awake, cheers!

that line has moved to line 217

1 Like

So, i just got around to trying this. I made the change in maiden, ran the script and everything looked good. It is character for character what you have above yet its still not sending clock out of 4. Restarted norns, and still not getting clock out of 4.

Any ideas?

@lanserdj
As long as you only changed the number from 1 to 4 things should be working. Did you save it or only ran the script from the play button within maiden?
You may also need to do a crow reset which can be done from within maiden or druid.