^^ crow 2.0+ help: general (connectivity, device q’s, ecosystem)

Yeah. They’re coming straight out of Confundo Funkitus, so I don’t have much in the way of control without adding another module, which sort of defeats the point. If I end up adding 6hp+ then I might as well keep the uO_C.

At the very least it’s worth trying out a mega-script before exploring more options.


I may not be doing this as intended: To receive the call on another crow, you need to overwrite the default call behavior in your init, right?

So like:

ii.self.call1 = function(e,v)
{
    --do stuff for a single argument call
}

Is that the correct approach to the current methodology? Otherwise the other crow doesn’t seem to do anything but print the the call, as that is the default behavior for the function. Listening for an event didn’t seem to register an event on my second crow.


Edit: And to confirm, my impulse to avoid combining scripts was clearly wrong, as performance has improved following your suggestion. Still need to stress test it to find the best polling speed, but definitely better.

1 Like

Crow utilizes some “behind the panel” digital connections by connecting to neighboring modules’ I2C headers. There is an emerging lingua franca to this digital communication (based on Monome Teletype-to-Trilogy “II” interactions) and many digital modules now can control and/or be controlled on I2C. Some such modules accept messages which change their settings in a way which is inaccessible via CV.

Oh no! your post is gone. I was just getting warmed up. I do think “Laptop + Crow + Just Friends” is an excellent intro to some aspects of musical coding, btw.

2 Likes

Crow communicates with Just Friends over ii, a digital protocol. Because of this, it is not limited to the amount of physical jacks on Just Friends, and can address more parameters.

1 Like

after tweaking the first script/manually uploading in Druid, my crow wont boot normally any more on a Windows 10 machine. (could this be some kind of conflict between a manually uploaded first.lua script and the default first.lua script?)

Here’s what I’ve done:

  • after tweaking the script and powering down, I got the ‘device not recognized’ issue
  • forced it to bootloader mode via jumper, but still not recognized by df util
  • used Zadig to install the WinUSB driver
  • now recognized by df util, Ive tried the erase user script and reflashing to 2.1.0 a variety of ways, both seem successful…but after a restart outside of bootloader mode there is no USB activity at all when I plug it in. no error, no new USB devices in Device Manager, druid still says crow is not connected.

here’s what I get when attempting to reflash. I do see the brief ‘cant detach’. after this and the jumper has been removed before the update, the dtfu bootloader device disappears and nothing else reappears. Any help is greatly appreciated!

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device…
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface…
Setting Alternate Setting #0
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 1024
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08020000, size = 281496
Download [=========================] 100% 281496 bytes
Download done.
File downloaded successfully
can’t detach
Resetting USB to switch back to runtime mode
Update successful!
Press any key to continue . . .

EDIT: I’ve tried all of this on another Win 10 machine with the same results.

EDIT REDUX: all outputs are showing 10v so I emailed monome :sob::sob::sob:

EDIT REDUX REDUX: fixed with 2.1.1 release!

1 Like

I think I’ve got my head around Crow and how it works and what it does. And I think that it could be a handy thing to fill out some of the spare HP in a Make Noise Tape & Microsound system.

My first thoughts were that I could use it to get a clock from norns into the T&MMM, e.g. for syncing Morphagene & Mimeophon with a script running on norns. I’m also thinking that I can probably find or create scripts to use it as clock divider - another module I’d like to have in the system is a Tempi; perhaps I could get at least some of the functionality of Tempi in Crow?

I have a DivKid / Instruo øchd in the skiff, and I’m thinking of adding a DivKid / SSF RND Step at some point. Presumably the things these modules are doing are things that Crow could mimic pretty easily? (Although I really like the øchd, so I don’t think it’s going anywhere soon.)

Am I thinking along the right lines here, or have I missed the point of Crow? Are there any other really great things I could be doing with a Crow in a T&MMM, or is it not a good idea? Is anyone already using a Crow in T&MMM?

1 Like

The way I like to think about crow is that it is a 2 in 4 out module. What those 2 in and 4 out do it kind of up to you. It has an internal clock, so you could easily turn it into a clock divider/multiplier. But really, that’s just scratching the surface. It can also slew between value changes, so you could have it be an LFO. You could write a script that on each tick of its clock ticks it progresses through some list of note values. Effectively turning it into a sequencer. You could write a script that sent musically random CV out to different modules. There’s a lot you could do.

I used to have a Tempi, so I can compare to it. The thing you’ll miss in a crow is the immediacy of switching up the clocked out puts. But what you’d gain is the ability to programmatically control each output.

I love watching Trent’s maps videos on YouTube. There he goes through a bunch of really cool uses for crow. This videos have given me a bunch of great ideas. Here’s one: https://youtu.be/2juKwBvzEJY

Sorry to kind of open Pandora’s box on you here. Crow can do a lot. Hopefully this helps and doesn’t muddy the waters even more.

I’d also look at what scripts others have written in the Library section. Yes, it can be a clock module, but it can also be so much more.

4 Likes

yes, crow is a very useful little one. i have two - one to sync norns as my master clock and another that’s usually running a dual quantizer to clamp cv to scales, but i also use it as a clock divider, logic, mini rungler, shift register. some great scripts in the comments here as well -

1 Like

No this all makes sense and is good - thank you. I have both a Teletype and a Tempi in another skiff, so it’s more of a friendly bento box than a scary Pandora’s box. :slight_smile:

So might it be fair to describe Crow as almost like a “headless Teletype-lite” kind of thing?

Can there be real-time communication between norns and Crow - e.g. is it be possible to run a script on norns that takes input from a grid or arc and then passes that on to Crow - effectively using the grid or arc to produce CV output from Crow?

I’ll definitely check out Trent’s videos - thanks for the tip!

Yes. Headless Teletype is a good way to think about it. Not sure I would say “lite”, just different. Real-time communication between Norns and crow is possible, but I haven’t really played around with it as much as I’d like to. I’ll let others talk more about that. Here’s a link to the Norns ii reference so you can see the crow commands: scripting with norns - docs

1 Like

I have never had trouble flashing Crow but this time the update failed. I forced bootloader and the process seemed to finish as opposed to hanging but when restarting rack Crow shows as disconnected. Tried a restart of Mac along with a different port and cable but no joy.

Any ideas? on the 2.1.0 version

EDIT: Update, there is a new 2.1.1 hotfix release to solve an occasional non-boot issue with 2.1.0 Release Version 2.1.1 · monome/crow · GitHub

5 Likes

thanks - updated both devices and working fine

2 Likes

Hey - 2.1.1 straightened out my issue too! Overjoyed!

2 Likes

crow 2xCV/gate plus six individual JF voices is indispensable if you run norns, JF and other modular. plus those crow gate outs also have AD control on them so you don’t have to try and squeeze a dual EG in somewhere. and if that doesn’t keep you busy enough you can just use it to run scripts.

migrating my just typing from TT to Crow and am having some tracking issues. At first, C was a little sharp, so I compensated with some very small transposition (in addition to the octave transposition). The result is that every note other than C is now off.

Is there a way to go about deriving notes from the inputs that’ll track more accurately? (pitches coming in are quantized to a T, track marvelously on other oscillators up and down the octaves) after three years flexing my tt jutsu I feel a bit ridiculous stuttering this hard on such a rudimentary application…

spose bonus would be anything that let me do away with needing a trigger in (tried ‘scale’, ‘window’, and ‘change’, but no dice – specifics of the implementation lost to this all-nighter…)

script
--- JF Control
-- in1: trigger
-- in2: pitch
-- JF notes

function init()
 input[1].mode('change', 1.0, 0.1, 'rising')
 ii.jf.mode(1)
end

input[1].change = function(state)
  delay ( frfr, .02)
end

function frfr()
    ii.jf.play_note(input[2].volts, 4.5 * math.random())
    ii.jf.transpose(-3.04)
end

EDIT: it also often triggers two notes per gate, which is O_o

How far out of tune are you talking? Is it a matter of the ‘scaling’ being off, eg. each octave up gets increasingly sharp/flat?

One quick hack would be to add a small multiplier like input[2].volts * 1.01 to correct for 1% of flatness per octave. Obviously things shouldn’t be like this so you could try re-running the calibration: type cal.test() in druid.

The calibration system is not perfect, and something we’re actively working on, but hopefully this helps in the meantime.

Alternatively you could use the .scale input functionality (which avoids the need of a separate trigger):

function init()
  input[1].mode('scale') -- defaults to chromatic, 1V/oct
  ii.jf.transpose(-3.04) -- moved to init bc it doesn't change
end

input[1].scale = function(s)
  -- triggered everytime a new note is detected
  ii.jf.play_note( s.volts, 4.5 * math.random() )
end

I’m realising the crow reference docs don’t have examples of how to use the scale events, so I will get something included soon.

1 Like

With this version of the script I have no issues with tracking or with multiple notes triggering when only one ought to. Was still getting a few ‘wrong notes’ (confirmed with tuner an incoming sequence containing only C, F, G occasionally triggered C#/B, F#/E, G#/b), but a delay fixed that up. Unfortunately, though, I’m now getting two (sometimes more) notes per CV change when rocking with the delay, which I think is the scale function triggering multiple times (a number of times equal to the semitone difference between notes, maybe?), but only playing the pitch “after the delay,” so all the notes are the same.

Edit 12341234: set up a variable and used some logic so that it wouldn’t trigger the same note twice in a row (so never triggered the second value).

code
function init()
 input[1].mode('scale')
 ii.jf.mode(1)
 ii.jf.transpose(-3.00)
end

input[1].scale = function(s)
   delay (play, .01)
 end

function play()
  if( Neutral ~= s.volts)
    then
      ii.jf.play_note (s.volts, 4.5 * math.random())
      Neutral = s.volts
end
end
1 Like

hey, anyone know the specifications of the screws used to mount crow’s board to its faceplate? was swapping my faceplate and the screws seem to have disappeared sometime in between, hoping i can easily find replacements :sweat:

harrison & bonini had em! highly recommend if you’re in the bay area, wonderful spot

1 Like

2-56 3/16"

2 Likes

Dear all, I am quite new to my modular journey, but have been into music & sound coding for ~15 years. Just recently started with eurorack.

Now, I’ve got 2x W/ and a Just Friends as well as Mangrove, Cold Mac, in my rack (along with other, mainly MN modules), though I am really struggling to make the following decision-

I’d love to leverage the possibilities that ii/i2c opens up for Just Friends as well as W/. I just can’t seem to figure out if it would be better to get a Crow or a Teletype. I started my modular journey to be less behind the screen. Yes, I’ve seen the Users Guide to The Wonderful World of Teletype as well as the Using Teletype when you are a full-time programmer threads, which were informative, but I am wondering:

What was your decision to choose for Crow or Teletype?
If both, why both?

My rack space is kind of limited- you can find a semi-up to date version of my rack HERE.

On the one hand, I’d love to leverage my knowledge of music coding in languages like Max, Supercollider, Pd, Python and the like… As well as a performance tool which I program before a performance, and which is able to set up structure for my gig (it seems both would be great for this task).
On the other hand, that’s what I do during the day. Plus there’s the hp investment…

I’d love to see some thoughts!

2 Likes