Amazing! Thanks for code additions.
I just had a go adding it and I’m getting an error in druid saying:

Metro.init : nothing available

Any ideas?

Cycle mode, and the time/intone knobs will have a big effect on what is going on. I generally have time around 10 o’clock and intone around 11 o’clock I think.

@cosmicsoundexplorer that needs to be lowercase metro. Did you see uppercase in some docs somewhere that we should fix?

@Galapagoose All I did was copy your code, paste it into mine and removed the

function init()
ii.pullup(true)
ii.jf.mode(1)
input[1].mode(‘change’, 1, 0.1, ‘rising’)
end

saved it and uploaded it to crow. it then starts running the script and then I get

Merto.init: nothing available

my code now looks like this:

input[1].change = function(s)
ii.jf.play_note(input[2].volts,5)
end

– add this function to your script
– (to be included in crow firmware in future)
function delay( time, action )
local function devent()
action() – this line executes the delayed function
metro.free(dmetro.id)
end
local dmetro = metro.init( devent, time, 1 )
end

– delay the call that reads the input voltage by 3ms
– the old line is ‘wrapped’ in a function
– this stops it from being executed immediately
input[1].change = function(s)
delay( 0.003, function() ii.jf.play_note(input[2].volts,5) end )
end

function init()
ii.pullup(true)
ii.jf.mode(1)
input[1].mode(‘change’, 1, 0.1, ‘rising’)
end

I’m still a super noob so i may have stuffed it up?

I had a look at metro.lua on github and the code has metro with an uppercase M throughout it. would that be the issue?

Also is there a simple way to have JF base frequency start lower as i like to tune my oscillators to C3 on kria’s 3rd octave setting to enable me to go up and down in octaves.

Cheers!

@dan_derks @Galapagoose

Just wanted to check in to see if you guys had had a chance to check out the tuning commands, still no dice on my end. Thanks!

so, with teletype: JF.TUNE 1 x 1 messages allow me to walk through the first x >= 6 harmonics. this is expected and traditional behavior.

but when using ii.jf.retune with crow in druid:

  • ii.jf.retune( 1,x,1 ) where x>=1 just shuts the channel off completely.
  • ii.jf.retune( 1,1,1 ) does not restore, which is unexpected.
  • ii.jf.retune( 0,0,0 ) restores as expected.
  • ii.jf.retune(1,3/1638.4,1) no change

I’m stumped, too. @Galapagoose, any ideas?

looks like all this might be getting addressed in coming update – hang tight!

1 Like

Hey @dan_derks. I wasn’t aware of this, but just checked and the i2c descriptor is wrong for Just Friends on crow. I corrected it on my end now, so this command will be fixed in the next crow update.

4 Likes

I’ve read a lot of things about going from crow to just friends, but is the reverse possible ? Like using Just Friends via Crow to modulate ableton for instance and triggering a drum machine ?

Not really feasible with just those two modules. You would probably want a DC-coupled interface (e.g. Expert Sleepers ES-8, various MOTU or RME interfaces) to send the voltages from JF’s outputs to your computer. Crow is more focused on taking commands from computers than giving them; it can be programmed to send serial messages back to the host but I would not rely on making use of that for control signals to Ableton. Plus, JF doesn’t transmit its output signals over I2C so you’d only be able to grab two of the seven JF outputs with Crow’s two inputs.

1 Like

You can definitely use the two CV inputs to capture signals & triggers from Just Friends, but @desolationjones is correct that it’s pretty limited compared to the number of rhythmic signals out of Just Friends. @voidstar & @dan_derks made some great Max4Live devices that do this voltage capturing really well.

An aside… making a Just Friends-ish modulation device in Max4Live would be a project I’d love to see someone create!

8 Likes

Just For Friends

There’s your name already…

7 Likes

Hey fellow Crow/JF users!

I feel as if since using my Crow/JF/Norns combo, JF is stuck in some sort of i2c limbo?

Last night I was trying to sequence Just Friends in sound mode and the time(v/oct) was not reacting to pitch CV from Ansible’s regular outputs.

Is there a way to reset Just Friends via Druid/Crow? Is there a “proper” way to shut down my system when using Norns to sequence JF via i2c from Crow?

I guess it seems like Just Friends is still listening to i2c when I want it to be standalone.

Any thoughts?

Thanks!

1 Like

on Norns I believe the thing you want is crow.ii.jf.mode(0). It should be very similar in Druid, probably without the crow prefix.

Per the docs, Druid is happy to help you learn how to script over i2c ii.help() or ii.<device>.help(), where <device> would be replaced with the name of the device you’re trying to learn about.

2 Likes

I’ll give this a shot! Also I wonder if I’m turning off my system with Norns outputting to JF/Crow from a script this may be causing my issue. Is it smart to switch the script I’m using back to audio out before powering down?

Hi, sorry to bump here but I’m still having issues with my JF since using crow/norns.

As mentioned earlier it seems like its stuck listening for crow messages when it is not being used via i2c.

I’ve been trying to use it in sound mode and its not tracking 1v/oct via Ansible. Super strange

Reflashing Just Friends definitely shouldnt be necessary. Try removing the i2c cable from Just Friends and restart the case- that should confirm JF is working correctly.

It’s probably a norns script telling JF to enter synth mode when it boots up.

@dan_derks we should figure out how to add jf.mode(0) to script cleanup functions so this doesnt happen

2 Likes

Yeah! Let me try that next. I have power cycled but not with the i2c unplugged.

I’ll report back.

Thanks!

Disconnecting i2c worked!

Is there a way to prevent this from happening? Would love to leave the jumpers permanently connected. Seems like JF gets hung up after speaking with crow

This is best fixed on the norns script side of things.

Just Friends waits to be told to enter synthesis mode and it will stay there until you tell it to leave. Norns scripts can run a function when they are closed, so authors need to add the ‘tell JF to exit synthesis mode’ to that part of their scripts. At this point there’s probably a number of scripts that need this change, so I’m not sure the best way to go about it.

For scripts with ‘JF’ as an option for the output parameter, it should require adding:

function cleanup()
  if params:get("output") == 5 then
    crow.ii.jf.mode(0)
  end
end
3 Likes

for debugging, you can enter crow commands in the norns repl in maiden. Just type:

crow.send("your_crow_command_in_quotes")

If you type something that causes crow to spit out standard out, it will show up in the repl output too

1 Like