Thanks for this write up @dan_derks! Now, to de-beatclock some scripts :smiley:

Dan, this is so helpful. My question probably falls more into coding 101 terrority, but here goes. In Compass, the command sequence has some clock-related functions that increase/decrease my current metro’s speed. If I was using the global clock system instead, could I simply have those pass an argument to my function, like so?

function pulse(division) 
  while true do 
    clock.sync(division)
    iterate() 
  end
end

Hope that makes sense.

I don’t think you can pass arguments to pulse here. I believe you want division to be a param or global variable, so it grabs the new value everytime it runs, like so

function pulse() 
  while true do 
    clock.sync(params:get('division'))
    iterate() 
  end
end

edit: I’m wrong about passing args… listen to Dan (though the above should work also)

3 Likes

I can test a bit later, but I think this is cased out in the docs as possible:

engine.name = 'PolyPerc'

function forever(freq,rate)
  while true do
    clock.sync(1/rate)
    engine.hz(freq)
  end
end

function init()
  voice = {}
  voice[1] = clock.run(forever,333,3)
  voice[2] = clock.run(forever,666,1)
  voice[3] = clock.run(forever,999,2)
  voice[4] = clock.run(forever,111,0.33)
end
2 Likes

ah my apologies. I confess I skipped over the docs and assumed clock.run just took a function as a single arg.

Thank you both – will experiment later today.

you’re both right! these are different use cases. depends if you want global control: then @crim is correct and that’s how i did it in awake. but the clock study shows a nice way to pass args when making a bunch of static coroutines

3 Likes

ok fantastic - that was easy to add even with ratcheting

HOWEVER

syncing to the bar position is currently doing my head in :slight_smile:

The solution here might help.

Note: it’s a workaround due to a bug that’s been fixed but not released yet.

The simpler code that will work once the bug has been fixed is a few posts further up the same page.

1 Like

thank you!!! saved me a lot of head scratching :slight_smile:

The snippet itself has me scratching my head, to be honest, but glad it works.

I’m really struggling to get my head around how to use the new clock, but once I had bar syncing working, being able to sync my Fates to Samplr on my iPad was something of a revelation.

1 Like

ah nice - all locked in - iPad , kria and modular all locked together!!!

How’re you syncing your modular gear? I made a Spink0 module, but haven’t had much success with syncing it to my iPad.

Crow!

although in the past, before crow, I used to do things like using a track of a sequencer to put out a clock via midi/expert-sleepers fh-1. Crow working nicely though

I have an FH-2, so will try that. It should be able to receiver MIDI clock and reset messages from the new Clock (though obviously that only works with Fates as the clock master).

Having said that, maybe the FH-2 also sends its internal clock to connected MIDI devices. Never thought to try.

Crow seems… dare I say it… a little over-priced for what it does.

If you just use it as a CV/Gate expander for Norns - possibly - but I think it has a huge amount of potential (which I’m not seeing used by current scripts yet). For me it opens up options for making more tools that move easily amongst my various sound making devices. I’ve certainly been having fun driving it via druid and on board scripts directly doing stuff I don’t know how to do any other way

Fair enough.

I’m new to the “Monomeverse” (Norns Shield was my “gateway drug”), so from my outsider’s perspective, it seems there’s quite a lot of overlap between the various Monome products.

Ansible, for example, seems to be very similar to Crow (though with more IO).

Neither seem to appear very often on the 2nd-hand market (I’m a cheapskate, so most of my gear is either DIY or 2nd-hand).

Ansible isn’t programmable though it does do lots of cool things

Crow’s real power comes when you start running code on it (via Norns or directly). For example this week I’ve been playing with chaotic non regular clocks (the jury is still out on if anyone wants to actually listen to me playing with the but that’s another matter - you can look in the latest tracks thread if you are interested :wink: ) - I don’t know any other way of doing that without writing firmware for something like the Ornament and Crime for example.

My ansible is mostly become an output expander for teletype or crow these days - since I run Kria on the Norns more often than not…

Having spent a long time a few years ago coding for the Axoloti platform, I’ve gone off scripting for anything that doesn’t have a screen, to be honest.

That’s why Norns appeals so much to me (though the limited number of buttons and (especially) encoders counts as a negative for me, I’m afraid).

That being the case, the standalone aspect of Crow doesn’t really grab me. I might change my mind when I’ve got round to assembling my DIY Grid.

so that’s the key thing - the crow brings all that power right into the modular! you can also script cv just like you can midi or sound with Norns :slight_smile:

anyway - whatever works for you TBH - different things resonate with different people and no sense working with (or paying) for things that don’t. I had a Waldorf Pulse (the original one) for years - on paper it’s a wicked synth but I never gelled with it - was kind of a relief when I realised that and sold it. But there will be a ton of people who would argue I’m an idiot for that POV :slight_smile: