Heh. I found that my phase calculation was somehow off (so a clocked LFO wouldn’t be at the end of its cycle at the next clock). At some point I’ll look into it to figure out what I did wrong, but in the meantime this little kludge seems to do the trick well enough for my purposes. But I wouldn’t suggest launching any rockets with that bit of math…:smirk:

2 Likes

I’ve been reading the Three Body Problem trilogy by Cixin Liu. It’s a great series so far and really has been expanding my mind in some interesting ways—also giving me some musical ideas. What if there was a three-body problem simulator druid script? It’d be kind of like boids I imagine, but might be cool as a chaotic LFO generator?

4 Likes

Love this- I’m reading that book atm too!

boids was a fun experiment, but doesn’t make that much sense with only 5 actors and 1-dimension. I’d love to see more emergence-focused scripts that exploit crow’s specific hardware.

2 Likes

Has anyone written a stand alone Turing machine script yet? I guess First is kind of like that, but it’d be cool if someone wrote one where all 4 outs were different v/8 sources.

I’m working on some long form music with this idea and would love to use crow instead of Ornament and Crime for this kind of thing.

2 Likes

Check out the ornithopters script I posted somewhere (scripts thread I think); it can be used that way.

Might be good to give it some love now that some firmware updates have been happened, I think I posted it with the launch firmware.

2 Likes

Thanks----I’ll take a look and see what I can come up with!

I don’t know if anyone else is doing this but I’ve now got two Crows - one that is generally always plugged into my Norns (for sequencing) and one that is standalone.

Because I found the interface for hemispheres on my ornament and crime kind of fiddly, I’m thinking of using my second Crow for similar purposes - quantizing, random sources, building chords out of a single v/8. Plus maybe some weirder stuff along the lines of Sloths.

6 Likes

I’m posting this here rather than in scripts as while I have a script it’s mostly a WIP and probably needs some help, I’m ok at prototyping but bad at finishing.

The idea here is a bouncing ball script that can trigger something, it gets a trigger/gate in and sends a number of triggers/gates out based on a bounce algorithm.

So… feel fry to try, play with it, update it etc etc as long as you post back sop others get the benefit, add your changes to the header in the file…

bounce.lua (1.6 KB)

4 Likes

Hey, newcommer here :wave:- I litterally discovered Crow then bought a Just Friend yesterday, so this may not useful nor implementable.

This idea is to allow users to voltage control the grouping and scanning of the 6 JF outputs.
Mostly like this video featuring JF and RXMX:

I did not find the full API of ii.jf but I can that imagine some sort of a toggle method exists for each output?

Inputs

1/ shifts the group of 3 outputs to be played. Negative values diminish number of outputs. The opposite after x volts.

2/ spreads the group of outputs by x interval. Offset outputs could be circled back instead of being ignored.

Outputs

The outputs could be used to control attenuators, that would control the rise of a new voice when shifted. This could provide a finer control than simple stair effect.

Voilà, I hope it makes sense,
let me know what you think!

Hugo

ps: @voidstar, do you happen to know where I could find
the full reference of methods you mentioned in your scripts?

4 Likes

great idea! the methods are actually stored in crow :slight_smile:, accessible thru druid. ii.jf.help() will get the full list.

more: https://monome.org/docs/crow/reference/#ii

2 Likes

Hello!
I want to share my first experiment with crow: a simple script for generating random events & cv’s based on incoming clock and incoming cv. It’s called randomquantized.

— randomquantized
– in1: incoming clock
– in2: input voltage as a seed
– out1: pulses, random divisions of incoming clock
– out2: input + random unquantized
– out3: input + random quantized (quantized for octaves)
– out4: input + random quantized (quantized chromatically)

function init()
input[1].mode(‘change’, 1.0, 0.1, ‘rising’)
output[2].slew = 0.03
output[3].slew = 0.03
output[4].slew = 0.03
end

input[1].change = function()
v = input[2].volts
r = math.random() * 10.0 - 5.0/v
output[1](pulse(0.1 * math.abs(math.random(v)) , 5 , 1))
output[2].volts = r
output[3].volts = math.floor(r )
output[4].volts = math.floor(r*12)/12
end

12 Likes

Cool! A small feature that could be useful here would be to also generate clock multiples on output 1, by setting a sort of threshold on input 2. Would be great for ratchets!

1 Like

[WIP] I wrote a script called dangerouslySetInnerBernoulliGate. Imagine four logical outputs asking questions to an MI Branches, every time it produces an A or B gate signal.

I tried to document it here:

It still needs work as I don’t currently own a crow, but I know for sure that the non crow-related code works :blush:If anyone feels brave enough to read my code and adapt it to their existing crow, that would be truly, truly awesome… I’ll clean everything and add more methods in the meantime, so let me know how I can assist you!

5 Likes

great idea. Here is implemented with a threshold around 2.5V
sometimes they are not exactly clock multiplies but I like the random effect.

— randomquantized
– in1: incoming clock
– in2: input voltage as a seed
– out1: random pulse
– out2: input + random unquantized
– out3: input + random quantized (quantized for octaves)
– out4: imput + random quantized (quantized chromatically)

function init()
input[1].mode(‘change’, 1.0, 0.1, ‘rising’)
output[2].slew = 0.03
output[3].slew = 0.03
output[4].slew = 0.03
metro[1].event = function() output[1] end
end

input[1].change = function()
v = input[2].volts
r = math.random() * 10.0 - 5.0/v
output[2].volts = r
output[3].volts = math.floor(r )
output[4].volts = math.floor(r12)/12
w = math.random(0, v)
if v < 2.5 then
output[1](pulse(0.1 * math.abs(w) , 5 , 1))
metro[1]:stop()
else metro[1].time=math.abs(0.1
math.abs(1/w))
metro[1]:start()
end

end

1 Like

Working on a simple little script called zθrdθ (aka zOrdO) in the fashion of a Joystick Axis Generator. Plug your joystick X&Y into crow, receive out polar coordinates (r, θ) and angular rate of change (dθ).

Z is trickier; it’s the height of a curve mapped angularly around the joystick. Basically a standing cosine wave whose period increments/decrements every time you cross 0 degrees CW/CCW. The height out is scaled by r. The net effect is like scrubbing through a sine LFO with the joystick.

2 Likes

I’m a little unclear on forum protocol re:crow scripts. Would it be better to post a script to crow under library or just dump them here/another crow thread?

1 Like

a new topic in Library with crow tag would be appropriate.

4 Likes

is there a way to get the current time - would love to change a patch based on the time of day. i tried bumbling around with some standard lua but can’t seem to get anything printing out okay…i am sure the answer is going to make me seem very foolish but would love to know!

1 Like

There is time(), which gives you the number of milliseconds since crow has been turned on — if you added the current time to it, crow will know what time it is!

This makes me think of scripts that evolve, though — like certain melodies or functions that only avail themselves after crow has been awake for some amount of time, after its had its coffee, I don’t know :slight_smile:

4 Likes

thanks - will play - exactly that I was also thinking things could degrade over time too…could be fun

2 Likes